My 2¢ on : DevOps & Microservices
NB : This is just a 5 min non exhaustive reading
Lately a customer asked me about :"the link between Microservices and DevOps".
Quick reminder (cheat-sheet)
- DevOps : Time-to-market, Automation, Collaboration, Feature team (…)
- Microservices : Decentralized architecture, Independent, Serviceable, Scalable (…)
My 2 cents
They naturally come together, and it's all about Team-Organisation & Software Architecture
Let's draw a little bit :)
Take your favourite legacy app, nice monolith and silo-teams
Let's say you want to improve the Time-To-Market, Manageability and take the path of Microservices... You decide to cut it into 3 distinct services, and set up a team for each one, it may now look like this :
What's new ?
- Team organization has changed (and it is very logical if you think about it), now you have feature teams !
- Each team is multidisciplinary and is now dedicated / responsible of a feature ( = feature team)
- For each feature, the team may decide what is the most adapted technology !
- Each component is independent, so it has his own release process (speed) and it can be reworked without compromising the integrity of the entire application (high availability)
- (…)
And be aware of :
- Complexity it brings (big-picture, APIs, Message broker...)
- Use microservice-based architecture only if it brings value (need to scale, cloud-based…)
- While testing a feature alone should be easier, testing the whole app will probably be more difficult
- Don't forget to strengthen communication
Ok, but where to start from ?
1. Think about a smart way to split your app (value & process)
2. Put your ressources : 1 feature team = 1 (micro) service
3. Bring the tools (try to align as much as possible)
Thanks for reading !
Your feedback [ Here ]
We could write a book about this topic.. But that's it for today !