The advent of containers has solved many problems for organizations that are managing microservice architectures. Containers allow services to be bundled as a self-contained unit, and the software and its dependencies can be built as a single artifact and then shipped into any environment to be run or scheduled. Instead of relying on complicated configuration-management solutions to manage small changes to production systems, containers support the idea of immutable infrastructure; once the infrastructure is built, it does not have to be upgraded or maintained. Instead, you just build new infrastructure and throw away the old.
Containers also allow organizations to optimize their use of storage and compute resources. Because software can be built as containers, multiple applications can be running on a single virtual machine or piece of hardware, each unaware...