thoughtworks live 2014: "building systems that pivot"

35
BUILDING SYSTEMS THAT PIVOT Andy Marks [email protected] @andee_marks Zhamak Dehghani [email protected] @zhamakd

Upload: andy-marks

Post on 21-Jan-2018

40 views

Category:

Technology


4 download

TRANSCRIPT

BUILDING SYSTEMS THAT PIVOT

Andy Marks

[email protected]

@andee_marks

Zhamak Dehghani

[email protected]

@zhamakd

Untested system dependenciesTeam orchestration overhead

A BROKEN DIALOGUE WITH THE CUSTOMER - FEEL FAMILIAR?

Large software releaseLong feedback cycles

> 50%

< 30%Large software release

Team orchestrated overhead

Untested system dependencies

Long feedback cycles

>50%<30%

AN ENGAGED CUSTOMER - AS IT SHOULD BE.

:) :)

<30% >50%

CONTINUOUS DELIVERY AS AN ENABLER

• automated build

• automated deployment

• automated environment provisioning - cloud & virtualisation

• automated testing

SP

EE

D O

F D

EL

IVE

RY

C D M AT U R I T Y L E V E L

Threshold without

changing architecture

ARCHITECTURE

A THOUGHT EXPERIMENT

Build Test Integration Acceptance Production

System.out.println

(“Hello World!”);

How long will this take?

ELEMENTS OF ARCHITECTURE

Integration

Off-the-shelf

Bespoke

Off-the-shelf

Bespoke

Integration

Integration

Integration

ELEMENTS OF ARCHITECTURE

Integration

Off-the-shelf

Bespoke

Off-the-shelf

Bespoke

Integration

Integration

Integration

BESPOKE DEVELOPMENT

MONOLITHIC ARCHITECTURES

LAYERED/TIERED ARCHITECTURE

User Interface/Channels

Business Logic/

Frameworks/Middleware

Database/Systems

of Record

FINE-GRAINED ARCHITECTURE

BOUNDARIES

BOUNDARIES

A business capability

Placing

Order

Tracking

Order

Short-term experimentation

DroneBased

Delivery

Technology & security

requirements

Debit

Cards

Credit Card

Payments

CAN I RELEASE THESE INDEPENDENTLY?

A THOUGHT EXPERIMENT

Integration

Off-the-shelf

MICROSERVICE

S• Independent

• Business capability

• Published interface

• Small

• 100s, not 1000s

BENEFITS

User Interface/Channels

Business Logic/

Frameworks/Middleware

Database/Systems

of Record

AUTONOMY

AUTONOMY ➡ SPEED

ABSORBS TECHNOLOGY FASTER

.NET

Clojure

Java

[SQL Database]

[Graph Database]

[Document Storage]

COMPOSE-ABILITY

ANTI-PATTERN – COUPLING THROUGH THE DATABASE

CUSTOMER ORDERS

AUTOMATE!

AUTOMATE!

AUTOMATE!

AUTOMATION

Build Test Integration Acceptance Production

AUTOMATION

Build Test Integration Acceptance Production

MICROSERVICES’ PATH TO PRODUCTION

Build Test Integration Acceptance Production

MONITORING

STATUS

• Up?

• Down?

STATUS

• All up?

• All down?

• Mostly up?

• Up apart from 1?

• All of the important bits are up?

• …

AMAZON PRODUCT PAGE

DOESN’T APPEAR… DO WE CARE?

A THOUGHT EXPERIMENT

Integration

Off-the-shelf

Bespoke

OFF-THE-SHELF SOFTWARE

BUILD VS. BUY

Customer Data Customer Facing Products

STRATEGIC

(BUILD)

UTILITY

(BUY)Ledger Systems Call Center Payments

PRODUCT SELECTION CRITERIA

• Can you write automated tests against it?

• Can it be automatically deployed?

• Can its environments be automatically provisioned?

• Can updates be automatically applied?

• Does it fit the way you work?

• Is it built using open standards?

• Does it run on open platforms?

• Is data stored in open formats?

• Is it open source?

A THOUGHT EXPERIMENT

Integration

Off-the-shelf

Bespoke

COMPONENT INTEGRATION

INTEGRATION

Smart & Complex Integration System

Simple & Dumb

Integration

Open standards

(e.g., HTTP)

Simple & Dumb

Infrastructure SUMMARY

RECOMMENDATIONS

• Bespoke development ➡ microservices

–Automate everything!

• Off-the-shelf software ➡ utility systems

–Select for automation and open standards

• Component integration

–Dumb, open and “of the web”

OTS

Bespoke

Bespoke

OTS

CONCLUSION

THANK YOUZhamak Dehghani

[email protected] @zhamakd

Andy Marks

[email protected] @andee_marks