Top Banner
http://continuous-delivery-buch.de/ http://continuous-delivery-book.com/
90

Architectures and Alternatives

Jan 22, 2018

Download

Software

Eberhard Wolff
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Architectures and Alternatives

http://continuous-delivery-buch.de/ http://continuous-delivery-book.com/

Page 2: Architectures and Alternatives

http://microservices-buch.de/ http://microservices-book.com/

Page 3: Architectures and Alternatives

http://microservices-book.com/primer.html

http://microservices-buch.de/ueberblick.html

FREE!!!!

Page 4: Architectures and Alternatives
Page 5: Architectures and Alternatives

What is Architecture?What is an Architect?

Page 6: Architectures and Alternatives

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: Architectures and Alternatives

Architecture =Boxes & Arrows

Page 8: Architectures and Alternatives

Software Architect?

> A title?

> A role!

> …in particular in agile teams.

> Anyone / someone isdoing architecture

Page 9: Architectures and Alternatives

Software Architect?

> Designer

> …like an architect for buildings

Page 10: Architectures and Alternatives

Architecture=Boxes + Arrows

Architect=Designer Role

Page 11: Architectures and Alternatives

Conway’s Law

Architecturecopies

communication structuresof the organization

Page 12: Architectures and Alternatives

Current

Frontend

Backend

Page 13: Architectures and Alternatives

Goal

Page 14: Architectures and Alternatives

Current

Frontend

Backend

Page 15: Architectures and Alternatives

Current

Frontend

Backend

Page 16: Architectures and Alternatives

Goal

Page 17: Architectures and Alternatives

Reorganization!

Page 18: Architectures and Alternatives

Reorganization!

Page 19: Architectures and Alternatives

Current: New goal?

Page 20: Architectures and Alternatives

Current: New goal?

Page 21: Architectures and Alternatives

New Goal

Page 22: Architectures and Alternatives

Architecture

> If architecture = organization

> …then change to architecture = reorganization

> …or organization is a constraint.

Page 23: Architectures and Alternatives

Goal

Page 24: Architectures and Alternatives

Goal:Self-contained System

http://scs-architecture-org

Page 25: Architectures and Alternatives

Result

Page 26: Architectures and Alternatives

Result

Page 27: Architectures and Alternatives

Architecture

> Developers’ skills and preferences drive technology decisions.

> Technology decisions can drive architecture.

Page 28: Architectures and Alternatives

Architecture=Boxes + Arrows

+Org

Architect=?

Page 29: Architectures and Alternatives

Why do we even care about Architecture?

Page 30: Architectures and Alternatives

Maintainability!!

Page 31: Architectures and Alternatives

Quality Attributes

> ISO 25010

> E.g. reliability

> Usability

> Maintainability

> ...and a lot more

Page 32: Architectures and Alternatives

Architecture=Quality Attributes

Architect=?

Page 33: Architectures and Alternatives

Quality Attributes

> Reliability

> Usability

> Maintainability

Page 34: Architectures and Alternatives

Reliability

> Software has to be available

> Clean architecture & code – any impact?

Page 35: Architectures and Alternatives

Reliability

> Software has to be available

> Classic approach:

> Highly available hardware

> Run in a cluster

> …and cluster-enabled software

Page 36: Architectures and Alternatives

Reliability

Page 37: Architectures and Alternatives

Reliability

> ISO 25010: Availability / Fault tolerance

> ISO 25010: Recoverability

Page 38: Architectures and Alternatives

Reliability

> Highly available hardware

> …and cluster

> …focus on MTBF(Mean time between failure)

Page 39: Architectures and Alternatives

Decrease MTTR - How?

Page 40: Architectures and Alternatives
Page 41: Architectures and Alternatives

Decrease MTTR – How?

> Find a problem faster

> Measure

> Monitoring

> Logs

> Alerts…

Page 42: Architectures and Alternatives

Decrease MTTR – How?

> Get the fix out faster

> Deployment

> …or fail-over

Page 43: Architectures and Alternatives

Decrease MTTR – How?

> Monitoring and Deployment:

> Ops challenges

> …not classic architecture

Page 44: Architectures and Alternatives

Architecture=Quality Attributes+Org

Architect=?

Page 45: Architectures and Alternatives

Quality Attributes

> Reliability

> Usability

> Maintainability

Page 46: Architectures and Alternatives

Usability

> ISO 25010

> Learnability

> Ease-of-use

> Attractiveness

Page 47: Architectures and Alternatives

Usability

> Might be very important

> …e.g. to gain a huge market share.

> How do you make it happen?

Page 48: Architectures and Alternatives

Architecture =Boxes & Arrows

Page 49: Architectures and Alternatives

Usability??

Page 50: Architectures and Alternatives

Some Ideas toImprove Usability

> Hire an UX expert

> Usability tests

> Prototypes + feedback

> Look at support cases / hotline calls

Page 51: Architectures and Alternatives

Some Ideas toImprove Usability

> No traditional architecture

> QA / Organization / Project management

Page 52: Architectures and Alternatives

Usability

> Quality attribute

> Part of the technical decisions

> Beyond “usual” architecture measures

Page 53: Architectures and Alternatives

Architecture=Quality Attributes+Org

Architect=?

Page 54: Architectures and Alternatives

Quality Attributes

> Reliability

> Usability

> Maintainability

Page 55: Architectures and Alternatives

Maintainability

> Clean architecture!

> I am waiting for such a customer.

Page 56: Architectures and Alternatives

We can achievemaintainability withclean architecture +clean code.

Page 57: Architectures and Alternatives

Clean Architecture

Page 58: Architectures and Alternatives

Developer

Page 59: Architectures and Alternatives

Developer

Page 60: Architectures and Alternatives

Result?

Page 61: Architectures and Alternatives
Page 62: Architectures and Alternatives

ECommerceSystem

Order

Catalog

BillingSearch

Module = microservices

Page 63: Architectures and Alternatives

ECommerceSystem

Order

Catalog

BillingSearch

Module = microservices

Communication e.g. REST

Page 64: Architectures and Alternatives

REST REST

Page 65: Architectures and Alternatives

ECommerceSystem

Order

Catalog

BillingSearch

Dependencies betweensystems cannot sneak in

Page 66: Architectures and Alternatives

ECommerceSystem

Order

Catalog

BillingSearch

Dependencies betweensystems cannot sneak in

Page 67: Architectures and Alternatives

ECommerceSystem

Order

Catalog

BillingSearch

Dependencies betweensystems cannot sneak in

“Architecture Firewalls”

Page 68: Architectures and Alternatives

“Architecture Firewall”like RESTenforce the architecture

Page 69: Architectures and Alternatives

ECommerceSystem

Order

Catalog

BillingSearch

Microservices small

Page 70: Architectures and Alternatives

ECommerceSystem

Order

Catalog

BillingSearch

Microservices small

Hard to mess up

Page 71: Architectures and Alternatives

ECommerceSystem

Order

Catalog

BillingSearch

Microservices small

Hard to mess up

Page 72: Architectures and Alternatives

ECommerceSystem

Catalog

BillingSearch

Microservices small

Hard to mess up

Page 73: Architectures and Alternatives

ECommerceSystem

Order

Catalog

BillingSearch

Microservices small

Hard to mess upReplace if messed up.

Page 74: Architectures and Alternatives

Small,independent deployablemicroservices are recyclable.

Page 75: Architectures and Alternatives

Recycle your software!!

Page 76: Architectures and Alternatives

How many peopleare tryingto replace legacy systems?

Page 77: Architectures and Alternatives

Replaceabilityis usually no goalfor a software project.

Why??

Page 78: Architectures and Alternatives

We can achievemaintainability withclean architecture +clean code

Page 79: Architectures and Alternatives

We can achievemaintainability witharchitecture firewalls +recyclable microservices

Page 80: Architectures and Alternatives

Maintainability

> Clean architecture focuses on Changeability.

> …and Analyzability.

> There is more!

Page 81: Architectures and Alternatives

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: Architectures and Alternatives

Deployment

> It’s nice to change code.

> It’s (lean) waste until it is in production.

> Deployment: another factor for maintainability.

Page 83: Architectures and Alternatives

CommitStage

AutomatedAcceptance

Testing

AutomatedCapacityTesting

ManualExplorative

TestingRelease

QA

Dev Ops

Page 84: Architectures and Alternatives

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: Architectures and Alternatives

Maintainability

> Not just architect and Dev, but also

> QA and Ops

Page 86: Architectures and Alternatives

Architecture=Quality Attributes+Org

Architect=?

Page 87: Architectures and Alternatives

Achieving the Attributes

> Organizational Measure (e.g. hire UX)

> Cross-functional: Ops, Dev, QA

Page 88: Architectures and Alternatives

Architect?

> Technical manager

> In charge of achieving the quality attributes

> Influencing organization

> …and Ops, Dev, QA

Page 89: Architectures and Alternatives

Agile Team

> Self Organization

> i.e. not necessarily a defined architect

> Architecture activities cover Ops, Dev, QA

> Cross-functional!

Page 90: Architectures and Alternatives

Architecture=Quality Attributes+Org

Architect=Technical

Management Role