Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
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...
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 cons...
Goal
Goal:
Self-contained System
http://scs-architecture-org
Result
Result
Architecture
> Developers’ skills and preferences drive
technology decisions.
> Technology decisions can drive architectur...
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 clust...
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 / ho...
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 ...
Deployment
> It’s nice to change code.
> It’s (lean) waste until it is in production.
> Deployment: another factor for
mai...
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 s...
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,...
Agile Team
> Self Organization
> i.e. not necessarily a defined architect
> Architecture activities cover Ops, Dev, QA
> C...
Architecture=
Quality Attributes+Org
Architect=
Technical
Management Role
Architectures and Alternatives
Architectures and Alternatives
Architectures and Alternatives
Upcoming SlideShare
Loading in …5
×

Architectures and Alternatives

1,747 views

Published on

Limiting software architecture to the traditional ideas is not enough for today's challenges. This presentation shows additional tools and how problems like maintainability, reliability and usability can be solved.

Published in: Software
  • Hello! Get Your Professional Job-Winning Resume Here - Check our website! https://vk.cc/818RFv
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Architectures and Alternatives

  1. 1. http://continuous-delivery-buch.de/ http://continuous-delivery-book.com/
  2. 2. http://microservices-buch.de/ http://microservices-book.com/
  3. 3. http://microservices-book.com/ primer.html http://microservices-buch.de/ ueberblick.html FREE!!!!
  4. 4. What is Architecture? What is an Architect?
  5. 5. 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
  6. 6. Architecture = Boxes & Arrows
  7. 7. Software Architect? > A title? > A role! > …in particular in agile teams. > Anyone / someone is doing architecture
  8. 8. Software Architect? > Designer > …like an architect for buildings
  9. 9. Architecture= Boxes + Arrows Architect= Designer Role
  10. 10. Conway’s Law Architecture copies communication structures of the organization
  11. 11. Current Frontend Backend
  12. 12. Goal
  13. 13. Current Frontend Backend
  14. 14. Current Frontend Backend
  15. 15. Goal
  16. 16. Reorganization!
  17. 17. Reorganization!
  18. 18. Current: New goal?
  19. 19. Current: New goal?
  20. 20. New Goal
  21. 21. Architecture > If architecture = organization > …then change to architecture = reorganization > …or organization is a constraint.
  22. 22. Goal
  23. 23. Goal: Self-contained System http://scs-architecture-org
  24. 24. Result
  25. 25. Result
  26. 26. Architecture > Developers’ skills and preferences drive technology decisions. > Technology decisions can drive architecture.
  27. 27. Architecture= Boxes + Arrows +Org Architect= ?
  28. 28. Why do we even care about Architecture?
  29. 29. Maintainability!!
  30. 30. Quality Attributes > ISO 25010 > E.g. reliability > Usability > Maintainability > ...and a lot more
  31. 31. Architecture= Quality Attributes Architect= ?
  32. 32. Quality Attributes > Reliability > Usability > Maintainability
  33. 33. Reliability > Software has to be available > Clean architecture & code – any impact?
  34. 34. Reliability > Software has to be available > Classic approach: > Highly available hardware > Run in a cluster > …and cluster-enabled software
  35. 35. Reliability
  36. 36. Reliability > ISO 25010: Availability / Fault tolerance > ISO 25010: Recoverability
  37. 37. Reliability > Highly available hardware > …and cluster > …focus on MTBF (Mean time between failure)
  38. 38. Decrease MTTR - How?
  39. 39. Decrease MTTR – How? > Find a problem faster > Measure > Monitoring > Logs > Alerts…
  40. 40. Decrease MTTR – How? > Get the fix out faster > Deployment > …or fail-over
  41. 41. Decrease MTTR – How? > Monitoring and Deployment: > Ops challenges > …not classic architecture
  42. 42. Architecture= Quality Attributes+Org Architect= ?
  43. 43. Quality Attributes > Reliability > Usability > Maintainability
  44. 44. Usability > ISO 25010 > Learnability > Ease-of-use > Attractiveness
  45. 45. Usability > Might be very important > …e.g. to gain a huge market share. > How do you make it happen?
  46. 46. Architecture = Boxes & Arrows
  47. 47. Usability??
  48. 48. Some Ideas to Improve Usability > Hire an UX expert > Usability tests > Prototypes + feedback > Look at support cases / hotline calls
  49. 49. Some Ideas to Improve Usability > No traditional architecture > QA / Organization / Project management
  50. 50. Usability > Quality attribute > Part of the technical decisions > Beyond “usual” architecture measures
  51. 51. Architecture= Quality Attributes+Org Architect= ?
  52. 52. Quality Attributes > Reliability > Usability > Maintainability
  53. 53. Maintainability > Clean architecture! > I am waiting for such a customer.
  54. 54. We can achieve maintainability with clean architecture + clean code.
  55. 55. Clean Architecture
  56. 56. Developer
  57. 57. Developer
  58. 58. Result?
  59. 59. ECommerce System Order Catalog Billing Search Module = microservices
  60. 60. ECommerce System Order Catalog Billing Search Module = microservices Communication e.g. REST
  61. 61. REST REST
  62. 62. ECommerce System Order Catalog Billing Search Dependencies between systems cannot sneak in
  63. 63. ECommerce System Order Catalog Billing Search Dependencies between systems cannot sneak in
  64. 64. ECommerce System Order Catalog Billing Search Dependencies between systems cannot sneak in “Architecture Firewalls”
  65. 65. “Architecture Firewall” like REST enforce the architecture
  66. 66. ECommerce System Order Catalog Billing Search Microservices small
  67. 67. ECommerce System Order Catalog Billing Search Microservices small Hard to mess up
  68. 68. ECommerce System Order Catalog Billing Search Microservices small Hard to mess up
  69. 69. ECommerce System Catalog Billing Search Microservices small Hard to mess up
  70. 70. ECommerce System Order Catalog Billing Search Microservices small Hard to mess up Replace if messed up.
  71. 71. Small, independent deployable microservices are recyclable.
  72. 72. Recycle your software! !
  73. 73. How many people are trying to replace legacy systems?
  74. 74. Replaceability is usually no goal for a software project. Why??
  75. 75. We can achieve maintainability with clean architecture + clean code
  76. 76. We can achieve maintainability with architecture firewalls + recyclable microservices
  77. 77. Maintainability > Clean architecture focuses on Changeability. > …and Analyzability. > There is more!
  78. 78. 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?
  79. 79. Deployment > It’s nice to change code. > It’s (lean) waste until it is in production. > Deployment: another factor for maintainability.
  80. 80. Commit Stage Automated Acceptance Testing Automated Capacity Testing Manual Explorative Testing Release QA Dev Ops
  81. 81. Maintainability > Not clean architecture and code > Recyclable, very decoupled microservices > Not just structure of the system, but also > …test and deployment > …continuous delivery pipeline
  82. 82. Maintainability > Not just architect and Dev, but also > QA and Ops
  83. 83. Architecture= Quality Attributes+Org Architect= ?
  84. 84. Achieving the Attributes > Organizational Measure (e.g. hire UX) > Cross-functional: Ops, Dev, QA
  85. 85. Architect? > Technical manager > In charge of achieving the quality attributes > Influencing organization > …and Ops, Dev, QA
  86. 86. Agile Team > Self Organization > i.e. not necessarily a defined architect > Architecture activities cover Ops, Dev, QA > Cross-functional!
  87. 87. Architecture= Quality Attributes+Org Architect= Technical Management Role

×