Understanding key concepts of container architecture
VMs are great when you want minimal changes to operate your applications and software in the cloud, but they also have drawbacks. With the maximum control you get from having a full VM—of whatever size you happened to provision—you are free to use as many (or as few) of the VM’s resources as you can. However, many organizations have found that their fleet of VMs is plagued by low utilization even when best practices in workload isolation or the single responsibility principle (SRP) are followed.
Inversely, when maximum utilization is the objective, organizations load up a single VM with so many disparate services and components that each VM—while highly utilized—becomes a bit of a quagmire to manage and maintain. The VM will have a myriad of dependency conflicts, with resource contention cropping up between the horde of independent but cohabitating processes within the same VM.
This dilemma...