ra2 studio - Fotolia
It is important to review and recognize patterns to avoid making past mistakes -- and technology is no exception.
"Virtualization may reduce the number of physical servers that have to be managed, but the number of operating systems remains the same, or it may even grow, given the ease at which new systems can be instantiated," wrote Tony Iams, now a managing VP at Gartner, on SearchDataCenter over one decade ago. Tony addressed the difference between virtualization and consolidation then. Virtualization reigned supreme in data centers for years, but, with the emergence of virtualization containers, we will see a return to consolidation.
Virtualization technology evolves
In addition to changing data centers around the world, virtualization changed over the last 10 years. When Tony considered server consolidation in virtualized data centers in 2005, there were severe limits on the amount of resources, such as CPU, RAM, disk space and network interfaces, that hypervisors could deliver to a VM. Physical servers also had far fewer resources.
Moore's law has held true and engineers have made 10 years of improvements to both server hardware and hypervisor software. Astronomical amounts of resources are available, especially for data center teams that can afford the biggest servers. Hypervisors can deliver huge VMs that are many times the size of previous generations of physical servers. Almost any workloads that run on x86 servers can run in a VM with a bit of careful design.
Many organizations adopted virtualization as their default x86 platform and realized immediate capital savings. Many also saw huge operational benefits, as well as benefits through automation and the introduction of private cloud. A key feature of virtualization is the ability to use the same application software and operating system (OS) you used before virtualization. There is no need to develop applications specifically for virtualization -- everything just works.
Containers rekindle the virtualization vs. consolidation debate
Organizations can adopt virtualization just as quickly as they can replace old servers with new ones. However, there are some challenges. For example, when you have 50 Windows VMs running on one physical server, you create a lot of duplication of effort. You have 50 VMs loading the same kernel and storing the same files on 50 virtual disks, and you have 50 copies of the Windows OS to patch and maintain. And it isn't just Windows; 50 copies of Linux also need maintenance and consume duplicate resources.
Large IT organizations have found that virtualization leads to massive VM sprawl, and automation can't completely eliminate VM management costs. Server consolidation reduces the number of OS copies to maintain. It can also reduce the cost of running applications, or allow more applications to run at the same cost.
Consolidation without virtualization is more difficult, but potentially more efficient. That is still the case with container-based server consolidation. Consolidation puts multiple applications on one OS, or multiple instances of the same application on one OS. The trick is to isolate these applications and instances from one another -- and this is where containers come in. Virtualization containers provide isolation between container instances without requiring a distinct OS to contain each instance. A single physical machine could run hundreds of container instances, with all these containers sharing one operating system.
Virtualization containers are an efficient way to consolidate applications onto a single server. Automation tools allow IT teams to create, manage and destroy thousands of identical container instances. This orchestration allows containers to be an alternative to VMs for more applications, which are more easily deployed with containers now than they were 10 years ago.
The challenge with containerization is that it requires developers to rearchitect or rewrite applications. We will not see Oracle or SQL databases in containers anytime soon. At least, not in any way that is suitable for production. These applications will remain in virtual machines or on physical server resources. We will see the rise of applications designed from the start to run in containers. These applications will follow the patterns of Web applications, where containers are already commonplace.
Over time, the tools and practices for good container development and operation in enterprise environments will become clear. Application development takes time. This revolution may take 10 years to see adoption in as many organizations as server virtualization.
Virtualization has become the defacto standard for deploying x86-based workloads. The agility and flexibility of virtualization containers has enabled a whole wave of IT change. Now containers are on the verge of another, possibly slower wave of innovation in the data center. Consolidation may again be the primary driver in IT infrastructure. But there is always a next wave to follow the current wave.
Take a look at unikernels as a different way to achieve consolidation
Learn the difference between VMs and containers
Find out the efficiency advantages of container virtualization