What is a monolith? A system that has the 3 L's: large, legacy, lethal!
What is a microservice?
- A single app broken into a suite of small services, usually by business capability
- Deployed independently
- Loosely coupled
Why do microservices?
- Smaller teams move faster
- Enables shipping out changes faster
How to start breaking up a monolith into microservices?
- Start with an opportunity to extract out a business feature or function.
- Transform a pain point into a new service.
- Always start small.
- Always get the business in the loop and ship something to get business confidence.
- Think out of the box - don't code a microservice like a monolith!
- Use feature flags and canary deployments to roll out changes slowly.
- Business buy-in is very important
- It will take time
- Design systems with resilience. The system will fail, the important thing is how fast is your recovery?
- How small is a microservice? Need to have consensus within the team.