A microservice is a small, autonomous, self-contained software component that is loosely coupled and built around a business domain. The component is exposed with standard protocols for easy consumption and follows the Service Orientation principles for publishing and discovery.
What is a microservice architecture?
A microservice architecture is an architectural approach to designing large applications as modular microservices. That means that the business functionality is decomposed into a set of individual, self-contained services that communicate with each other via an API. This type of architecture deviates from central and coordinated deployment in that each microservice is deployed in its own runtime such as a Virtual Machine on a Cloud or a Container within a Virtual Machine. As a result, companies are able to scale individual services independent of other components given that these containers can be configured to automatically replicate and increase the computing capacity. By splitting an application into smaller services and decoupling interdependencies, companies discover greater agility and flexibility. This architectural style also works well with automating the build-deploy-release cycles for continuous deployment and DevOps model.
Microservice architecture characteristics:
APIs, Microservices and ESBs
The differences and overlaps…
The common mistakes made with microservices
- Implementing Technology for Technology’s sake
- Becoming too tool-centric
- Spending too much money on the creation of exclusive infrastructure for each service
- Re-inventing the wheel for cross-cutting capabilities