Microservice
The microservice is a software architecture approach (hence the name microservices architecture) often contrasted with monolithic architecture.
The microservice is a software architecture approach (hence the name microservices architecture) often contrasted with monolithic architecture. Microservices architecture can be seen as an evolution of SOA (Service-Oriented Architecture).
This style of architecture splits an application into multiple microservices, each independent of the others and specialised in a business-oriented task (search, payment, activity history, etc.). Each microservice is independent, meaning it has its own environment and its own code, often packaged inside containers managed via [Docker](/ressources/glossaire-de-la-tech/docker).
It communicates with the client or with other microservices through an [API](/ressources/glossaire-de-la-tech/api), the symbol of its independence. A microservices architecture brings full agility to development by allowing very rapid evolution: it is easy to evolve a feature by modifying the corresponding microservice, rather than touching the entire application and increasing the risk of bugs or outages.
If something breaks, only the modified microservice is affected — others keep running. In the same way, it's easier to measure the performance of an isolated microservice and therefore of a single feature.
Another benefit of microservices hosted in containers is the ability to duplicate them — and their environment — quickly to handle a temporary spike (a surge of visitors during Black Friday on an e-commerce site, for example), then scale back down. This enables a strong ability to adapt to demand.
Splitting microservices by business domain also makes it possible to form small, specialised teams around them. A microservices architecture therefore has many advantages for applications that need to evolve frequently and quickly (agility).
However, it is described as a complex system of simple microservices: it requires costly infrastructure, complex setup and an organisational structure that enables fast, easy communication so teams stay in sync.
