UNIX Philosophy
> Write programs that do one thing and do it
well
> Write programs to work together
> Write programs with a common interface
Slide 8
Slide 8 text
Definition
Microservice
> Independent deployment unit
> Separate data handling & storage
> Should include UI
> Order process, Billing, Catalog…
> Process
> VM
> Docker container
Server
Micro
Service
Slide 9
Slide 9 text
Deployment Monolith
> Might be well-structured inside.
> But: Can only be deployed as a whole
Continuous Delivery
Pipeline too complex
or slow?
Consider changing the
architecture!
Slide 14
Slide 14 text
Microservices:
Challenges
> 50 or 100 Microservices
> Deployment?
> Monitoring?
> Log Analysis?
> Need Automation
> Need common foundation for operations
> Small deployment units are not enough
Microservices can
only be deployed
independently if tests
are independent!
Slide 18
Slide 18 text
Microservices can
only be deployed
independently if your
Continuous Delivery
Pipeline works.
Slide 19
Slide 19 text
Microservices +
Continuous Delivery!
Slide 20
Slide 20 text
Why all the hassle?
Slide 21
Slide 21 text
Conway‘s Law
Architecture
copies
communication structures
of the organization
Slide 22
Slide 22 text
Conway’s Law as a
Limit
> Organization drives architecture
> Teams of experts
> i.e. UI, logic & database team
> Three technical artifacts
Slide 23
Slide 23 text
E Commerce
Shop
Change
Order
Process!
UI
Logic
DB
Slide 24
Slide 24 text
time
DB
Team Sprint
Logic
Team Sprint
GUI
Team Sprint
3 sprints
Slide 25
Slide 25 text
Order Search
Billing
Team for each business feature
Let architecture drive the organization
Order Billing Search
Slide 26
Slide 26 text
Deployment Monolith
+ Conway’s Law
Deployment Monolith
Stories
Technical Coordination
Coordinating Releases
Stories
Stories
Order Billing Search
Slide 27
Slide 27 text
Team can deploy without integration
Changes can be deployed independently & quickly
Strong & enforced modularization
Technology stack per Microservice
One or many Microservices per Team
Synergy Microservices / Conway’s Law
Order Search
Billing
Order Billing Search
Macro-Architecture
> Global decision
> Influence the whole system
> i.e. all Microservices
> Less Marco-Architecture – less coordination
Slide 32
Slide 32 text
Micro-Architecture
> Local decisions
> Per Microservice
Slide 33
Slide 33 text
Macro- and Micro-
Architecture for Ops
> Macro
> Define Log Analysis, Monitoring, Deployment tools
> Defined globally
> Micro
> Concrete deployment, monitoring, logging
> Defined per team / Microservice
Slide 34
Slide 34 text
Microservices Teams
need many technical
skills.
Slide 35
Slide 35 text
Microservices Teams
need Ops.
Slide 36
Slide 36 text
DevOps
Slide 37
Slide 37 text
DevOps /
Microservices
> Teams consist primarily of Devs
> Devs interested in Docker, ELK ...
> ... lots of experience in Ops
> More Ops effort
Slide 38
Slide 38 text
Microservices = huge
opportunity for Ops!
Slide 39
Slide 39 text
How Much DevOps is
Needed?
> Should all teams do full ops for their
services?
> IMHO optional
> But: Organizational barriers might cause
additional technical complexity
Maintainability:
Classical Approach
> Clear architecture
> Good code quality
> Many tests
Dev
Slide 45
Slide 45 text
Maintainability:
New Approach
Commit
Stage
Automated
Acceptance
Testing
Automated
Capacity
Testing
Manual
Explorative
Testing
Release
Fast und Reliable
Fast Feedback
Slide 46
Slide 46 text
Maintainibility:
New Approach
> Continuous Delivery simplifies roll out
> ...and test them
> ...and monitor them
> Microservices limit size and risk of changes
DevOps
Slide 47
Slide 47 text
Scalability
Slide 48
Slide 48 text
Scalabilty:
Classical Approach
> Implement technical constraints
> E.g. statelessness
> Use appropiate technologies
Dev
Slide 49
Slide 49 text
Performance Risk
> Hard to really predict performance
> Load test simulate user on a different
environment
Slide 50
Slide 50 text
Scalability:
Alternative Approach
> Don‘t do anything stupid in the architecture
> Identify bottleneck
> Eliminate bottleneck
> Common technique
Slide 51
Slide 51 text
Enable Alternative
Approach
> Monitoring to identify bottleneck
> Fast deployment to eliminate bottleneck
DevOps
Slide 52
Slide 52 text
Maintainability: New
Approach
Commit
Stage
Automated
Acceptance
Testing
Automated
Capacity
Testing
Manual
Explorative
Testing
Release
Fast
Monitor all relevant data
Slide 53
Slide 53 text
Conclusion
Slide 54
Slide 54 text
Conclusion
> Synergy:
Microservices and Continuous Delivery
> Microservices and Continuous Delivery
support and require DevOps
> DevOps = Collaboration
> Enable alternative approaches e.g. to
maintainability and scalability