building microservices in the cloud - software architecture summit 2016

47
Software Architecture Summit| 16.03.2015 | Christian Deger Highway to heaven Building microservices in the cloud

Upload: christian-deger

Post on 13-Feb-2017

674 views

Category:

Engineering


0 download

TRANSCRIPT

Page 1: Building Microservices in the cloud - Software Architecture Summit 2016

Software Architecture Summit| 16.03.2015 | Christian Deger

Highway to heavenBuilding microservices in the cloud

Page 2: Building Microservices in the cloud - Software Architecture Summit 2016

Christian [email protected]@cdeger

Page 3: Building Microservices in the cloud - Software Architecture Summit 2016

2,4 Million Vehicles

Page 4: Building Microservices in the cloud - Software Architecture Summit 2016

17 countries

350 employees

140 in IT

RUS

S

PL

NL

DB

F A

HR RO

BG

UA

I

TR

E

CZ

Page 5: Building Microservices in the cloud - Software Architecture Summit 2016

2000 Servers2 Data Centers

MTBF optimized

Page 6: Building Microservices in the cloud - Software Architecture Summit 2016
Page 7: Building Microservices in the cloud - Software Architecture Summit 2016

NewCEO

Page 8: Building Microservices in the cloud - Software Architecture Summit 2016

Talent?Do you attract

Page 9: Building Microservices in the cloud - Software Architecture Summit 2016
Page 10: Building Microservices in the cloud - Software Architecture Summit 2016

goodHmm, we are

Page 11: Building Microservices in the cloud - Software Architecture Summit 2016

Rebooteverything

Page 12: Building Microservices in the cloud - Software Architecture Summit 2016

Project

Tatsu

Page 13: Building Microservices in the cloud - Software Architecture Summit 2016

.NET / Windows to JVM / Linux

Monolith to Microservices

Data center to AWS

Devs + Ops to Collaboration culture

Involve product people

Page 14: Building Microservices in the cloud - Software Architecture Summit 2016
Page 15: Building Microservices in the cloud - Software Architecture Summit 2016

same

direction

Page 16: Building Microservices in the cloud - Software Architecture Summit 2016

STRATEGICGOALSGoals of the business side

ARCHITECTURALPRINCIPLESHigh-Level Principles

DESIGN AND DELIVERY PRINCIPLESTactical measures

REDUCE TIME TO MARKETSpeed, Fast Feedback

COST EFFICIENCYCollect metrics to allow decisions cost vs. value.

SUPPORT DATA-DRIVEN DECISIONSListen to users and validate hypothesis.Provide as many relevant metrics & data as possible.

YOU BUILT IT, YOU RUN ITThe 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 CAPABILITIESBuild teams around products not projects. Follow the domain and respect bounded contexts. Inverse Conway Maneuver.

LOOSELY COUPLEDBy default avoid sharing and tight coupling, except for the big things in common. Don’t create the next monolith.

MACRO AND MICRO ARCHITECTUREClear separation. Autonomous micro services within the rules and constraints of the macro architecture.

AWS FIRSTFavor AWS platform service over managed service, over self-hosted OSS, over self-rolled solutions.

DATA-DRIVEN / METRIC-DRIVENCollect metrics from processes and applications. Analyze, alert and act on them.

ELIMINATE ACCIDENTAL COMPLEXITYStrive to keep it simple. Focus on essential complexity. You build one, you delete one.

AUTONOMOUS TEAMSMake fast local decisions. Be responsible. Know your boundaries. Share findings.

INFRASTRACTURE AS CODEAutomate everything: Reproducible, traceable and tested.Immutable servers over snowflake servers.

COLLABORATION CULTUREEngineers from all backgrounds work together in collaborative teams as engineers and share responsibilities. No silos.

BE BOLDGo into production early. Value monitoring over tests. Recover and learn. Optimize for MTTR not MTBF.

SECURITY, COMPLIANCE AND DATA PRIVACYSecurity must be included from the beginning and everybody’s concern. Keep data-privacy in mind.

CONTAINMENT AND BOUNDARIESAlign blast radius and vendor lock-in with the boundaries of the organization or business capabilities.

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

Page 17: Building Microservices in the cloud - Software Architecture Summit 2016

Autonomous teams

business capabilitiesorganized around

Page 18: Building Microservices in the cloud - Software Architecture Summit 2016

collaboration culture

Page 19: Building Microservices in the cloud - Software Architecture Summit 2016

We are all engineers!

Page 20: Building Microservices in the cloud - Software Architecture Summit 2016

You build it,you run it.

Page 21: Building Microservices in the cloud - Software Architecture Summit 2016

ContinuousDelivery

Page 22: Building Microservices in the cloud - Software Architecture Summit 2016

Unlimited Infrastructure with APIs

Page 23: Building Microservices in the cloud - Software Architecture Summit 2016
Page 24: Building Microservices in the cloud - Software Architecture Summit 2016

ImmutableServers

Page 25: Building Microservices in the cloud - Software Architecture Summit 2016

Monitoring is the new testing

Page 26: Building Microservices in the cloud - Software Architecture Summit 2016

Separatecode deployment

feature release

from

Page 27: Building Microservices in the cloud - Software Architecture Summit 2016

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 28: Building Microservices in the cloud - Software Architecture Summit 2016

Nostaging

environment

Page 29: Building Microservices in the cloud - Software Architecture Summit 2016

Event Sourcing

one way data highway

and data pumps

Page 30: Building Microservices in the cloud - Software Architecture Summit 2016

SQS + S3

Kinesis + S3

Kinesis + DynamoDB

SQS + DynamoDB

Proxy + DynamoDB

DynamoDB

Evolution

Page 31: Building Microservices in the cloud - Software Architecture Summit 2016

How (not) to shareshared nothing as default

loosely coupled

fast local decisions

voluntary adoption

exception: macro concerns

Page 32: Building Microservices in the cloud - Software Architecture Summit 2016

Frontend integrationLoosely coupled

Autonomous team

High optimization

Page 33: Building Microservices in the cloud - Software Architecture Summit 2016
Page 34: Building Microservices in the cloud - Software Architecture Summit 2016

PageSpeed Module

css (page+fragment)

js (page+fragment)

ngx_pagespeed

css (page)

js (page)

css (fragment)

js (fragment)

Page 35: Building Microservices in the cloud - Software Architecture Summit 2016

Infrastructure guild

Agree on things to do

Share learnings

Delegate implementation to teams

Infrastructure product teams needed?

Page 36: Building Microservices in the cloud - Software Architecture Summit 2016

?

Page 37: Building Microservices in the cloud - Software Architecture Summit 2016

STRATEGICGOALSGoals of the business side

ARCHITECTURALPRINCIPLESHigh-Level Principles

DESIGN AND DELIVERY PRINCIPLESTactical measures

REDUCE TIME TO MARKETSpeed, Fast Feedback

COST EFFICIENCYCollect metrics to allow decisions cost vs. value.

SUPPORT DATA-DRIVEN DECISIONSListen to users and validate hypothesis.Provide as many relevant metrics & data as possible.

YOU BUILT IT, YOU RUN ITThe 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 CAPABILITIESBuild teams around products not projects. Follow the domain and respect bounded contexts. Inverse Conway Maneuver.

LOOSELY COUPLEDBy default avoid sharing and tight coupling, except for the big things in common. Don’t create the next monolith.

MACRO AND MICRO ARCHITECTUREClear separation. Autonomous micro services within the rules and constraints of the macro architecture.

AWS FIRSTFavor AWS platform service over managed service, over self-hosted OSS, over self-rolled solutions.

DATA-DRIVEN / METRIC-DRIVENCollect metrics from processes and applications. Analyze, alert and act on them.

ELIMINATE ACCIDENTAL COMPLEXITYStrive to keep it simple. Focus on essential complexity. You build one, you delete one.

AUTONOMOUS TEAMSMake fast local decisions. Be responsible. Know your boundaries. Share findings.

INFRASTRACTURE AS CODEAutomate everything: Reproducible, traceable and tested.Immutable servers over snowflake servers.

COLLABORATION CULTUREEngineers from all backgrounds work together in collaborative teams as engineers and share responsibilities. No silos.

BE BOLDGo into production early. Value monitoring over tests. Recover and learn. Optimize for MTTR not MTBF.

SECURITY, COMPLIANCE AND DATA PRIVACYSecurity must be included from the beginning and everybody’s concern. Keep data-privacy in mind.

CONTAINMENT AND BOUNDARIESAlign blast radius and vendor lock-in with the boundaries of the organization or business capabilities.

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

Page 38: Building Microservices in the cloud - Software Architecture Summit 2016

Picture Credits• "HotWheels - '69 Ford Torino Talladega“ by Leap Kye, licensed under CC BY-ND 2.0• Differences between Traditional vs Next Generation by Simon Wardley under CC BY-SA 3.0• Enterprise IT Adoption Cycle by Simon Wardley under CC BY-SA 3.0• And the future is private by Simon Wardley under CC BY-SA 3.0• Leosvel et Diosmani by Ludovic Péron under CC BY-SA 3.0• Spare wheel by Brian Snelson under CC BY 2.0• Wheel clamps Texas by Richard Anderson from Denton, United States (Boots.) under CC BY-SA 2.0• Wandergeselle by Sigismund von Dobschütz under CC BY-SA 3.0• Sharing Sucks (4536747557) by eyeliam from Portland, United States under CC BY 2.0• Traffic Jam by Doo Ho Kim under CC BY-SA 2.0• Puzzling by Bernd Gessler (Own work) CC BY-SA 3.0• Amazon16 by Neil Palmer/CIAT under CC BY-SA 2.0

Page 39: Building Microservices in the cloud - Software Architecture Summit 2016

Backup

Page 40: Building Microservices in the cloud - Software Architecture Summit 2016
Page 41: Building Microservices in the cloud - Software Architecture Summit 2016

21st CenturyWhat does a

tech company look like?

Page 42: Building Microservices in the cloud - Software Architecture Summit 2016

Great Design

Universally Connected

Mobile First

Instant Business Value

Massive Data Insight

Highly Available

Page 43: Building Microservices in the cloud - Software Architecture Summit 2016

Giants

Stand on the Shoulders of

Page 44: Building Microservices in the cloud - Software Architecture Summit 2016
Page 45: Building Microservices in the cloud - Software Architecture Summit 2016

Conway’s Law

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

Page 46: Building Microservices in the cloud - Software Architecture Summit 2016

UnifiedLogs

CC

Page 47: Building Microservices in the cloud - Software Architecture Summit 2016

Two stacks

Cash stack meets shiny new stack

One company

Lights on in cash stack

Feature freeze

Where to build new features?

Ease of integration helps business peopleWW