Are containers truly ready for production, or do they remain better suited as a DevOps platform? This is a question I hear asked on a regular basis when companies are considering a cloud deployment.
The general answer to this question is yes: Containers are indeed ready for production. However, the conditions need to be right. (See Microsoft Azure Catches Up With Container Networking.)
Cloud service providers have been in a frenzy to position themselves as having the most robust container services available to enterprise customers. Additionally, technology giants are pouring millions into container development services and acquiring container-focused startups at breakneck speed. This leaves little doubt that the industry feels that the time is nearing where enterprise decision-makers are going to start thinking about containers as the true successor to virtual machines. (See HPE Looks to Fill Containers With DevOps Services.)
Despite all this, it's important to understand that containers aren't yet the virtual machine killer that many make them out to be. (See Oracle Acquires Container Specialist Wercker.)
To get a handle on what containers can and can't do, we're going to explore what those conditions are to help you gauge whether a container architecture is appropriate, or if you're still better off sticking with hypervisors.Consider containers
The primary battle cry for containers lies in the ability to significantly reduce cloud computing resources. Because multiple containers can be independently operated under a single operating system, there are potential cost savings to be made. This can be accomplished through lowering the overall cloud footprint, including the compute, memory and storage capabilities that are required to run applications and manage storage.
However, much as I cautioned enterprise customers to be weary of the supposed cost savings of cloud computing, I maintain that same caution when discussing containers. Despite the efficiencies, service providers are going to make their profit one way or another. Regardless of the potential for a small cost savings early on, don't count on containers being a great way to save money in the long term.
Instead, container technologies should be considered for their advancements in IT operations. Perks such as the ability to provide consistent operating environments to ease application upgrades should be high on the list.
Additionally, the portability and share-ability of containers blows away anything that virtual machine architectures can provide. Also, don't forget the spin-up/down of containers that happens in seconds as opposed to minutes with hypervisors.
If you step back and look at the true advantages of containers -- and what environments would benefit from them most -- advantages are gained in enterprises that require continuous integration (CI) on a large scale. And with agile programming quickly becoming the new normal, it's no wonder why there is such an interest in container platforms.
However, beyond the gains seen when using containers in conjunction with CI-based applications, some drawbacks remain today when compared to VM environments.Why VMs matter
For one, containers add yet another layer of abstraction to the mix. Because of this, identifying the root cause of complex problems can be more difficult to achieve.
Another issue resides in the fact that enterprise-level container management tools are still in their infancy and they lag behind management of virtual machines. While this gap is rapidly closing, you still should keep it in mind. You must also factor in the level of training your IT operations staff has when managing containers. It's likely that your staff has far greater comfort level in managing hypervisors over containers.
Cloud Skills: What's Hot?
The final differentiating point between the operational management of production virtual machines and containers is in the fact that containers restrict the OS type and version that can be run.
While popular container platforms such as Docker support most of the popular operating systems today, you are still limited to what is supported in regard to the host operating system. Virtual machines, on the other hand, will run whatever OS you throw at it. This is a deal breaker for companies that must support applications running on legacy operating systems.
Choosing between containers and virtual machines isn't such an easy task. I will say that container technologies certainly have the potential to disrupt virtual machines relatively soon. But for now, the best strategy is to weigh whether you can take advantages of the true benefits that containers provide today. Otherwise, you might be better off sticking with virtual machines until containers can truly meet and exceed the deployment and operational features of our trusty hypervisors.Related posts:
- Dell, HPE, Cisco Top Cloud Infrastructure Market – Analysts
- Microsoft Buying Deis to Boost Containers & Kubernetes
- Docker Wants You to Customize the Ecosystem