GOTO Amsterdam 2017 - Enterprise Fast Lane

49
GOTO Amsterdam | 14.06.2017 | Christian Deger | @cdeger Enterprise Fast Lane Transforming to Microservices in the Cloud

Transcript of GOTO Amsterdam 2017 - Enterprise Fast Lane

Page 1: GOTO Amsterdam 2017 - Enterprise Fast Lane

GOTO Amsterdam | 14.06.2017 | Christian Deger | @cdeger

Enterprise Fast LaneTransforming to Microservices in the Cloud

Page 2: GOTO Amsterdam 2017 - Enterprise Fast Lane

Christian DegerChief [email protected]@cdeger

Page 3: GOTO Amsterdam 2017 - Enterprise Fast Lane

2,4 Million Vehicles

Page 4: GOTO Amsterdam 2017 - Enterprise Fast Lane

Microservices in the cloud adoption?

Page 5: GOTO Amsterdam 2017 - Enterprise Fast Lane

2000 Servers

2 Data Centers

MTBF optimized

Page 6: GOTO Amsterdam 2017 - Enterprise Fast Lane

Dev and Ops Silos

Development“Change”

Operations“Stability”

Page 7: GOTO Amsterdam 2017 - Enterprise Fast Lane
Page 8: GOTO Amsterdam 2017 - Enterprise Fast Lane
Page 9: GOTO Amsterdam 2017 - Enterprise Fast Lane

New

CEO

Page 10: GOTO Amsterdam 2017 - Enterprise Fast Lane

Talent?Do you attract

Page 11: GOTO Amsterdam 2017 - Enterprise Fast Lane

21st CenturyWhat does a

tech companylook like?

Page 12: GOTO Amsterdam 2017 - Enterprise Fast Lane
Page 13: GOTO Amsterdam 2017 - Enterprise Fast Lane

Great Design

Universally Connected

Mobile First

Instant Business Value

Massive Data Insight

Highly Available

Page 14: GOTO Amsterdam 2017 - Enterprise Fast Lane

good, but not greatHmm, we are

Page 15: GOTO Amsterdam 2017 - Enterprise Fast Lane

Rebooteverything

Page 16: GOTO Amsterdam 2017 - Enterprise Fast Lane

.NET / Windows to JVM / Linux

Monolith to Microservices

Data center to AWS

Devs + Ops to Collaboration culture

Involve product people

Page 17: GOTO Amsterdam 2017 - Enterprise Fast Lane

Why Microservices?

Speed

Independent deployable

Fast local decisionsAutonomous teams

Strong boundaries

Loosely coupled Technology diversity

Scale the organization

Page 18: GOTO Amsterdam 2017 - Enterprise Fast Lane

Loosely coupled service oriented architecturewith bounded contexts.—Adrian Cockcroft

Microservices are small, autonomous servicesthat work together.—Sam Newman

Page 19: GOTO Amsterdam 2017 - Enterprise Fast Lane

“Death Star” Diagrams

Amazon 2008 Twitter 2013

Page 20: GOTO Amsterdam 2017 - Enterprise Fast Lane

http://scs-architecture.org/

Self-Contained Systems = Microservices Flavor

Team 1

Team 2 Team 3

One business capability is owned, built and run as an SCS by one team.

Self-Contained System are vertical slices integrated at the UI.

Page 21: GOTO Amsterdam 2017 - Enterprise Fast Lane

same

direction

Page 22: GOTO Amsterdam 2017 - Enterprise Fast Lane

STRATEGIC

GOALSGoals of the business side

ARCHITECTURAL

PRINCIPLESHigh-Level Principles

DESIGN AND DELIVERY

PRINCIPLESTactical measures

REDUCE TIME TO MARKET

Establish fast feedback loops to learn, validate and

improve. Remove friction, hand-offs and undifferentiated

work.

MOBILE FIRST

Start small and use device capabilities.

SUPPORT DATA-DRIVEN DECISIONS

Provide relevant metrics and data for user and market

insights. Validate hypothesis for problems worth solving.

YOU BUILT IT, YOU RUN IT

The team is responsible for shaping, building, running and

maintaining its products. Fast feedback from live and

customers helps us to continuously improve.

ORGANIZED AROUND BUSINESS CAPABILITIES

Build teams around products not projects. Follow the

domain and respect bounded contexts. Make boundaries

explicit. Inverse Conway Maneuver.

LOOSELY COUPLED

By default avoid sharing and tight coupling.

No integration database. Don’t create the next monolith.

MACRO AND MICRO ARCHITECTURE

Clear separation. Autonomous micro services within the

rules and constraints of the macro architecture.

AWS FIRST

Favor AWS platform service over managed service,

over self-hosted OSS, over self built solutions.

DATA-DRIVEN / METRIC-DRIVEN

Collect business and operational metrics. Analyze, alert

and act on them.

ELIMINATE ACCIDENTAL COMPLEXITY

Strive to keep it simple. Don’t over-engineer.

Focus on necessary domain complexity.

AUTONOMOUS TEAMS

Make fast local decisions. Be responsible. Know your

boundaries. Share findings.

INFRASTRUCTURE AS CODE

Automate everything: Reproducible, traceable, auditable

and tested. Immutable servers.

CROSS-FUNCTIONAL TEAMS

Engineers from all backgrounds work together in

collaborative teams as engineers and share

responsibilities. No silos.

BE BOLD

Go into production early. Value monitoring over tests.

Fail fast, recover and learn. Optimize for MTTR not MTBF.

SECURITY, COMPLIANCE AND DATA PRIVACY

Build with least privilege and data privacy in mind.

Know your threat model. Limit blast radius.

COST EFFICIENCY

Run your segment in the right balance of cost and value.

ONE SCOUT IT

Foster collaboration. Harmonize and standardize tools.

Pull common capabilities into decoupled platform services.

Version 2.0Icons made by Freepik from www.flaticon.com are licensed under CC BY 3.0

BEST TALENT

Autonomy, Purpose and Mastery: We know why we do

things, we decide how to approach them and deliberately

practice our skills.

Page 23: GOTO Amsterdam 2017 - Enterprise Fast Lane

Idea

ProductData

build

measure

learn

Build-Measure-Learn feedback loop

Page 24: GOTO Amsterdam 2017 - Enterprise Fast Lane

Conway’s Law

“organizations which design systems ... are constrained to produce designs which are copies of the communication structures of these organizations”

Page 25: GOTO Amsterdam 2017 - Enterprise Fast Lane

Autonomous teams

business capabilitiesorganized around

Page 26: GOTO Amsterdam 2017 - Enterprise Fast Lane

collaboration culture

Page 27: GOTO Amsterdam 2017 - Enterprise Fast Lane

You build it,you run it.

Page 28: GOTO Amsterdam 2017 - Enterprise Fast Lane

Monitoring is the new testing

Page 29: GOTO Amsterdam 2017 - Enterprise Fast Lane

Follow the

trail

Page 30: GOTO Amsterdam 2017 - Enterprise Fast Lane

Templates

• Faster bootstrapping• Copied not inherited• Collect and share best practices

Page 31: GOTO Amsterdam 2017 - Enterprise Fast Lane

Guilds

Self-organizing; common interests; across teams

Macro Architecture, Infrastructure, Frontend, QA...

Beware of mandelbrot teams

Page 32: GOTO Amsterdam 2017 - Enterprise Fast Lane

ContinuousDelivery

Page 33: GOTO Amsterdam 2017 - Enterprise Fast Lane

Forsgren, Nicole and Humble, Jez, The Role of Continuous Delivery in IT and Organizational Performance (October 27, 2015). Forsgren, N., J. Humble (2016). "The Role of Continuous Delivery in IT and Organizational Performance." In the Proceedings of the Western Decision Sciences Institute (WDSI) 2016, Las Vegas, NV. . Available at SSRN: http://ssrn.com/abstract=2681909 or http://dx.doi.org/10.2139/ssrn.2681909

DevOps Science

Page 34: GOTO Amsterdam 2017 - Enterprise Fast Lane

Application code in one repository per

service.

CI

Deployment packageas artifact.

CD

Deliver package to servers

Delivery Pipeline – Data Center

Page 35: GOTO Amsterdam 2017 - Enterprise Fast Lane

Application code and infrastructure

specification in one repository per

service.

CI

Deployment packageand infrastructure

declaration as artifact.

CD

1. Create or update service infrastructure.

2. New instances pull down package and start application.

Delivery Pipeline – AWS

Page 36: GOTO Amsterdam 2017 - Enterprise Fast Lane
Page 37: GOTO Amsterdam 2017 - Enterprise Fast Lane

Unlimited Infrastructure with APIs

Page 38: GOTO Amsterdam 2017 - Enterprise Fast Lane

Cattle,not pets

Page 39: GOTO Amsterdam 2017 - Enterprise Fast Lane

Separatecode deployment

feature release

from

Page 40: GOTO Amsterdam 2017 - Enterprise Fast Lane

How many environments?

Which versions on staging?Prod differs anyway: Load, data, patterns

V2V3

V6 V5

V4

V7

V5

V8

Engineer CI Dev Staging

V1

V4

Prod

Page 41: GOTO Amsterdam 2017 - Enterprise Fast Lane

Nostaging

environment

Page 42: GOTO Amsterdam 2017 - Enterprise Fast Lane

• Consumer driven contracts• Canary releases• Shadow traffic• Semantic monitoring

Integrate in production

Page 43: GOTO Amsterdam 2017 - Enterprise Fast Lane

https://autoscout24.github.io/tech-radar/

Page 44: GOTO Amsterdam 2017 - Enterprise Fast Lane

An act of Deliberate Collective Learning• Big Picture• Design Level

http://eventstorming.com/

Page 45: GOTO Amsterdam 2017 - Enterprise Fast Lane

Idea

ProductData

build

measure

learn

Build-Measure-Learn feedback loop

Page 46: GOTO Amsterdam 2017 - Enterprise Fast Lane

Idea

ProductData

build

measure

learn

New technologies enable technical agility…

AnalyticsBIMachine Learning

Big DataIoTMobile

CloudMicroservicesContainerCI/CD

Page 47: GOTO Amsterdam 2017 - Enterprise Fast Lane

Idea

ProductData

build

measure

learn

…and culture enables organizational agility

AnalyticsBIMachine Learning

Big DataIoTMobile

CloudMicroservicesContainerCI/CD

LeanAgile

DevOps

Page 48: GOTO Amsterdam 2017 - Enterprise Fast Lane