Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

http://microservices-book.com/ primer.html http://microservices-buch.de/ ueberblick.html FREE!!!!

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

What is Architecture? What is an Architect?

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

Architecture = Boxes & Arrows

Slide 8

Slide 8 text

Software Architect? > A title? > A role! > …in particular in agile teams. > Anyone / someone is doing architecture

Slide 9

Slide 9 text

Software Architect? > Designer > …like an architect for buildings

Slide 10

Slide 10 text

Architecture= Boxes + Arrows Architect= Designer Role

Slide 11

Slide 11 text

Conway’s Law Architecture copies communication structures of the organization

Slide 12

Slide 12 text

Current Frontend Backend

Slide 13

Slide 13 text

Goal

Slide 14

Slide 14 text

Current Frontend Backend

Slide 15

Slide 15 text

Current Frontend Backend

Slide 16

Slide 16 text

Goal

Slide 17

Slide 17 text

Reorganization!

Slide 18

Slide 18 text

Reorganization!

Slide 19

Slide 19 text

Current: New goal?

Slide 20

Slide 20 text

Current: New goal?

Slide 21

Slide 21 text

New Goal

Slide 22

Slide 22 text

Architecture > If architecture = organization > …then change to architecture = reorganization > …or organization is a constraint.

Slide 23

Slide 23 text

Goal

Slide 24

Slide 24 text

Goal: Self-contained System http://scs-architecture-org

Slide 25

Slide 25 text

Result

Slide 26

Slide 26 text

Result

Slide 27

Slide 27 text

Architecture > Developers’ skills and preferences drive technology decisions. > Technology decisions can drive architecture.

Slide 28

Slide 28 text

Architecture= Boxes + Arrows +Org Architect= ?

Slide 29

Slide 29 text

Why do we even care about Architecture?

Slide 30

Slide 30 text

Maintainability!!

Slide 31

Slide 31 text

Quality Attributes > ISO 25010 > E.g. reliability > Usability > Maintainability > ...and a lot more

Slide 32

Slide 32 text

Architecture= Quality Attributes Architect= ?

Slide 33

Slide 33 text

Quality Attributes > Reliability > Usability > Maintainability

Slide 34

Slide 34 text

Reliability > Software has to be available > Clean architecture & code – any impact?

Slide 35

Slide 35 text

Reliability > Software has to be available > Classic approach: > Highly available hardware > Run in a cluster > …and cluster-enabled software

Slide 36

Slide 36 text

Reliability

Slide 37

Slide 37 text

Reliability > ISO 25010: Availability / Fault tolerance > ISO 25010: Recoverability

Slide 38

Slide 38 text

Reliability > Highly available hardware > …and cluster > …focus on MTBF (Mean time between failure)

Slide 39

Slide 39 text

Decrease MTTR - How?

Slide 40

Slide 40 text

No content

Slide 41

Slide 41 text

Decrease MTTR – How? > Find a problem faster > Measure > Monitoring > Logs > Alerts…

Slide 42

Slide 42 text

Decrease MTTR – How? > Get the fix out faster > Deployment > …or fail-over

Slide 43

Slide 43 text

Decrease MTTR – How? > Monitoring and Deployment: > Ops challenges > …not classic architecture

Slide 44

Slide 44 text

Architecture= Quality Attributes+Org Architect= ?

Slide 45

Slide 45 text

Quality Attributes > Reliability > Usability > Maintainability

Slide 46

Slide 46 text

Usability > ISO 25010 > Learnability > Ease-of-use > Attractiveness

Slide 47

Slide 47 text

Usability > Might be very important > …e.g. to gain a huge market share. > How do you make it happen?

Slide 48

Slide 48 text

Architecture = Boxes & Arrows

Slide 49

Slide 49 text

Usability??

Slide 50

Slide 50 text

Some Ideas to Improve Usability > Hire an UX expert > Usability tests > Prototypes + feedback > Look at support cases / hotline calls

Slide 51

Slide 51 text

Some Ideas to Improve Usability > No traditional architecture > QA / Organization / Project management

Slide 52

Slide 52 text

Usability > Quality attribute > Part of the technical decisions > Beyond “usual” architecture measures

Slide 53

Slide 53 text

Architecture= Quality Attributes+Org Architect= ?

Slide 54

Slide 54 text

Quality Attributes > Reliability > Usability > Maintainability

Slide 55

Slide 55 text

Maintainability > Clean architecture! > I am waiting for such a customer.

Slide 56

Slide 56 text

We can achieve maintainability with clean architecture + clean code.

Slide 57

Slide 57 text

Clean Architecture

Slide 58

Slide 58 text

Developer

Slide 59

Slide 59 text

Developer

Slide 60

Slide 60 text

Result?

Slide 61

Slide 61 text

No content

Slide 62

Slide 62 text

ECommerce System Order Catalog Billing Search Module = microservices

Slide 63

Slide 63 text

ECommerce System Order Catalog Billing Search Module = microservices Communication e.g. REST

Slide 64

Slide 64 text

REST REST

Slide 65

Slide 65 text

ECommerce System Order Catalog Billing Search Dependencies between systems cannot sneak in

Slide 66

Slide 66 text

ECommerce System Order Catalog Billing Search Dependencies between systems cannot sneak in

Slide 67

Slide 67 text

ECommerce System Order Catalog Billing Search Dependencies between systems cannot sneak in “Architecture Firewalls”

Slide 68

Slide 68 text

“Architecture Firewall” like REST enforce the architecture

Slide 69

Slide 69 text

ECommerce System Order Catalog Billing Search Microservices small

Slide 70

Slide 70 text

ECommerce System Order Catalog Billing Search Microservices small Hard to mess up

Slide 71

Slide 71 text

ECommerce System Order Catalog Billing Search Microservices small Hard to mess up

Slide 72

Slide 72 text

ECommerce System Catalog Billing Search Microservices small Hard to mess up

Slide 73

Slide 73 text

ECommerce System Order Catalog Billing Search Microservices small Hard to mess up Replace if messed up.

Slide 74

Slide 74 text

Small, independent deployable microservices are recyclable.

Slide 75

Slide 75 text

Recycle your software! !

Slide 76

Slide 76 text

How many people are trying to replace legacy systems?

Slide 77

Slide 77 text

Replaceability is usually no goal for a software project. Why??

Slide 78

Slide 78 text

We can achieve maintainability with clean architecture + clean code

Slide 79

Slide 79 text

We can achieve maintainability with architecture firewalls + recyclable microservices

Slide 80

Slide 80 text

Maintainability > Clean architecture focuses on Changeability. > …and Analyzability. > There is more!

Slide 81

Slide 81 text

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?

Slide 82

Slide 82 text

Deployment > It’s nice to change code. > It’s (lean) waste until it is in production. > Deployment: another factor for maintainability.

Slide 83

Slide 83 text

Commit Stage Automated Acceptance Testing Automated Capacity Testing Manual Explorative Testing Release QA Dev Ops

Slide 84

Slide 84 text

Maintainability > Not clean architecture and code > Recyclable, very decoupled microservices > Not just structure of the system, but also > …test and deployment > …continuous delivery pipeline

Slide 85

Slide 85 text

Maintainability > Not just architect and Dev, but also > QA and Ops

Slide 86

Slide 86 text

Architecture= Quality Attributes+Org Architect= ?

Slide 87

Slide 87 text

Achieving the Attributes > Organizational Measure (e.g. hire UX) > Cross-functional: Ops, Dev, QA

Slide 88

Slide 88 text

Architect? > Technical manager > In charge of achieving the quality attributes > Influencing organization > …and Ops, Dev, QA

Slide 89

Slide 89 text

Agile Team > Self Organization > i.e. not necessarily a defined architect > Architecture activities cover Ops, Dev, QA > Cross-functional!

Slide 90

Slide 90 text

Architecture= Quality Attributes+Org Architect= Technical Management Role