Microservices are the approach to application development wherein a large application is made up of a set of smaller services that function independently. Each of these services supports a specific task and manages its own database.
What benefit does the microservices approach provide developers?
The decentralization of the microservices approach enables developers to isolate a specific service that isn’t functioning as it should. They can then get to the root of the issue within the service and patch it, test it, and redeploy it without affecting the functioning of any of the other services.
The microservices approach is also easier to scale than traditional approaches to application development. Rather than having to create another iteration of the application when it reaches its capacity, developers only have to create new instances of specific services within the application.
What’s the difference between microservices and service-oriented architecture (SOA)?
Microservices and SOA are similar. Just as within the microservices approach, services within the SOA approach are designed to function independently of one another while still cooperating as part of a larger whole.
Unlike SOA, a microservices approach is a truly decoupled architecture. Microservices are also lighter and more flexible than SOA services and are deployed in containers, where SOA services are deployed to servers and VMs.
What are the cons of microservices?
While microservices allow you to look at an application’s functions and deal with them on an individual basis, this level of granularity isn’t right for all development teams or applications.
There’s also a good degree of complexity in how microservices are built and in how they communicate with one another. Designing this communication can be tricky and having independent services collaborate to run an application can cause latency during periods of heavy traffic.