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:
Product not projects (DevOps Compliant)
Evolutionary design
Infrastructure automation
Design for failure
Decentralized governance
Smart endpoints and dumb pipes
Decentralized data management
What is a microservice architecture?
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