Microservices

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

In classical software architecture, the architecture is often layered. There is one layer for the user interface, another for the application logic, and yet another for accessing persistent data (such as a database). In classical software architecture, an application server is used, which will run the different services (such as different entrypoints of a web site, or different parts of the business application). The problem with this approach is that such application servers often do not scale very well, they need a lot of resources, and services are often tightly coupled.

Microservices are patterns of Software architecture: The approach is similar to the pattern described above, but the services are very small: very often they only provide one or two very specific functions. To get the same situation as above, these services must interact with each other. Very often they do this using RESTful service calls. Each microservice still has the parts of the user interface layer, the application layer, and the layer to access persistent data. Very often, microservices run in an application container. When the load requires it, special software in the application container can be used to run several instances (or copies) of the specific service.