A software system that has been separated into smaller modules that interact with each other. Dating back decades to component software and modular programming, the foundation of microservices is a standard programming interface (API) that enables each module to communicate with another. The advantage of microservice architecture is that each microservice can be independently updated with patches and enhancements without affecting the entire system.

Microservices and Containers
Starting in the 2013 time frame as OS virtualization (container technology) began to take off, the terms microservices and containers have been widely used in the same discussion. The reason is that containers enable numerous apps and services to run simultaneously in a single server, and container technology has been touted as an efficient way to host a microservice. See OS virtualization and component software.
