The rising interest and investment in so-called cloud native data technologies are driving many to build, manage and scale applications in a more robust yet efficient manner than ever before. Increasingly, more attention is turning to containers, which is software that bundles various code. This packaged approach makes it easier to deploy applications across different computing environments, including different private and public clouds. However, the inherent simplicity of these new technologies are forcing IT teams to uplevel their strategies for managing more and more applications and data using increasingly complex hybrid multicloud environments.
According to IDC, by 2025 there will be 750 million new logic applications, more than the past 40 years of computing, all generating large amounts of data across different clouds. Nearly all global IT decision makers who responded to the 2023 Enteprise Cloud Index report stated they’re using Kubernetes for their containerzied applications. This open source container orchestration system can make it easier to roll out new applications, but it’s alsodriving many organizations to manage their containersized and virtualized applications across different IT platforms.
“Now IT teams need to find a way to both enable their developers with self-service data services, while also ensuring governance and security policies are applied uniformerly,” said Thomas Cornely, senior vice president of product managment at Nutanix. This growing need led his company to create Nutanix Data Services for Kubernetes, which gives IT teams control over cloud-native applications and data at scale.
Key Takeaways:
- Containers empower cloud native development via efficient resource management capabilities.
- Virtual machines and containers are both evolving and finding roles alongside each other in application development.
- Kubernetes is the predominant container orchestration platform, with individual cloud providers offering their own specialized Kubernetes engines.
- One way containers and VMs work in tandem is through containerization within individual virtual machines.
Containerization Defined
Container technology is a software innovation that dates back to 1979 but became popular in 2013, about a decade after data center virtualization became widely adopted. ReportLinker expects the market for the global application container to reach $12 billion by 2028, making containerization a significant aspect in an IT world increasingly powered by data center virtualization.
Whereas virtualization improves efficiency of infrastructure management through the implementation of virtual machines, containerization speeds up application development by packaging software elements in such a way that they can flexibly run anywhere.
Containerization and virtualization are similar in functionality but can serve different purposes in the IT environment. It is important for decision-makers to understand how the progression of containers in the industry will directly benefit development, even on an infrastructure that already utilizes VMs.
Containers give developers the ability to create predictable environments in which to create, run, and move applications separately from other critical applications. Different hardware can power these “cloud-native” apps, including on-premises data centers or public cloud services.
The global application container market was estimated at $698 million in 2016 and is expected to reach $8.20 billion by 2025, according to Allied Market Research. Containers, along with other intertwining innovations, are defining the world of “cloud native.”
“Cloud native is a bit of a misnomer because these applications run anywhere, not just in the public cloud,” according to Greg Muscarella, former vice president of products at Nutanix, where he helps bring the company’s cloud-native portfolio to customers.
By definition, cloud native technologies enable loosely coupled systems that are resilient, manageable and observable, according to the Cloud Native Computing Foundation. Combined with robust automation, they allow engineers to make high-impact changes frequently and predictably with minimal toil.
Benefits of Containerization
Organizations that choose to adopt containerization technology in the landscape of data center virtualization can seize several key benefits. These advantages of deploying containers in modern development ecosystems include:
- Fewer system resources needed to maintain containers
- A “use only what you need” solution to resource allocation, with the option to easily add more as demand arises
- Consistency in operation no matter where containers are deployed
- High efficiency in deployment, patching, and scaling
Cloud native and containerization are nearly synonymous in the minds of many IT professionals because of the ease with which containers can run in the public cloud. Containers can even move across clouds with little or no effect on the operator’s experience.
Transitioning to a cloud native development strategy using containers directly benefits DevOps practices by improving cost-efficiency for processes such as maintenance, backup, and resource utilization. Cloud native applications are also capable of strong security protocols such as two-factor authentication and other zero trust measures.
Other benefits of containerization-fueled cloud native development include adaptability, scalability, and automation. The nature of containers themselves also makes it possible for cloud-native development to be free from propriety, allowing developers to work in any cloud on their cloud native platform without worrying about vendor lock-in.
Evolving with VMs and Containers
Virtual machines are managed by a hypervisor, which abstracts and isolates the VMs and their programs from the underlying server hardware. This allows for more use out of physical resources, simpler maintenance and operations, and reduced costs, according to Nutanix.
IT organizations adopted VMs to manage sprawl and even reduce the hardware footprint in their corporate data centers. This brought great efficiencies and sped up server provisioning, the ability to scale up computing resources when needed.
For over a decade, a growing number of developers have turned to containers as a foundation for building new and updating existing applications because containers provide a portable platform.
Containers are now prevalent among large internet companies that need to develop applications once and run them globally on any number of mobile, cloud, and traditional platforms. Muscarella says many IT teams are exploring where to run containers on single-tenant bare metal servers or VMs.
“You get secure isolation between VMs on the same physical machine,” Muscarella explains. This is because each VM uses its own OS while virtualizing the hardware platform.
“So one VM can’t attack another,” he says. “With containers, which share an OS, Container X could see Container Y unless you put some safeguards in place.”
The same issue arises when it comes to the reach of a container OS failure. A given application might require anywhere from a handful of containers, which are pieces of a program or individual microservices, to as many as 500, according to Muscarella.
If 100 containers shared a single OS kernel and the OS were to fail, all 100 containers would be compromised. However, if a VM supporting a few containers were compromised, a much smaller number would be affected; other VMs running different containers would remain operational.
Muscarella estimates, however, that there’s a 10% to 15% performance tax with VMs, given their many software dependencies, which can get costly when running them in a public cloud infrastructure.
“In the cloud, you get more useful capacity out of each of your servers with containers and you get more portability from server to server,” he says.
The Role of Kubernetes in Container Orchestration
Though the process of packaging software as containers might start small, it is likely you will have countless containers to manage very soon after adopting containerization. Therefore, container orchestration methods are a practical necessity.
The Kubernetes platform is the predominant container orchestration solution for deploying, networking, scaling, and managing containers across entire IT infrastructures. Kubernetes itself is an open-source platform, meaning that certain cloud providers may have their own Kubernetes management solutions configured specifically for their environments.
Containerization in the cloud, powered by Kubernetes, is an ideal path to true cloud native development. The best cloud platform is the one that allows you to extend Kubernetes functionality from the on-premises data center to the public cloud, as well as deploy Kubernetes clusters to any cloud in the multicloud environment in as few clicks as possible.
The Nutanix Kubernetes Engine is the simple and production-ready solution for cloud native enterprises operating in the Nutanix environment. Deployment of Kubernetes clusters to any cloud is simple on NKE, and it is possible through the guarantee of open APIs that provide true freedom from vendor lock-in.
Containerized Apps on VMs
Updating container-based applications is a lean process, according to Muscarella.
“Rather than the traditional method of creating multiple versions of an app, which can quickly fall out of sync, you simply kill and replace individual containers as needed,” he says. “This approach avoids configuration drift.”
“Drift,” he explains, refers to discrepancies between primary and secondary software infrastructure configurations that can cause disaster recovery processes to fail.
A few initiatives are bringing VMs and containers closer together. For example, hypervisors supporting container APIs have emerged that allow a container to run inside a VM to simplify management.
A VM’s dedicated OS can support a container engine, such as the well-known Docker container development platform, and run an array of containers within the VM instance, in effect collapsing the two infrastructures.
Operating a container within a VM also brings the VM’s process isolation and security benefits to the containers and limits the vulnerability scope if a problem occurs, Muscarella says.
Muscarella explains that the Prism management system for the Nutanix hyperconverged data center environments enables IT to see both VMs and clusters of Kubernetes-managed containers from a single console. Kubernetes is the widely adopted open-source orchestration system for automating the deployment, scaling and management of containerized applications.
Also, the Cloud Native Computing Foundation’s KubeVirt open sandbox technology provides a unified VM-container platform for development teams that wish to run Kubernetes and containers but also must support VMs. Their developers can build, modify, and deploy applications using a common, shared environment. They can also containerize VMs that are candidates to work in the cloud-native model.
"Containers will become de facto,” Muscarella states. “IT ops typically purchase apps as software that comes as an installer that you set up as a VM. Less common, but becoming more so, is distributing software as a container package that you just run anywhere."
Progressive Container Solutions in the Virtualization Era
There is not a competition between containers and virtual machines. Rather, the reality of containerization progressing to the same level of ubiquitousness as virtualization only stands to benefit enterprises that are capable of harnessing both for a cloud native future.
The Nutanix Cloud Platform is an environment that simplifies the complexity of managing data and apps that are all over the place. With more and more of these apps using containers to fully harness the capabilities of the cloud, NKE on NCP is an elegant solution for orchestrating these containers.
An accessible and easy-to-use control plane in the form of Nutanix Prism tops off the user interface with effortless setup, powerful self-service capabilities, and a high degree of visibility of all VMs and Kubernetes clusters in the entire multicloud ecosystem. Regardless of how complex the underlying infrastructure may be, it remains possible to monitor whole networks from one simplified console.
Cloud computing exists on the basis of virtualization as a means of creating many virtual instances of infrastructure from a single hardware device. To say that containerization is progressing toward the same level of importance as virtualization in the IT space is a bold statement, but one that rings true as Kubernetes finds itself in more cloud native development practices.
This is an updated version of the original article published on February 23, 2021.
Learn more about cloud native solutions at Nutanix as well as specific strategies regarding Kubernetes in the hybrid cloud.
Joanie Wexler is a contributing writer and editor with more than 20 years’ experience covering IT and computer networking technologies.
© 2023 Nutanix, Inc. All rights reserved. For additional legal information, please go here.