This blog is not going to discuss Microservices and DevOps but will highlight why they both need to be embraced simultaneously to make each other succeed in any system.
There are various improvements which can be achieved by using a microservices based system design. But however good a microservice based system design is, it will always have a distribution and deployment complexity attached to it.
The only solution to mitigate this increase in cost is automation. We must have a continuous delivery model, and automated monitoring in place to have a successful microservice based platform. While microservices brings its own benefits to the overall system, DevOps brings a culture which is the best fit for successful microservices-based design implementation and operations.
Microservice architecture increases operation complexity. In fact, a considerable amount of issues from microservices are operations issues. On the other hand, DevOps provides ways to mitigate the impact of microservices on the overall system. For example, it provides automated deployment and continuous monitoring when microservices are in use. DevOps eases out the communication between development and operation which is key to a successful microservice based system.
All the benefits a microservice-based architecture provides like scalability through a distributed system, improved agility, reduced complexity of different components etc., cannot be materialized without a DevOps culture in place.
In a nutshell, microservice architect and DevOps culture complement each other to succeed and we need to have both together to have a great system in place.