Microservices is an architectural style of computing that is frequently used in modern, distributed, cloud-based systems. It is intended to make applications easy to change, making the enterprise more adaptable.
What is it?
Microservices is a modular approach to building business applications, which are delivered via small, independent and loosely coupled services. These services are built around business capabilities and they can be deployed by fully automated mechanisms such as DevOps.
Since microservices are small, they’re designed to be easily replaceable or upgradeable. This means you can build business applications that are designed to evolve over time. That is in stark contrast to traditional methods of application development, where upgrades were often long and costly projects.
What’s in for you?
With microservices you’re building applications that are designed to be upgradeable, so they’re highly adaptable. Your IT department can mix multiple languages, development frameworks and data-storage technologies — so they can work with the technologies they feel are best suited to your organization.
The benefits of a microservices approach include increased ability to scale your business operations, accelerated pace at which you can change and reduced costs of enacting change.
What are the trade offs?
Not every legacy application will benefit from being decomposed and rebuilt in microservices style. In moving to a microservices style, you may lose some of the simplicity of your monolithic legacy applications. A legacy application that won't benefit as much from the flexibility a microservices architecture brings is a poor candidate for microservices.
And not every organization is ready to adopt microservices. There are capabilities needed in newer practices such as continuous delivery and infrastructure automation practices before microservices should be considered.