Introduction to microservicesSanatan Waghulkar
Microservices is one of very commonly used terms in the modern era of software development. The service oriented architecture started gaining popularity due to known challenges in legacy monolith applications – challenges such as communication to other applications, ease of maintenance, ease of deployment and so on.
Microservices offer multiple advantages over monolith applications – they implement single responsibility principle inherently – making different parts of the system independent. That means the components can handle their changes without impacting any other components in the system as long as they abide by the contract they expose to work with them.
Another benefit with microservice architecture is each component is technology agnostic – each component can be developed using a technical stack of your choice. Obviously that doesn’t imply that each component should have different underlying technology – but you definitely get that freedom based on the skill sets available with your development team.
And in today’s agile world, microservices fit the process and multiple services can be developed in parallel handling their individual variations in requirement by conforming to the contract. This helps increase your team velocity in general, resulting in faster development.
But – yes no discussion completes unless there is a “but” involved. Is microservices a silver bullet to solve the problems in developing an application? Answer is – No. Microservices at the face of it is a very lucrative approach to take. But do you really need to take the road – depends on if the road takes you home. Stay tuned where we discuss more on microservices in our next post.