Sunday, October 4, 2015

Dockercon State of the Art in Microservices

Dockercon State of the Art in Microservices



Dockercon State of the Art in Microservices from Adrian Cockcroft

Dockercon State of the Art in Microservices

  1. 1. State of the Art in Microservices 1
  2. 2. ! Adrian Cockcroft - Battery Ventures - @adrianco ! Speeding up Development Microservice Architectures What’s Next
  3. 3. Cloud Adoption %*&!” By Simon Wardley http://enterpriseitadoption.com/
  4. 4. Cloud Adoption %*&!” 2009 By Simon Wardley http://enterpriseitadoption.com/
  5. 5. Cloud Adoption %*&!” 2009 By Simon Wardley http://enterpriseitadoption.com/
  6. 6. Cloud Adoption @adrianco’s job at the intersection of cloud and Enterprise IT %*&!” By Simon Wardley http://enterpriseitadoption.com/ 2014 2009
  7. 7. Cloud Adoption @adrianco’s job at the intersection of cloud and Enterprise IT %*&!” By Simon Wardley http://enterpriseitadoption.com/ 2014 2009 Docker wasn’t on anyone’s roadmap for 2014. It’s on everyone’s roadmap for 2015.
  8. 8. Product Development Processes
  9. 9. Observe Orient Act Continuous Delivery Decide
  10. 10. Land grab opportunity Competitive Observe Orient Decide Act Move Customer Pain Point Measure Customers Continuous Delivery
  11. 11. Land grab opportunity Competitive Observe Orient Decide Act Move Customer Pain Point INNOVATION Measure Customers Continuous Delivery
  12. 12. Land grab opportunity Competitive Observe Orient Decide Act Move Customer Pain Point Analysis Model Hypotheses INNOVATION Measure Customers Continuous Delivery
  13. 13. Land grab opportunity Competitive Observe Orient Decide Act Move Customer Pain Point Analysis BIG DATA Model Hypotheses INNOVATION Measure Customers Continuous Delivery
  14. 14. Land grab opportunity Competitive Observe Orient Decide Act Move Customer Pain Point Analysis BIG DATA Plan Response JFDI Share Plans Model Hypotheses INNOVATION Measure Customers Continuous Delivery
  15. 15. Land grab opportunity Competitive Observe Orient Decide Act Move Customer Pain Point Analysis BIG DATA Plan Response JFDI Share Plans Model Hypotheses INNOVATION CULTURE Measure Customers Continuous Delivery
  16. 16. Land grab opportunity Competitive Observe Orient Decide Act Move Customer Pain Point Analysis BIG DATA Plan Response JFDI Share Plans Launch AB Test Automatic Deploy Incremental Features Model Hypotheses INNOVATION CULTURE Measure Customers Continuous Delivery
  17. 17. Land grab opportunity Competitive Observe Orient Decide Measure Customers Act Move Customer Pain Point Analysis BIG DATA Plan Response JFDI Share Plans Launch AB Test Automatic Deploy Incremental Features Model Hypotheses INNOVATION CULTURE CLOUD Continuous Delivery
  18. 18. Land grab opportunity Competitive Observe Orient Decide Measure Customers Act Move Customer Pain Point Analysis BIG DATA Plan Response JFDI Share Plans Launch AB Test Automatic Deploy Incremental Features Model Hypotheses INNOVATION CULTURE CLOUD Continuous Delivery
  19. 19. Land grab opportunity Competitive Observe Orient Decide Measure Customers Act Move Customer Pain Point Analysis BIG DATA Plan Response JFDI Share Plans Launch AB Test Automatic Deploy Incremental Features Model Hypotheses INNOVATION CULTURE CLOUD Continuous Delivery
  20. 20. Breaking Down the SILOs
  21. 21. Breaking Down the SILOs Prod Mgr UX Dev QA DBA Sys Adm Adm Net Adm SAN
  22. 22. Breaking Down the SILOs Prod Mgr UX Dev QA DBA Sys Adm Adm Net Adm SAN Product Team Using Monolithic Delivery Product Team Using Monolithic Delivery
  23. 23. Breaking Down the SILOs Product Team Using Monolithic Delivery Product Team Using Monolithic Delivery Prod Mgr UX Dev QA DBA Sys Adm Adm Net Adm SAN Product Team Using Microservices Product Team Using Microservices Product Team Using Microservices
  24. 24. Breaking Down the SILOs Product Team Using Monolithic Delivery Product Team Using Monolithic Delivery Prod Mgr UX Dev QA DBA Sys Adm Adm Net Adm SAN Product Team Using Microservices Product Team Using Microservices Platform Team Product Team Using Microservices
  25. 25. Breaking Down the SILOs Product Team Using Monolithic Delivery Product Team Using Monolithic Delivery Prod Mgr UX Dev QA DBA Sys Adm Adm Net Adm SAN Product Team Using Microservices Platform Team A P I Product Team Using Microservices Product Team Using Microservices
  26. 26. Breaking Down the SILOs Product Team Using Monolithic Delivery Product Team Using Monolithic Delivery Prod Mgr UX Dev QA DBA Sys Adm Adm Net Adm SAN Product Team Using Microservices Platform Team A P I Product Team Using Microservices Product Team Using Microservices DevOps is a Re-Org!
  27. 27. 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
  28. 28. Release Plan Developer Developer Developer Developer Developer Monolithic service updates QA Release Integration Ops Replace Old With New Release Bugs Works well with a small number of developers and a single language like php, java or ruby
  29. 29. Release Plan Developer Developer Developer Developer Developer Monolithic service updates QA Release Integration Ops Replace Old With New Release Bugs Bugs Works well with a small number of developers and a single language like php, java or ruby
  30. 30. 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
  31. 31. Developer Developer Developer Developer Developer Immutable microservice deployment scales, is faster with large teams and diverse platform components 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
  32. 32. Developer Developer Developer Developer Developer Immutable microservice deployment scales, is faster with large teams and diverse platform components 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
  33. 33. Developer Developer Developer Developer Developer Immutable microservice deployment scales, is faster with large teams and diverse platform components 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
  34. 34. Configure Configure Developer Developer Developer Release Plan Release Plan Release Plan Standardized portable container deployment saves time and effort Deploy Standardized Services https://hub.docker.com
  35. 35. 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
  36. 36. Developing at the Speed of Docker Developers • Compile/Build • Seconds Extend container • Package dependencies • Seconds PaaS deploy Container • Docker startup • Seconds
  37. 37. Developing at the Speed of Docker Developers • Compile/Build • Seconds Extend container • Package dependencies • Seconds PaaS deploy Container • Docker startup • Seconds Speed is addictive, hard to go back to taking much longer to get things done
  38. 38. What Happened? Rate of change increased Cost and size and risk of change reduced
  39. 39. Disruptor: Continuous Delivery with Containerized Microservices
  40. 40. Microservices
  41. 41. A Microservice Definition ! Loosely coupled service oriented architecture with bounded contexts
  42. 42. If every service has to be updated at the same time it’s not loosely coupled A Microservice Definition ! Loosely coupled service oriented architecture with bounded contexts
  43. 43. If every service has to be updated at the same time it’s not loosely coupled A Microservice Definition ! Loosely coupled service oriented architecture with bounded contexts 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.
  44. 44. Coupling Concerns ●Conway’s Law - organizational coupling ●Centralized Database Schemas ●Enterprise Service Bus - centralized message queues ●Inflexible Protocol Versioning http://en.wikipedia.org/wiki/Conway's_law
  45. 45. Speeding Up The Platform Datacenter Snowflakes • Deploy in months • Live for years
  46. 46. Speeding Up The Platform Datacenter Snowflakes • Deploy in months • Live for years Virtualized and Cloud • Deploy in minutes • Live for weeks
  47. 47. 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
  48. 48. 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
  49. 49. 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 Speed enables and encourages new microservice architectures
  50. 50. 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 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
  51. 51. Microservice Concerns Tooling Configuration Discovery Routing Observability Datastores Operational: Orchestration and Deployment Infrastructure Development: Languages and Container
  52. 52. Microservices Edda Archaius ! Configuration Asgard Aminator ! Tooling Eureka Prana ! Discovery Denominator Zuul, Netty Ribbon 2.0 ! Routing Hystrix Pytheus SALP ! Observability Ephemeral datastores using Dynomite, Memcached, Astyanax, Staash, Priam, Cassandra Manual Orchestration with Asgard and deployment on AWS or Eucalyptus Java, Groovy, Scala, Clojure, Python, Node.js with AMI and Docker Containers
  53. 53. Microservices Edda Archaius ! Configuration Asgard Aminator ! Tooling Eureka Prana ! Discovery Denominator Zuul, Netty Ribbon 2.0 ! Routing Hystrix Pytheus SALP ! Observability Ephemeral datastores using Dynomite, Memcached, Astyanax, Staash, Priam, Cassandra Manual Orchestration with Asgard and deployment on AWS or Eucalyptus Java, Groovy, Scala, Clojure, Python, Node.js with AMI and Docker Containers Focus on global distribution, high scale and availability
  54. 54. Twitter Microservices Decider !! Tooling Configuration Finagle Zookeeper ! Discovery Finagle Netty ! Routing Zipkin !! Observability Custom Cassandra-like datastore: Manhattan Orchestration using Aurora deployment in datacenters using Mesos Scala with JVM Container
  55. 55. Twitter Microservices Decider !! Tooling Configuration Finagle Zookeeper ! Discovery Finagle Netty ! Routing Zipkin !! Observability Custom Cassandra-like datastore: Manhattan Orchestration using Aurora deployment in datacenters using Mesos Scala with JVM Container Focus on efficient datacenter deployment at scale
  56. 56. Gilt Microservices Decider !! Configuration Ion Cannon SBT Rake ! Tooling Finagle Zookeeper ! Discovery Akka Finagle Netty ! Routing Zipkin !! Observability Datastores per Microservice using MongoDB, Postgres, Voldemort Deployment on AWS Scala and Ruby with Docker Containers
  57. 57. Gilt Microservices Decider !! Configuration Ion Cannon SBT Rake ! Tooling Finagle Zookeeper ! Discovery Akka Finagle Netty ! Routing Zipkin !! Observability Datastores per Microservice using MongoDB, Postgres, Voldemort Deployment on AWS Scala and Ruby with Docker Containers Focus on fast development with Scala and Docker
  58. 58. Hailo Microservices Configuration Hubot Janky Jenkins ! Tooling go-platform ! Discovery go-platform RabbitMQ ! Routing Request trace ! Observability Datastore based on Cassandra Deployment on AWS Go using Docker
  59. 59. Hailo Microservices Configuration Hubot Janky Jenkins ! Tooling go-platform ! Discovery go-platform RabbitMQ ! Routing Request trace ! Observability Datastore based on Cassandra Deployment on AWS Go using Docker Focus on fast development at scale using Go
  60. 60. 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/
  61. 61. 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
  62. 62. 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
  63. 63. What’s Next?
  64. 64. 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
  65. 65. Next Generation Applications ? ! Configuration ? ! Tooling ? ! Discovery ? ! Routing ? ! Observability Datastores: Ephemeral, Orchestrated or DBaaS Operational: Many orchestration choices across public and private clouds Development: Components assembled from Docker Hub as a composable “app store”
  66. 66. Next Generation Applications ? ! Configuration ? ! Tooling ? ! Discovery ? ! Routing ? ! Observability Datastores: Ephemeral, Orchestrated or DBaaS Operational: Many orchestration choices across public and private clouds Development: Components assembled from Docker Hub as a composable “app store” Fill in the gaps, rapidly evolving ecosystem choices
  67. 67. Forward Thinking
  68. 68. Forward Thinking
  69. 69. Forward Thinking
  70. 70. Forward Thinking http://eugenedvorkin.com/seven-micro-services-architecture-advantages/
  71. 71. Any Questions? ● 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 Disclosure: some of the companies mentioned may be Battery Ventures Portfolio Companies See www.battery.com for a list of portfolio investments
  72. 72. Thank You. 36

No comments:

Post a Comment