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 is
doing architecture
Software Architect?
> Designer
> …like an architect for buildings
Architecture=
Boxes + Arrows
Architect=
Designer Role
Conway’s Law
Architecture
copies
communication structures
of the organization
Current
Frontend
Backend
Goal
Current
Frontend
Backend
Current
Frontend
Backend
Goal
Reorganization!
Reorganization!
Current: New goal?
Current: New goal?
New Goal
Architecture
> If architecture = organization
> …then change to architecture = reorganization
> …or organization is a constraint.
Goal
Goal:
Self-contained System
http://scs-architecture-org
Result
Result
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
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
Usability??
Some Ideas to
Improve Usability
> Hire an UX expert
> Usability tests
> Prototypes + feedback
> Look at support cases / hotline calls
Some Ideas to
Improve 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 achieve
maintainability with
clean architecture +
clean code.
Clean Architecture
Developer
Developer
Result?
ECommerce
System
Order
Catalog
Billing
Search
Module = microservices
ECommerce
System
Order
Catalog
Billing
Search
Module = microservices
Communication e.g. REST
REST REST
ECommerce
System
Order
Catalog
Billing
Search
Dependencies between
systems cannot sneak in
ECommerce
System
Order
Catalog
Billing
Search
Dependencies between
systems cannot sneak in
ECommerce
System
Order
Catalog
Billing
Search
Dependencies between
systems cannot sneak in
“Architecture Firewalls”
“Architecture Firewall”
like REST
enforce the architecture
ECommerce
System
Order
Catalog
Billing
Search
Microservices small
ECommerce
System
Order
Catalog
Billing
Search
Microservices small
Hard to mess up
ECommerce
System
Order
Catalog
Billing
Search
Microservices small
Hard to mess up
ECommerce
System
Catalog
Billing
Search
Microservices small
Hard to mess up
ECommerce
System
Order
Catalog
Billing
Search
Microservices small
Hard to mess up
Replace if messed up.
Small,
independent deployable
microservices
are recyclable.
Recycle your
software!
!
How many people
are trying
to replace legacy
systems?
Replaceability
is usually no goal
for a software project.
Why??
We can achieve
maintainability with
clean architecture +
clean code
We can achieve
maintainability with
architecture 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.
Commit
Stage
Automated
Acceptance
Testing
Automated
Capacity
Testing
Manual
Explorative
Testing
Release
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

Architectures and Alternatives