beyond microservices
TRANSCRIPT
Modules ProcessesIndependent Continuous
Delivery Pipeline
Standardized Operations
Resilience
Microservices
Decoupling
> Originally: Changing a module does not influence other modules.
> i.e. independent development
Microservice Decoupling
> Independent scaling
> Independent technical decisions
> Decoupled crashes
> Security: firewalls etc
Replaceability
> Small components hard to mess up
> Each module can be replaced
> …small green field project
> ...different technology stack possible
Order
Billing
Customer
Commit!Stage!
Automated!Acceptance!Testing!
Automated!Capacity!Testing!
Manual!Explorative!Testing!
Release!
Commit!Stage!
Automated!Acceptance!Testing!
Automated!Capacity!Testing!
Manual!Explorative!Testing!
Release!
Commit!Stage!
Automated!Acceptance!Testing!
Automated!Capacity!Testing!
Manual!Explorative!Testing!
Release!
Build Pipeline forMicroservices
> Build pipeline per Microservice
> Smaller
> Easier to set up
> Less features (3rd party systems)
> Faster Feedback: Less tests
Decoupled Development
Decoupled Scalability
Decoupled Technical decisions
Decoupled Crashes
SecurityArchitecture
Firewalls
ReplaceabilityContinuous
Delivery
Technological Benefits
Microservice
Stories
TechnicalCoordination
Stories
TechnicalCoordination
Stories
TechnicalCoordination
Order Billing Search
Release Release Release
Inverse Conway Maneuver
> Architecture drives organization
> Cross-functional team (database, logic, UI)
> Team responsible for Bounded Context(s)
Self-organization
> With so much independence…
> ...teams can decide for themselves.
> Self-organization
Inverse Conway Maneuver
Independent Technologies
Independent Bounded Contexts
Self-organization
Organizational Benefits
Consistency
Order
Invoice
Delivery
Order #42is cancelled!
✅
✅
⁉Goods might be delivered
if order arrivesafter cancellation.
Refactorings
> Move code to a new service: Easy
> Move code from service to service
> Might be a port to a different language
> Hard
Global Refactorings
> Really hard: Global restructuring
> i.e. moving everything to a different place.
> …but that is always hard…
> ...and the result of a major screwup.
> Do you want to optimize for this?
Many New Technologies
> Microservices framework
> Service discovery
> Routing / API Gateway
> Continuous Delivery pipeline
> Docker
> Docker scheduler (Kubernetes)
> ....
Modules--
Processes++
Independent Continuous
Delivery Pipeline+
Standardized Operations
-
Resilience-
Shared Database: Microservices
Decoupled Development
--
Decoupled Scalability
+
Decoupled Technical decisions
+
Decoupled Crashes
+
Security-
Architecture Firewalls
-
Replaceability--
Continuous Delivery
-
Technological Benefits
Inverse Conway Maneuver
-
Independent Technologies
+
Independent Bounded Contexts
--
Self-organization-
Organizational Benefits
Layered: Issues
> Changing a business process cause many changes
> …in Frontend and many backend
> Lots of communication between teams and components
Modules
++
Processes
++
Independent Continuous
Delivery Pipeline
++
Standardized Operations
++
Resilience
+
Microservices
Decoupled Development
-
Decoupled Scalability
-
Decoupled Technical decisions
++
Decoupled Crashes+
Security+
Architecture Firewalls
+
Replaceability+
Continuous Delivery-
Technological Benefits
Inverse Conway Maneuver
--
Independent Technologies
++
Independent Bounded Contexts
--
Self-organization
--
Organizational Benefits
Challenges
Consistency
+
Performance
--
Fail safeness
--
Large scale refactoring
--
New Technologies
--
Order
Shipping addressTracking #ItemsItem CategoriesPriority shippingCustoms #Account #
...Credit card #
Order #
Bounded Context
> Domain model is only valid for one context
> There is no universal data model!
> See all failed SOA attempts
Order
Shipping addressTracking #ItemsItem CategoriesPriority shippingCustoms #Account #
...Credit card #
Order #
Customs
Order
Recommen-dations
Order
Tracking
Order
ShippingaddressTracking #
ItemCategories
Priorityshipping
Customs #
Payment
Order
Account #Credit card #
Self-contained Systems
Search Invoice LogisticsCheckout
Web Web Web Web
See http://scs-architecture.org
Modules
++
Processes
++
Independent Continuous
Delivery Pipeline
++
Standardized Operations
++
Resilience
+
Microservices
Decoupled Development
++
Decoupled Scalability
++
Decoupled Technical decisions
++
Decoupled Crashes
++
Security
++
Architecture Firewalls
+
Replaceability
+
Continuous Delivery
++
Technological Benefits
Inverse Conway Maneuver
++
Independent Technologies
++
Independent Bounded Contexts
++
Self-organization++
Organizational Benefits
Modules+
Processes--
Independent Continuous
Delivery Pipeline-
Standardized Operations
++
Resilience-
Microservices
Decoupled Development
+
Decoupled Scalability
--
Decoupled Technical decisions
--
Decoupled Crashes--
Security--
Architecture Firewalls
++
Replaceability+
Continuous Delivery+
Technological Benefits
Inverse Conway Maneuver
+
Independent Technologies
--
Independent Bounded Contexts
++
Self-organization-
Organizational Benefits
Conclusion
> Microservices are a set of architecture decision
> Architecture is about trade-offs
> Architecture is different for each project
> Go beyond microservices by picking the best decisions!
> …and gain most benefits