http://continuous-delivery-buch.de/ http://continuous-delivery-book.com/
http://microservices-buch.de/ http://microservices-book.com/
http://microservices-book.com/primer.html
http://microservices-buch.de/ueberblick.html
FREE!!!!
What is Architecture?What is an Architect?
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
Architecture =Boxes & Arrows
Software Architect?
> A title?
> A role!
> …in particular in agile teams.
> Anyone / someone isdoing architecture
Software Architect?
> Designer
> …like an architect for buildings
Architecture=Boxes + Arrows
Architect=Designer Role
Conway’s Law
Architecturecopies
communication structuresof the organization
Current
Frontend
Backend
Current
Frontend
Backend
Current
Frontend
Backend
Current: New goal?
Current: New goal?
Architecture
> If architecture = organization
> …then change to architecture = reorganization
> …or organization is a constraint.
Goal:Self-contained System
http://scs-architecture-org
Architecture
> Developers’ skills and preferences drive technology decisions.
> Technology decisions can drive architecture.
Architecture=Boxes + Arrows
+Org
Architect=?
Why do we even care about Architecture?
Maintainability!!
Quality Attributes
> ISO 25010
> E.g. reliability
> Usability
> Maintainability
> ...and a lot more
Architecture=Quality Attributes
Architect=?
Quality Attributes
> Reliability
> Usability
> Maintainability
Reliability
> Software has to be available
> Clean architecture & code – any impact?
Reliability
> Software has to be available
> Classic approach:
> Highly available hardware
> Run in a cluster
> …and cluster-enabled software
Reliability
> ISO 25010: Availability / Fault tolerance
> ISO 25010: Recoverability
Reliability
> Highly available hardware
> …and cluster
> …focus on MTBF(Mean time between failure)
Decrease MTTR - How?
Decrease MTTR – How?
> Find a problem faster
> Measure
> Monitoring
> Logs
> Alerts…
Decrease MTTR – How?
> Get the fix out faster
> Deployment
> …or fail-over
Decrease MTTR – How?
> Monitoring and Deployment:
> Ops challenges
> …not classic architecture
Architecture=Quality Attributes+Org
Architect=?
Quality Attributes
> Reliability
> Usability
> Maintainability
Usability
> ISO 25010
> Learnability
> Ease-of-use
> Attractiveness
Usability
> Might be very important
> …e.g. to gain a huge market share.
> How do you make it happen?
Architecture =Boxes & Arrows
Some Ideas toImprove Usability
> Hire an UX expert
> Usability tests
> Prototypes + feedback
> Look at support cases / hotline calls
Some Ideas toImprove Usability
> No traditional architecture
> QA / Organization / Project management
Usability
> Quality attribute
> Part of the technical decisions
> Beyond “usual” architecture measures
Architecture=Quality Attributes+Org
Architect=?
Quality Attributes
> Reliability
> Usability
> Maintainability
Maintainability
> Clean architecture!
> I am waiting for such a customer.
We can achievemaintainability withclean architecture +clean code.
Clean Architecture
ECommerceSystem
Order
Catalog
BillingSearch
Module = microservices
ECommerceSystem
Order
Catalog
BillingSearch
Module = microservices
Communication e.g. REST
ECommerceSystem
Order
Catalog
BillingSearch
Dependencies betweensystems cannot sneak in
ECommerceSystem
Order
Catalog
BillingSearch
Dependencies betweensystems cannot sneak in
ECommerceSystem
Order
Catalog
BillingSearch
Dependencies betweensystems cannot sneak in
“Architecture Firewalls”
“Architecture Firewall”like RESTenforce the architecture
ECommerceSystem
Order
Catalog
BillingSearch
Microservices small
ECommerceSystem
Order
Catalog
BillingSearch
Microservices small
Hard to mess up
ECommerceSystem
Order
Catalog
BillingSearch
Microservices small
Hard to mess up
ECommerceSystem
Catalog
BillingSearch
Microservices small
Hard to mess up
ECommerceSystem
Order
Catalog
BillingSearch
Microservices small
Hard to mess upReplace if messed up.
Small,independent deployablemicroservices are recyclable.
Recycle your software!!
How many peopleare tryingto replace legacy systems?
Replaceabilityis usually no goalfor a software project.
Why??
We can achievemaintainability withclean architecture +clean code
We can achievemaintainability witharchitecture firewalls +recyclable microservices
Maintainability
> Clean architecture focuses on Changeability.
> …and Analyzability.
> There is more!
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?
Deployment
> It’s nice to change code.
> It’s (lean) waste until it is in production.
> Deployment: another factor for maintainability.
CommitStage
AutomatedAcceptance
Testing
AutomatedCapacityTesting
ManualExplorative
TestingRelease
QA
Dev Ops
Maintainability
> Not clean architecture and code
> Recyclable, very decoupled microservices
> Not just structure of the system, but also
> …test and deployment
> …continuous delivery pipeline
Maintainability
> Not just architect and Dev, but also
> QA and Ops
Architecture=Quality Attributes+Org
Architect=?
Achieving the Attributes
> Organizational Measure (e.g. hire UX)
> Cross-functional: Ops, Dev, QA
Architect?
> Technical manager
> In charge of achieving the quality attributes
> Influencing organization
> …and Ops, Dev, QA
Agile Team
> Self Organization
> i.e. not necessarily a defined architect
> Architecture activities cover Ops, Dev, QA
> Cross-functional!
Architecture=Quality Attributes+Org
Architect=Technical
Management Role