Monoliths, Myths, and Microservices


Published on

Moving from a monolithic based architecture to a more microservices architecture can be fraught with challenges. This talk covers some of these challenges and some common myths associated with trying to strangle the Monolith. We will also talk a bit about the open source project Habitat (, and how it can help you move towards microservices.

Published in: Technology
1 Like
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Monoliths, Myths, and Microservices

  1. 1. @mfdii Monoliths, Myths, and Microservices Michael Ducy - Chef @mfdii
  2. 2. @mfdii@mfdii A quick refresher • Let’s define microservices: The term "Microservice Architecture" has sprung up over the last few years to describe a particular way of designing software applications as suites of independently deployable services. While there is no precise definition of this architectural style, there are certain common characteristics around organization around business capability, automated deployment, intelligence in the endpoints, and decentralized control of languages and data.
  3. 3. @mfdii
  4. 4. @mfdii
  5. 5. @mfdii@mfdii I did that in 2005, yawn
  6. 6. @mfdii@mfdii Stop, It’s not SOA • Services tend to have smaller concerns than SOA Services • Architectural Concepts incorporates Innovations: – In Infrastructure – In Automation – In Continuous Delivery – In Development – In Monitoring
  7. 7. @mfdii Myth #1: MicroServices Only Need Apply
  8. 8. @mfdii@mfdii Myth #1: Microservices Only Need Apply “Microservices is the only architectural pattern we need” • Microservices introduces complexity in operations – Pay down the complexity first? – Pay it down later (technical debt) • What if your idea doesn’t work? • What if your project is scrapped?
  9. 9. @mfdii@mfdii Myth #1: Microservices Only Need Apply • Be Lean in your thinking • Often faster to start developing in a non microservices architecture – Componentize your application – Split later • You don’t have a scaling problem, yet – But you might later, then look at microservices
  10. 10. @mfdii Myth #2: Everything’s solved by containers and microservices
  11. 11. @mfdii
  12. 12. @mfdii@mfdii Myth #2: Everything’s solved by containers and microservices • Containers fit very well with the microservices model – Serverless might fit even better! • Great for your Application Logic • Stateless!
  13. 13. @mfdii@mfdii Myth #2: Everything’s solved by containers and microservices
  14. 14. @mfdii@mfdii Myth #2: Everything’s solved by containers and microservices
  15. 15. @mfdii@mfdii Myth #2: Everything’s solved by containers and microservices • Great for your Application Logic • Not (always) great for your data • Data tier needs to be managed – VMs, Config Management – StatefulSets (Kubernetes) – Mesosphere (more than Containers) – Cloud Services • Data tier need to be “Self Service” – Like AWS RDS, etc
  16. 16. @mfdii Myth #3: Anyone can do Microservices
  17. 17. @mfdii@mfdii Myth #3: Anyone can do Microservices • Anyone except your organization • Have you adopted: – Continuous Integration? – Continuous Delivery? – Infrastructure As Code? – Modern Monitoring and log aggregation? – Cloud? – Fiction-less Change Management?
  18. 18. @mfdii@mfdii Myth #3: Anyone can do Microservices • Microservices won’t fix: – Your broken culture – Your lack of modernization – Your broken process – Your ineffective org chart
  19. 19. @mfdii@mfdii Because Conway’s Law
  20. 20. @mfdii@mfdii Because Conway’s Law
  21. 21. @mfdii Myth #4: I shouldn’t do microservices
  22. 22. @mfdii@mfdii Myth #4: I shouldn’t do microservices
  23. 23. @mfdii@mfdii Myth #4: I shouldn’t do microservices • What got you here won’t get you there. • Forcing function to modernize – Continuous Integration – Continuous Delivery – Infrastructure As Code and Automation – Modern Monitoring and log aggregation – Cloud – Fiction-less Change Management
  24. 24. @mfdii@mfdii Enter...Habitat
  25. 25. @mfdii Habitat Application automation that enables modern application teams to build, deploy, and manage any application in any environment - from traditional data-centers to containerized microservices.
  26. 26. @mfdii
  27. 27. @mfdii@mfdii Guiding Microservices Principles • Componentization via Services • Intelligence in the end point • Decentralization • Automated deployments
  28. 28. @mfdii Habitat’s Approach • Applications: portable & responsible for their own automation • Small OS serves the application • Make application components aware of each other over a network • Continuous deployment without traditional “ARA” The solution should be the same: • For new and legacy applications. • No matter the runtime environment
  29. 29. @mfdii How we do it Packaging Applications Plan Artifact Depot Bare Metal Containers AMI VM Depot Artifact Running Applications ServiceSupervisor ServiceSupervisor ServiceSupervisor ServiceSupervisor
  30. 30. @mfdii How we do it Service Service Service Service Leader Initializer Stand Alone Supervisor Supervisor Supervisor Supervisor Supervisor Supervisor Topologies Update Strategy Artifact Depot ServiceSupervisor “All At Once” Running Applications
  31. 31. @mfdii How we do it Security Secret Payloads Service Service Service Service Pub Key Symmetric Encryption Service Service Service Service Load Balancer Build Service Plan Artifact Depot Build Service
  32. 32. @mfdii Demo!
  33. 33. @mfdii Come contribute! • Write a plan for an application • Contribute to Habitat • Docs • Tutorial • Tweet at me: @mfdii