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.