Page 1
http://continuous-delivery-buch.de/ http://continuous-delivery-book.com/
Page 2
http://microservices-buch.de/ http://microservices-book.com/
Page 3
http://microservices-book.com/primer.html
http://microservices-buch.de/ueberblick.html
FREE!!!!
Page 5
What is Architecture?What is an Architect?
Page 6
Software Architecture
> Definition ISO 42010
Fundamental concepts or properties
of a system in its environment
embodied in its elements,
relationships,
and in the principles of its design and evolution
Page 7
Architecture =Boxes & Arrows
Page 8
Software Architect?
> A title?
> A role!
> …in particular in agile teams.
> Anyone / someone isdoing architecture
Page 9
Software Architect?
> Designer
> …like an architect for buildings
Page 10
Architecture=Boxes + Arrows
Architect=Designer Role
Page 11
Conway’s Law
Architecturecopies
communication structuresof the organization
Page 12
Current
Frontend
Backend
Page 14
Current
Frontend
Backend
Page 15
Current
Frontend
Backend
Page 19
Current: New goal?
Page 20
Current: New goal?
Page 22
Architecture
> If architecture = organization
> …then change to architecture = reorganization
> …or organization is a constraint.
Page 24
Goal:Self-contained System
http://scs-architecture-org
Page 27
Architecture
> Developers’ skills and preferences drive technology decisions.
> Technology decisions can drive architecture.
Page 28
Architecture=Boxes + Arrows
+Org
Architect=?
Page 29
Why do we even care about Architecture?
Page 30
Maintainability!!
Page 31
Quality Attributes
> ISO 25010
> E.g. reliability
> Usability
> Maintainability
> ...and a lot more
Page 32
Architecture=Quality Attributes
Architect=?
Page 33
Quality Attributes
> Reliability
> Usability
> Maintainability
Page 34
Reliability
> Software has to be available
> Clean architecture & code – any impact?
Page 35
Reliability
> Software has to be available
> Classic approach:
> Highly available hardware
> Run in a cluster
> …and cluster-enabled software
Page 37
Reliability
> ISO 25010: Availability / Fault tolerance
> ISO 25010: Recoverability
Page 38
Reliability
> Highly available hardware
> …and cluster
> …focus on MTBF(Mean time between failure)
Page 39
Decrease MTTR - How?
Page 41
Decrease MTTR – How?
> Find a problem faster
> Measure
> Monitoring
> Logs
> Alerts…
Page 42
Decrease MTTR – How?
> Get the fix out faster
> Deployment
> …or fail-over
Page 43
Decrease MTTR – How?
> Monitoring and Deployment:
> Ops challenges
> …not classic architecture
Page 44
Architecture=Quality Attributes+Org
Architect=?
Page 45
Quality Attributes
> Reliability
> Usability
> Maintainability
Page 46
Usability
> ISO 25010
> Learnability
> Ease-of-use
> Attractiveness
Page 47
Usability
> Might be very important
> …e.g. to gain a huge market share.
> How do you make it happen?
Page 48
Architecture =Boxes & Arrows
Page 50
Some Ideas toImprove Usability
> Hire an UX expert
> Usability tests
> Prototypes + feedback
> Look at support cases / hotline calls
Page 51
Some Ideas toImprove Usability
> No traditional architecture
> QA / Organization / Project management
Page 52
Usability
> Quality attribute
> Part of the technical decisions
> Beyond “usual” architecture measures
Page 53
Architecture=Quality Attributes+Org
Architect=?
Page 54
Quality Attributes
> Reliability
> Usability
> Maintainability
Page 55
Maintainability
> Clean architecture!
> I am waiting for such a customer.
Page 56
We can achievemaintainability withclean architecture +clean code.
Page 57
Clean Architecture
Page 62
ECommerceSystem
Order
Catalog
BillingSearch
Module = microservices
Page 63
ECommerceSystem
Order
Catalog
BillingSearch
Module = microservices
Communication e.g. REST
Page 65
ECommerceSystem
Order
Catalog
BillingSearch
Dependencies betweensystems cannot sneak in
Page 66
ECommerceSystem
Order
Catalog
BillingSearch
Dependencies betweensystems cannot sneak in
Page 67
ECommerceSystem
Order
Catalog
BillingSearch
Dependencies betweensystems cannot sneak in
“Architecture Firewalls”
Page 68
“Architecture Firewall”like RESTenforce the architecture
Page 69
ECommerceSystem
Order
Catalog
BillingSearch
Microservices small
Page 70
ECommerceSystem
Order
Catalog
BillingSearch
Microservices small
Hard to mess up
Page 71
ECommerceSystem
Order
Catalog
BillingSearch
Microservices small
Hard to mess up
Page 72
ECommerceSystem
Catalog
BillingSearch
Microservices small
Hard to mess up
Page 73
ECommerceSystem
Order
Catalog
BillingSearch
Microservices small
Hard to mess upReplace if messed up.
Page 74
Small,independent deployablemicroservices are recyclable.
Page 75
Recycle your software!!
Page 76
How many peopleare tryingto replace legacy systems?
Page 77
Replaceabilityis usually no goalfor a software project.
Why??
Page 78
We can achievemaintainability withclean architecture +clean code
Page 79
We can achievemaintainability witharchitecture firewalls +recyclable microservices
Page 80
Maintainability
> Clean architecture focuses on Changeability.
> …and Analyzability.
> There is more!
Page 81
Testability
> Another contributing to maintainability
> IMHO: Should be tests, not just testability
> Bonus if tests need not be changed for refactoring.
> Unit tests?
> Acceptance tests?
Page 82
Deployment
> It’s nice to change code.
> It’s (lean) waste until it is in production.
> Deployment: another factor for maintainability.
Page 83
CommitStage
AutomatedAcceptance
Testing
AutomatedCapacityTesting
ManualExplorative
TestingRelease
QA
Dev Ops
Page 84
Maintainability
> Not clean architecture and code
> Recyclable, very decoupled microservices
> Not just structure of the system, but also
> …test and deployment
> …continuous delivery pipeline
Page 85
Maintainability
> Not just architect and Dev, but also
> QA and Ops
Page 86
Architecture=Quality Attributes+Org
Architect=?
Page 87
Achieving the Attributes
> Organizational Measure (e.g. hire UX)
> Cross-functional: Ops, Dev, QA
Page 88
Architect?
> Technical manager
> In charge of achieving the quality attributes
> Influencing organization
> …and Ops, Dev, QA
Page 89
Agile Team
> Self Organization
> i.e. not necessarily a defined architect
> Architecture activities cover Ops, Dev, QA
> Cross-functional!
Page 90
Architecture=Quality Attributes+Org
Architect=Technical
Management Role