dockercon state of the art in microservices

78
State of the Art in Microservices 1

Upload: adrian-cockcroft

Post on 07-Jul-2015

48.470 views

Category:

Technology


2 download

DESCRIPTION

Keynote at Dockercon Europe Amsterdam Dec 4th, 2014. Speeding up development with Docker. Summary of some interesting web scale microservice architectures. Please send me updates and corrections to the architecture summaries @adrianco Thanks Adrian

TRANSCRIPT

Page 1: Dockercon State of the Art in Microservices

State of the Art in Microservices

1

Page 2: Dockercon State of the Art in Microservices

!Adrian Cockcroft - Battery Ventures - @adrianco

!Speeding up Development Microservice Architectures

What’s Next

Page 3: Dockercon State of the Art in Microservices

Cloud Adoption

%*&!”

By Simon Wardley http://enterpriseitadoption.com/

Page 4: Dockercon State of the Art in Microservices

Cloud Adoption

%*&!”

By Simon Wardley http://enterpriseitadoption.com/

2009

Page 5: Dockercon State of the Art in Microservices

Cloud Adoption

%*&!”

By Simon Wardley http://enterpriseitadoption.com/

2009

Page 6: Dockercon State of the Art in Microservices

Cloud Adoption

@adrianco’s job at the intersection of cloud and Enterprise IT

%*&!”

By Simon Wardley http://enterpriseitadoption.com/

20142009

Page 7: Dockercon State of the Art in Microservices

Cloud Adoption

@adrianco’s job at the intersection of cloud and Enterprise IT

%*&!”

By Simon Wardley http://enterpriseitadoption.com/

20142009

Docker wasn’t on anyone’s roadmap for 2014. It’s on everyone’s roadmap for 2015.

Page 8: Dockercon State of the Art in Microservices

Product Development

Processes

Page 9: Dockercon State of the Art in Microservices

Observe

Orient

Decide

Act Continuous Delivery

Page 10: Dockercon State of the Art in Microservices

Observe

Orient

Decide

Act

Land grab opportunity Competitive

Move

Customer Pain Point

Measure Customers

Continuous Delivery

Page 11: Dockercon State of the Art in Microservices

Observe

Orient

Decide

Act

Land grab opportunity Competitive

Move

Customer Pain Point

INNOVATION

Measure Customers

Continuous Delivery

Page 12: Dockercon State of the Art in Microservices

Observe

Orient

Decide

Act

Land grab opportunity Competitive

Move

Customer Pain Point

Analysis

Model Hypotheses

INNOVATION

Measure Customers

Continuous Delivery

Page 13: Dockercon State of the Art in Microservices

Observe

Orient

Decide

Act

Land grab opportunity Competitive

Move

Customer Pain Point

Analysis

Model Hypotheses

BIG DATA

INNOVATION

Measure Customers

Continuous Delivery

Page 14: Dockercon State of the Art in Microservices

Observe

Orient

Decide

Act

Land grab opportunity Competitive

Move

Customer Pain Point

Analysis

JFDI

Plan Response

Share Plans

Model Hypotheses

BIG DATA

INNOVATION

Measure Customers

Continuous Delivery

Page 15: Dockercon State of the Art in Microservices

Observe

Orient

Decide

Act

Land grab opportunity Competitive

Move

Customer Pain Point

Analysis

JFDI

Plan Response

Share Plans

Model Hypotheses

BIG DATA

INNOVATION

CULTURE

Measure Customers

Continuous Delivery

Page 16: Dockercon State of the Art in Microservices

Observe

Orient

Decide

Act

Land grab opportunity Competitive

Move

Customer Pain Point

Analysis

JFDI

Plan Response

Share Plans

Incremental Features

Automatic Deploy

Launch AB Test

Model Hypotheses

BIG DATA

INNOVATION

CULTURE

Measure Customers

Continuous Delivery

Page 17: Dockercon State of the Art in Microservices

Observe

Orient

Decide

Act

Land grab opportunity Competitive

Move

Customer Pain Point

Analysis

JFDI

Plan Response

Share Plans

Incremental Features

Automatic Deploy

Launch AB Test

Model Hypotheses

BIG DATA

INNOVATION

CULTURE

CLOUD

Measure Customers

Continuous Delivery

Page 18: Dockercon State of the Art in Microservices

Observe

Orient

Decide

Act

Land grab opportunity Competitive

Move

Customer Pain Point

Analysis

JFDI

Plan Response

Share Plans

Incremental Features

Automatic Deploy

Launch AB Test

Model Hypotheses

BIG DATA

INNOVATION

CULTURE

CLOUD

Measure Customers

Continuous Delivery

Page 19: Dockercon State of the Art in Microservices

Observe

Orient

Decide

Act

Land grab opportunity Competitive

Move

Customer Pain Point

Analysis

JFDI

Plan Response

Share Plans

Incremental Features

Automatic Deploy

Launch AB Test

Model Hypotheses

BIG DATA

INNOVATION

CULTURE

CLOUD

Measure Customers

Continuous Delivery

Page 20: Dockercon State of the Art in Microservices

Breaking Down the SILOs

Page 21: Dockercon State of the Art in Microservices

Breaking Down the SILOs

QA DBA Sys Adm

Net Adm

SAN AdmDevUXProd

Mgr

Page 22: Dockercon State of the Art in Microservices

Breaking Down the SILOs

QA DBA Sys Adm

Net Adm

SAN AdmDevUXProd

Mgr

Product Team Using Monolithic DeliveryProduct Team Using Monolithic Delivery

Page 23: Dockercon State of the Art in Microservices

Breaking Down the SILOs

QA DBA Sys Adm

Net Adm

SAN AdmDevUXProd

MgrProduct Team Using Microservices

Product Team Using Monolithic Delivery

Product Team Using Microservices

Product Team Using Microservices

Product Team Using Monolithic Delivery

Page 24: Dockercon State of the Art in Microservices

Breaking Down the SILOs

QA DBA Sys Adm

Net Adm

SAN AdmDevUXProd

MgrProduct Team Using Microservices

Product Team Using Monolithic Delivery

Platform TeamProduct Team Using Microservices

Product Team Using Microservices

Product Team Using Monolithic Delivery

Page 25: Dockercon State of the Art in Microservices

Breaking Down the SILOs

QA DBA Sys Adm

Net Adm

SAN AdmDevUXProd

MgrProduct Team Using Microservices

Product Team Using Monolithic Delivery

Platform TeamA P IProduct Team Using Microservices

Product Team Using Microservices

Product Team Using Monolithic Delivery

Page 26: Dockercon State of the Art in Microservices

Breaking Down the SILOs

QA DBA Sys Adm

Net Adm

SAN AdmDevUXProd

MgrProduct Team Using Microservices

Product Team Using Monolithic Delivery

Platform Team

DevOps is a Re-Org!

A P IProduct Team Using Microservices

Product Team Using Microservices

Product Team Using Monolithic Delivery

Page 27: Dockercon State of the Art in Microservices

Release Plan

Developer

Developer

Developer

Developer

Developer

QA Release Integration

Ops Replace Old With New

Release

Monolithic service updates

Works well with a small number of developers and a single language like php, java or ruby

Page 28: Dockercon State of the Art in Microservices

Release Plan

Developer

Developer

Developer

Developer

Developer

QA Release Integration

Ops Replace Old With New

Release

Bugs

Monolithic service updates

Works well with a small number of developers and a single language like php, java or ruby

Page 29: Dockercon State of the Art in Microservices

Release Plan

Developer

Developer

Developer

Developer

Developer

QA Release Integration

Ops Replace Old With New

Release

Bugs

Bugs

Monolithic service updates

Works well with a small number of developers and a single language like php, java or ruby

Page 30: Dockercon State of the Art in Microservices

Developer

Developer

Developer

Developer

Developer

Old Release Still Running

Release Plan

Release Plan

Release Plan

Release Plan

Immutable microservice deployment scales, is faster with large teams and diverse platform components

Page 31: Dockercon State of the Art in Microservices

Developer

Developer

Developer

Developer

Developer

Old Release Still Running

Release Plan

Release Plan

Release Plan

Release Plan

Deploy Feature to Production

Deploy Feature to Production

Deploy Feature to Production

Deploy Feature to Production

Immutable microservice deployment scales, is faster with large teams and diverse platform components

Page 32: Dockercon State of the Art in Microservices

Developer

Developer

Developer

Developer

Developer

Old Release Still Running

Release Plan

Release Plan

Release Plan

Release Plan

Deploy Feature to Production

Deploy Feature to Production

Deploy Feature to Production

Deploy Feature to Production

Bugs

Immutable microservice deployment scales, is faster with large teams and diverse platform components

Page 33: Dockercon State of the Art in Microservices

Developer

Developer

Developer

Developer

Developer

Old Release Still Running

Release Plan

Release Plan

Release Plan

Release Plan

Deploy Feature to Production

Deploy Feature to Production

Deploy Feature to Production

Deploy Feature to Production

Bugs

Deploy Feature to Production

Immutable microservice deployment scales, is faster with large teams and diverse platform components

Page 34: Dockercon State of the Art in Microservices

Configure

Configure

Developer

Developer

Developer

Release Plan

Release Plan

Release Plan

Deploy Standardized

Services

Standardized portable container deployment saves time and effort

https://hub.docker.com

Page 35: Dockercon State of the Art in Microservices

Configure

Configure

Developer

Developer

Developer

Release Plan

Release Plan

Release Plan

Deploy Standardized

Services

Deploy Feature to Production

Deploy Feature to Production

Deploy Feature to Production

Bugs

Deploy Feature to Production

Standardized portable container deployment saves time and effort

https://hub.docker.com

Page 36: Dockercon State of the Art in Microservices

Developing at the Speed of Docker

Developers • Compile/Build • Seconds

Extend container • Package dependencies • Seconds

PaaS deploy Container • Docker startup • Seconds

Page 37: Dockercon State of the Art in Microservices

Developing at the Speed of Docker

Speed is addictive, hard to go back to taking much longer to get things done

Developers • Compile/Build • Seconds

Extend container • Package dependencies • Seconds

PaaS deploy Container • Docker startup • Seconds

Page 38: Dockercon State of the Art in Microservices

What Happened?Rate of change

increased

Cost and size and risk of change

reduced

Page 39: Dockercon State of the Art in Microservices

Disruptor: Continuous Delivery with

Containerized Microservices

Page 40: Dockercon State of the Art in Microservices

Microservices

Page 41: Dockercon State of the Art in Microservices

A Microservice Definition !

Loosely coupled service oriented architecture with bounded contexts

Page 42: Dockercon State of the Art in Microservices

A Microservice Definition !

Loosely coupled service oriented architecture with bounded contexts

If every service has to be updated at the same time it’s not loosely coupled

Page 43: Dockercon State of the Art in Microservices

A Microservice Definition !

Loosely coupled service oriented architecture with bounded contexts

If every service has to be updated at the same time it’s not loosely coupled

If you have to know too much about surrounding services you don’t have a bounded context. See the Domain Driven Design book by Eric Evans.

Page 44: Dockercon State of the Art in Microservices

Coupling Concerns

http://en.wikipedia.org/wiki/Conway's_law

●Conway’s Law - organizational coupling

●Centralized Database Schemas

●Enterprise Service Bus - centralized message queues

●Inflexible Protocol Versioning

Page 45: Dockercon State of the Art in Microservices

Speeding Up The Platform

Datacenter Snowflakes • Deploy in months • Live for years

Page 46: Dockercon State of the Art in Microservices

Speeding Up The Platform

Datacenter Snowflakes • Deploy in months • Live for years

Virtualized and Cloud • Deploy in minutes • Live for weeks

Page 47: Dockercon State of the Art in Microservices

Speeding Up The Platform

Datacenter Snowflakes • Deploy in months • Live for years

Virtualized and Cloud • Deploy in minutes • Live for weeks

Docker Containers • Deploy in seconds • Live for minutes/hours

Page 48: Dockercon State of the Art in Microservices

Speeding Up The Platform

Datacenter Snowflakes • Deploy in months • Live for years

Virtualized and Cloud • Deploy in minutes • Live for weeks

Docker Containers • Deploy in seconds • Live for minutes/hours

AWS Lambda • Deploy in milliseconds • Live for seconds

Page 49: Dockercon State of the Art in Microservices

Speeding Up The Platform

Speed enables and encourages new microservice architectures

Datacenter Snowflakes • Deploy in months • Live for years

Virtualized and Cloud • Deploy in minutes • Live for weeks

Docker Containers • Deploy in seconds • Live for minutes/hours

AWS Lambda • Deploy in milliseconds • Live for seconds

Page 50: Dockercon State of the Art in Microservices

http://www.infoq.com/presentations/scale-gilt

http://www.slideshare.net/mcculloughsean/itier-breaking-up-the-monolith-philly-ete

http://www.infoq.com/presentations/Twitter-Timeline-Scalability http://www.infoq.com/presentations/twitter-soa

http://www.infoq.com/presentations/Zipkin

https://speakerdeck.com/mattheath/scaling-micro-services-in-go-highload-plus-plus-2014

State of the Art in Web Scale Microservice Architectures

AWS Re:Invent : Asgard to Zuul https://www.youtube.com/watch?v=p7ysHhs5hl0 Resiliency at Massive Scale https://www.youtube.com/watch?v=ZfYJHtVL1_w

Microservice Architecture https://www.youtube.com/watch?v=CriDUYtfrjs

Page 51: Dockercon State of the Art in Microservices

Microservice Concerns

ConfigurationTooling Discovery Routing Observability

Development: Languages and Container

Operational: Orchestration and Deployment Infrastructure

Datastores

Page 52: Dockercon State of the Art in Microservices

Microservices

Edda Archaius !

Configuration

Asgard Aminator !Tooling

Eureka Prana !

Discovery

Denominator Zuul, Netty Ribbon 2.0 !

Routing

Hystrix Pytheus SALP !

Observability

Java, Groovy, Scala, Clojure, Python, Node.js with AMI and Docker Containers

Manual Orchestration with Asgard and deployment on AWS or Eucalyptus

Ephemeral datastores using Dynomite, Memcached, Astyanax, Staash, Priam, Cassandra

Page 53: Dockercon State of the Art in Microservices

Microservices

Edda Archaius !

Configuration

Asgard Aminator !Tooling

Eureka Prana !

Discovery

Denominator Zuul, Netty Ribbon 2.0 !

Routing

Hystrix Pytheus SALP !

Observability

Java, Groovy, Scala, Clojure, Python, Node.js with AMI and Docker Containers

Manual Orchestration with Asgard and deployment on AWS or Eucalyptus

Ephemeral datastores using Dynomite, Memcached, Astyanax, Staash, Priam, Cassandra

Focus on global distribution, high scale and availability

Page 54: Dockercon State of the Art in Microservices
Page 55: Dockercon State of the Art in Microservices
Page 56: Dockercon State of the Art in Microservices

Twitter Microservices

Decider !!ConfigurationTooling

Finagle Zookeeper !Discovery

Finagle Netty !

Routing

Zipkin !!Observability

Scala with JVM Container

Orchestration using Aurora deployment in datacenters using Mesos

Custom Cassandra-like datastore: Manhattan

Page 57: Dockercon State of the Art in Microservices

Twitter Microservices

Decider !!ConfigurationTooling

Finagle Zookeeper !Discovery

Finagle Netty !

Routing

Zipkin !!Observability

Scala with JVM Container

Orchestration using Aurora deployment in datacenters using Mesos

Custom Cassandra-like datastore: Manhattan

Focus on efficient datacenter deployment at scale

Page 58: Dockercon State of the Art in Microservices
Page 59: Dockercon State of the Art in Microservices
Page 60: Dockercon State of the Art in Microservices

Gilt Microservices

Decider !!Configuration

Ion Cannon SBT Rake !

Tooling

Finagle Zookeeper !Discovery

Akka Finagle Netty !

Routing

Zipkin !!Observability

Scala and Ruby with Docker Containers

Deployment on AWS

Datastores per Microservice using MongoDB, Postgres, Voldemort

Page 61: Dockercon State of the Art in Microservices

Gilt Microservices

Decider !!Configuration

Ion Cannon SBT Rake !

Tooling

Finagle Zookeeper !Discovery

Akka Finagle Netty !

Routing

Zipkin !!Observability

Scala and Ruby with Docker Containers

Deployment on AWS

Datastores per Microservice using MongoDB, Postgres, Voldemort

Focus on fast development with Scala and Docker

Page 62: Dockercon State of the Art in Microservices
Page 63: Dockercon State of the Art in Microservices

Hailo Microservices

Configuration

Hubot Janky

Jenkins !Tooling

go-platform !Discovery

go-platform RabbitMQ !Routing

Request trace !Observability

Go using Docker

Deployment on AWS

Datastore based on Cassandra

Page 64: Dockercon State of the Art in Microservices

Hailo Microservices

Configuration

Hubot Janky

Jenkins !Tooling

go-platform !Discovery

go-platform RabbitMQ !Routing

Request trace !Observability

Go using Docker

Deployment on AWS

Datastore based on Cassandra

Focus on fast development at scale using Go

Page 65: Dockercon State of the Art in Microservices
Page 66: Dockercon State of the Art in Microservices

Node.js Microservices

Several different approaches !Mostly small simple microservices !Focus on easy interface with presentation code in javascript !AWS Lambda - preview only

http://senecajs.org/

http://aws.amazon.com/lambda/

Page 67: Dockercon State of the Art in Microservices

Adrian’s Prototypes

Model and visualize microservices Simulate interesting architectures !See github.com/adrianco/spigo Simulate Protocol Interactions in Go !See github.com/adrianco/d3grow Dynamic visualization

Page 68: Dockercon State of the Art in Microservices

Web Scale Characteristics

●Brand new Microservices are deployed infrequently

●New versions deployed automatically/frequently

●No real need for general purpose orchestration

●Architectures use hundreds of microservices

●Each deployment is heavily customized

Page 69: Dockercon State of the Art in Microservices

What’s Next?

Page 70: Dockercon State of the Art in Microservices

Orchestration for Applications

●Standard portable microservice based applications

●New versions deployed automatically/frequently

●Orchestration automated and standardized

●Architectures likely based on tens of microservices

●Opportunity: Docker Hub as the enterprise app store

Page 71: Dockercon State of the Art in Microservices

Next Generation Applications

? !Configuration

? !Tooling

? !Discovery

? !Routing

? !Observability

Development: Components assembled from Docker Hub as a composable “app store”

Operational: Many orchestration choices across public and private clouds

Datastores: Ephemeral, Orchestrated or DBaaS

Page 72: Dockercon State of the Art in Microservices

Next Generation Applications

? !Configuration

? !Tooling

? !Discovery

? !Routing

? !Observability

Development: Components assembled from Docker Hub as a composable “app store”

Operational: Many orchestration choices across public and private clouds

Datastores: Ephemeral, Orchestrated or DBaaS

Fill in the gaps, rapidly evolving ecosystem choices

Page 73: Dockercon State of the Art in Microservices

Forward Thinking

Page 74: Dockercon State of the Art in Microservices

Forward Thinking

Page 75: Dockercon State of the Art in Microservices

Forward Thinking

Page 76: Dockercon State of the Art in Microservices

Forward Thinking

http://eugenedvorkin.com/seven-micro-services-architecture-advantages/

Page 77: Dockercon State of the Art in Microservices

Any Questions?

Disclosure: some of the companies mentioned may be Battery Ventures Portfolio Companies See www.battery.com for a list of portfolio investments

● Battery Ventures http://www.battery.com ● Adrian’s Tweets @adrianco and Blog http://perfcap.blogspot.com ● Slideshare http://slideshare.com/adriancockcroft !

● Monitorama Opening Keynote Portland OR - May 7th, 2014 - Video available ● GOTO Chicago Opening Keynote May 20th, 2014 - Video available ● Qcon New York – Speed and Scale - June 11th, 2014 - Video available ● Structure - Cloud Trends - San Francisco - June 19th, 2014 - Video available ● GOTO Copenhagen/Aarhus – Fast Delivery - Denmark – Sept 25th, 2014 ● DevOps Enterprise Summit - San Francisco - Oct 21-23rd, 2014 #DOES14 - Videos available ● GOTO Berlin - Migrating to Microservices - Germany - Nov 6th, 2014 ● AWS Re:Invent - Cloud Native Cost Optimization - Las Vegas - November 14th, 2014

Page 78: Dockercon State of the Art in Microservices

Thank You.

36