Issue
I've been reading a lot of articles that state microservices enable CI/CD. However, the articles don't explain how or why this is the case. It seems that you could continuously deploy a monolith as well once all of its automated tests pass.
Thank you!
Solution
There are many aspects of this.
It seems that you could continuously deploy a monolith as well once all of its automated tests pass.
A monolith is typically stateful, e.g. sessions is used for short lived user state. Where as modern microservice architecture typically follows The Twelve Factor App principles and are typically deployed on e.g. Kubernetes or other cloud environment. Apps following the Twelve Factor App principles and apps on Kubernetes are stateless, e.g. all user state most be handled outside the app. See https://12factor.net/processes
With stateless apps, it is much easier to scale-out to more instances e.g. 5 instances for an app and it is also easy to scale down to fewer instance, e.g. 2 instances.
When the app is stateless and runs in multiple instances - doing a "rolling deployment" e.g. updating one instance at the time, form version1 to version2 is an easy process and built-in functionality in Kubernetes.
With all the above features in-place, it is now much easier to implement Continuous Deployment compared to how it was with large stateful monolithic apps.
Answered By - Jonas Answer Checked By - Pedro (PHPFixing Volunteer)
0 Comments:
Post a Comment
Note: Only a member of this blog may post a comment.