Architectures and Alternatives

Post on 22-Jan-2018

669 Views

Category:

Software

2 Downloads

Preview:

Click to see full reader

Transcript

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

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 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

Developer

Developer

Result?

ECommerceSystem

Order

Catalog

BillingSearch

Module = microservices

ECommerceSystem

Order

Catalog

BillingSearch

Module = microservices

Communication e.g. REST

REST 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

top related