Updated: July 22, 2024 (July 22, 2024)
SidebarDemystifying Containers and Microservices
Container technology lends itself well to an architectural pattern known as microservices; however, the two are distinct concepts and should not be confused. Containers, popularized by Docker, Inc., starting in 2013, are essentially packaged applications—very broadly analogous to an .EXE. Containerized applications (more accurately, container instances) require a container runtime that bridges the container instance to the OS. Creating a containerized application is simply a matter of creating a configuration file that defines the contents and the application and executing a few command-line interface (CLI) commands to package the application and its dependencies into an image file. For more details, see the illustration “Understanding Containers.”
Microservices are an abstract software architecture pattern; a seminal article describing them was written by Martin Fowler in 2014. A microservice embodies a specific business capability, such as a shopping cart or a campaign. Microservices communicate over APIs and in doing so form applications. Microservices allow teams to develop and deploy individual areas of functionality independently of one another as long as APIs are followed. Additionally, individual microservices can scale independently of one another, potentially making systems more efficient. However, because a microservice-based application involves more “moving parts,” such applications require additional planning and can create more complexity.
Atlas Members have full access
Get access to this and thousands of other unbiased analyses, roadmaps, decision kits, infographics, reference guides, and more, all included with membership. Comprehensive access to the most in-depth and unbiased expertise for Microsoft enterprise decision-making is waiting.
Membership OptionsAlready have an account? Login Now