Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

ContainerDays NYC 2015: "How Yodle Cleaned Up the Mess Using Containers and Microservices" (John Downs)

475 views

Published on

Slides from John Downs's talk "How Yodle Cleaned Up the Mess Using Containers and Microservices" at ContainerDays NYC 2015: http://dynamicinfradays.org/events/2015-nyc/programme.html#yodle

Published in: Technology
  • Be the first to comment

ContainerDays NYC 2015: "How Yodle Cleaned Up the Mess Using Containers and Microservices" (John Downs)

  1. 1. How We Cleaned Up The Mess 1
  2. 2. Introduction
  3. 3. 2015 The Mess
  4. 4. The History
  5. 5. 2015 Architecture Trajectory ● Age of the Monolith (5 Years Ago) ○ Monolithic UI and Backend ○ Unit and Manual Testing ○ Monthly Deployments ○ Infrastructure Monitoring
  6. 6. 2015 Architecture Trajectory ● Age of the Service-Oriented Arch. (3 Years Ago) ○ Coarse Grained Services (Tomcat) ○ Unit and Service Level Testing ○ Weekly Deployments ○ Graphite Dashboards
  7. 7. 2015 Architecture Trajectory ● Age of the Micro Architecture (1 Year Ago) ○ HTTP Microservices ○ Docker Managed ○ Unit, Functional Testing ○ On Demand Deployment ○ Application and Infrastructure Monitoring
  8. 8. What Went Wrong
  9. 9. 2015 The Mess ● High Risk Releases
  10. 10. 2015 The Mess ● Slow Feedback
  11. 11. A Warning
  12. 12. 2015
  13. 13. How We Fixed It
  14. 14. 2015 Containers ● Docker makes deployment trivial - $ docker run myapp
  15. 15. 2015 Docker Registry ● Push and pull images from dev to prod!
  16. 16. 2015 REQUEST: { 'id': 1, 'container': { 'image': '...', ... }, executor: ..., 'cpus: 0.05, 'instances': 4, 'memory': 400.0 } Build Script Bamboo Build Plan Marathon Master Mesos Master Mesos Slave Executor Docker Daemon Docker Registry
  17. 17. 201517
  18. 18. 201518
  19. 19. 2015 Microservices ● How they solve the problem - Piecewise releases - Easier to understand
  20. 20. 2015 Fast Feedback ● Easier Testing - Contracts - Isolation - Easy to reason about Test Code Release
  21. 21. 2015 Low Risk Releases ● No downtime ● Easy rollback ● Canary Testing
  22. 22. 2015
  23. 23. 2015 Service Discovery 24
  24. 24. 2015 Atlassian Bamboo Cerebro New Relic Canary Isolated Microservices Microservices Partial Full UIs Thrift Queues DBs Partial
  25. 25. 2015 Canary Isolated: Contact Service
  26. 26. 2015 Canary Isolated: Contact Service
  27. 27. 2015 Canary Isolated: Contact Service
  28. 28. More To Do
  29. 29. 2015 More to Come ● Database isolation ● Pact
  30. 30. References
  31. 31. 2015 ● http://www.stavros.io/posts/microservices- cargo-cult/ ● http://martinfowler.com/bliki/ MicroservicePrerequisites.html ● http://martinfowler.com/articles/ consumerDrivenContracts.html ● http://martinfowler.com/bliki/ MicroservicePremium.html

×