A particular way of designing software apps as suites of independently deployable services. This architectural method is considered ideal when you have to enable support for a range of platforms and devices – spanning web, mobile, IoT & wearables.
|Used by||Docker, Amazon, Google|
The modern concept of lightweight OS containers was introduced in the early 2000s as part of the FreeBSD project. Docker provided an improved user experience for creating and sharing container images and as a result saw great adoption starting in 2013. Containers are a natural fit for microservices, matching the desire for lightweight and nimble components that can be easily managed and dynamically replaced. Unlike virtual machines, containers are designed to be pared down to the minimal viable pieces needed to run whatever the one thing the container is designed to do, rather than packing multiple functions into the same virtual or physical machine. The ease of development that Docker and similar tools provide help make possible rapid development and testing of services.