Earlier we discussed how migration to the public cloud requires more than just a lift and shift of your VMs from your on-prem infrastructure into the cloud.
In particular, a VM running on on-prem virtualization infrastructure is an elastic slice of a server. That is, any CPU or memory resources not used by a VM is available for use by other VMs.
In contrast, a VM, or instance, in the public cloud is more like a fixed partition of a server with dedicated resources. Any CPU or other resources not used by an instance is wasted.
By dedicating resources to each instance, public cloud providers ensure good performance isolation between instances, which is required for multi-tenant environments.
Unfortunately, it also generates more waste. Companies we've talked with estimate that a simple lift and shift migration of VMs to the public cloud would cost up to ten times more than their existing on-prem infrastructure.
This can certainly happen if you take an app that used multiple VMs on a physical server and migrate it to the cloud on multiple instances where the meter is always running!
As a result, companies that need efficient use of public cloud resources, had to carefully size each instance and rewrite applications to ensure high 24x7 utilization of each instance. Alternatively, one could try to run a hypervisor inside instances to create elastic VMs as with on-prem infrastructure. This, however, creates another layer of virtualization infrastructure that requires management, and introduces an additional source of inefficiency.
The net result is that most enterprises without large development and operations teams, are unable to efficiently use public cloud resources today.
This is where containers come to the rescue!
Containers, by providing a light-weight mechanism for running multiple workloads on the same instance as well as allowing idle instances to be powered off, allows higher utilization of cloud infrastructure without herculean effort.
To be sure, moving applications from VMs to containers does require work and, today, security and isolation between containers is not as robust as for VMs. As a whole, however, containers are the perfect complement to the public cloud and will enable enterprises to realize the full value of the public cloud without building large development and operations teams.
Only time will tell how quickly containers will be adopted by enterprises, but the opportunity presented by public cloud and containers is hard to ignore.