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 (habitat.sh), and how it can help you move towards microservices.
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.
http://www.martinfowler.com/articles/microservices.html
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
http://www.martinfowler.com/articles/microservices.html
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. @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
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!
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
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. @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
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
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.
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. @mfdii
How we do it
Packaging Applications
Plan Artifact Depot
Bare Metal
Containers
AMI
VM
Depot Artifact
Running Applications
ServiceSupervisor
ServiceSupervisor
ServiceSupervisor
ServiceSupervisor
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. @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
33. @mfdii
Come contribute!
• Write a plan for an application
https://github.com/habitat-sh/core-plans
• Contribute to Habitat
https://github.com/habitat-sh/habitat
• Docs
https://www.habitat.sh/docs/overview/
• Tutorial
https://www.habitat.sh/tutorials/
• Tweet at me:
@mfdii