Using containerized IT to deliver a hybrid environment
In its 2015 FutureScape Report, IDC predicted that more than 80 percent of enterprise IT organizations would commit to hybrid cloud architectures by 2017, vastly changing enterprise IT operations. Whether or not that prediction holds true, enterprise IT organizations will still face the uncertainties of technological change predicated on cost, efficiency, and most important, digital transformation.
Transformation to cloud processes
The path to hybrid cloud solutions is full of technologies that claim to power digital transformation and hyperconvergence, while bringing economy and value to existing enterprise IT offerings. Yet in many cases, technologies such as virtualization and software-defined infrastructure have become impediments to achieving forward motion on the path to digital transformation, due to their complexity along with deployment and management overhead.
Containers: A brief history
The idea behind containerization arrived back in 1979 with Unix chroot, an operating system call that changed the root directory of a process and its sub-processes to a new location in the file system. Because this location is only visible to that process (and its sub-processes), it effectively isolates those processes.
From chroot, containerization evolved over the decades into modern containers, which offer the ability to decouple applications from an operating system. In other words, containers provide a lightweight, virtualized environment that isolates an application and its operating system dependencies into a portable, manageable runtime environment.
Containers and hyperconvergence: A marriage made in the cloud
Containers are now positioned to make a massive impact on enterprise IT. Container adoption is on an upswing and poised to challenge the stranglehold that virtualization solutions (virtual machines) currently have on the web application market. Both containers and virtual machines (VMs) abstract processes from hardware dependencies. The difference is that containers also abstract the process from its underlying operating system.
That means containers can be smaller and faster, and offer better isolation than a typical VM. Virtualization is designed to run workloads in operational environments that are isolated from the underlying hardware by an abstraction layer. That layer of abstraction allows physical servers to host multiple VMs, each of which can run an operating system, along with its associated applications.
By contrast, containers abstract the application from the operating system kernel. They isolate processes from the operating system by including only the operating system/application dependencies in the container, but still execute processes using the kernel. In other words, the kernel is still responsible for execution, but an abstraction layer isolates the process workloads from the kernel, protecting the kernel from poorly behaved code.
That's one of the most striking differences between a VM and a container. With a VM, a misbehaving application can corrupt the entire virtual machine, impacting any other processes that run on that same VM. Containerized applications only impact themselves when they misbehave, allowing the underlying kernel to continue running other containers.
What’s more, launching a VM can be a resource-intensive process, one that introduces severe latency while the VM launches and loads its OS, applications, and connectivity services. Containers spin up much quicker than VMs, simply because all of the prerequisite elements, such as the physical hardware, OS, connectivity, and so forth are already loaded and running.
Application isolation and quick spin-up make containers enormously valuable for enterprises that use cloud services, especially hybrid solutions that bridge cloud and on-premises solutions. Containers offer the following benefits:
- Small size: A container includes only the application files and its dependencies, meaning it is many factors smaller than a VM.
- Non-persistent: Containers encapsulate everything needed to run the application. However, data and other elements can be stored elsewhere, such as in a database or some other form of persistent storage.
- Portability: Containers can be easily moved from one host to another just by shifting the container files.
- Upgradability: When an application needs to be updated, a newer version of the container can be quickly deployed.
- Scale: Containers can be duplicated and redeployed to address issues of scale.
These benefits make containers a good fit for hybrid cloud deployments, where services or applications may need to be deployed both on-prem and in the cloud, while offering the portability to freely move from one environment to another.
Getting started with containers
Containers don't come into being with a wish and a prayer. One of the first prerequisites is to deploy a cloud service that provides the necessary elements to launch a container orchestration system. Numerous hosts offer preconfigured cloud environments that can readily support containers.
Containers come in many flavors, with vendors such as Docker, Microsoft, Red Hat, and many others offering their own versions of container deployment, orchestration, and management. Choosing the right container environment starts with establishing what support your cloud service provider offers. If your provider doesn't support a particular flavor of container, you'll have a hard time moving the containers you create from an on-prem host to a cloud service.
You also need to understand what OS is required to run the containerized applications. Some containers can be hosted only on particular versions of Linux, such as CentOS or RHEL, meaning those operating systems must be supported by both your internal IT and external cloud hosts.
It's also important to ensure that your applications are compatible with the container environments. For example, Windows applications will not run in containers that use the Linux kernel, and vice versa. Finally, you need to find out what technologies your IT department can support. Will deploying containers mean re-engineering existing solutions?
Much like any other technology, a successful container strategy requires appropriate planning, effective execution, and proper management. That said, the benefits of containers cannot be underestimated. That's why containers are rapidly becoming the capstone of hybrid cloud implementations as well as the foundation of convergence.
Containerized IT: Lessons for leaders
- Enterprises need to distinguish between the appropriate use cases for VMs and containers.
- Containers shouldn't be used in a vacuum; you need appropriate management tools in place.
- The ideal container platform is OS-agnostic.
This article/content was written by the individual writer identified and does not necessarily reflect the view of Hewlett Packard Enterprise Company.