Do Containers spell the end of the era of VM? Start your container journey the Hexaware way
In our last post, we learned that though containers are new, they have got a lot of traction and enterprises are actively considering their usage. With that in context, there is an interesting debate emerging around whether this is an end of Virtual Machines.
We think that such concerns are based on the guess that any new technology will automatically supersede an old one. But this is not always the best assumption to make as not every new form of innovation is the cause of the demise of that which came before it. We are pretty sure this won’t be the case for VMs at least for next 5 years. The main reasons are both technical and business related. Let’s have a quick look at the reasons:
- Since containers share the same OS kernel, the isolation between them is weak. Thus, a host level OS breach will affect all the containers running in that host. On the contrary, a VM provides H/W and OS level isolation and hence is more secure
- As of now, containers are not capable of supporting all edge cases (for example – to mount network file systems or to load kernel modules in order to support hardware encryption etc.)
- Another issue is containers are tied to a specific operating system whereas each virtual machine contains its own guest operating system. This allows Linux and Windows workloads to run side-by-side on the same server/ Cloud
- Virtual Machine as a technology is highly developed, very mature and is successful in running the most critical business workloads
- Also, virtualization software vendors have developed management systems to deal with hundreds or thousands of VMs. These systems are designed to suit existing operations of enterprise data center. Softwares like VMware vCenter & Microsoft’s System Center are very popular among enterprise IT. Containers technology is yet to reach the stage of such a comprehensive solution
- Enterprises have made huge investments over years in terms of time and money in putting VM-based infrastructure in place. Most of the mission-critical workloads are supported by and have been running successfully under VM based virtualization.
Because of the technical gaps discussed above, business risks and strong industry & member alliance support, we believe that containers are less likely to replace virtual machines in the near future. But they will be used in pragmatic and hybrid ways as described below:
- Enterprises may containerize new apps and services to take full advantage of this new technology, especially when an app/component is small and there is a need to run more on less. But they may prefer keeping existing static, monolithic and stateful applications on virtual machines for now to save time and resources.
- Some enterprises may view VMs and containers as technologies complementary to each other rather than competing ones. That’s because containers are capable of running in virtual machines to increase isolation and security. Also, hardware virtualization makes it easy to manage infrastructure like servers, networks and storage which is also required to support containers. In such scenarios, applications can be grouped together; each in its container, either by purpose or type, and then these containers will be layered into a VM. This can potentially bring down the number of VMs by a factor of five or more.
Big organizations like Google, Netflix, LinkedIn etc. are all using containers for certain workloads. They have also developed their own solutions to overcome challenges associated with containers’ security and management. Having said that, many enterprises are still trying to understand the ecosystem, figuring out how to use, manage and monitor containers, unable to decide on whether to build or buy container-based development platforms or study the landscape of available storage and security solutions. Below survey report from RightScale (State of the Cloud Report 2016) throws some light on what enterprises are doing with containers
What move enterprises ultimately take is up to them but it is quite clear that containers are the future. Our recommendation would be to initiate thinking around how to put containerization on your play list and start experimenting with it if not done so already. There are many vendors offering this technology. You can pick one depending upon your skills and organization goals, with some additional tips for quick adoption.
- Get educated around container technology and identify potential opportunity areas for your business/IT
- Evaluate technology and select a vendor suitable in line with your enterprise technology roadmap
- Start using the selected container technology for your dev and testing environment
- Illustrate DevTest container business case/success story within enterprise
- Move your success to production. Select right applications for containerization. To start with, it is recommended to put your non-critical app into production.
- Build on your success story and lessons learnt. You can extend this to your Cloud deployment, especially when using CaaS/ PaaS
- Define and create strategies around usage of VM and containers within your organization
- Define end state along with roadmap and transitions.
Now that you have got a good hold on Containers, why not try it right away?
Author Bio:- Kailash Oza is an Enterprise Architect leading Microsoft Competency Development within Hexaware. He is specialized in Technology trends Analysis, planning technology adoption, technology evangelization and architecting solutions using Microsoft tools and technologies.