It is said that IT is now undergoing its third wave in computing. If you are not familiar with the earlier waves, then here’s a short backgrounder. The first wave was when the PC became inexpensive along with x86 servers. Instead of mainframes, these relatively affordable machines made computers an everyday thing. The second wave was when virtualization hit it big and companies made use of virtual machines to deploy and manage their workloads.
Virtualization made cloud computing possible. The virtual machines became the building blocks of cloud computing services such as infrastructure-as-a-service offerings. It is virtualization that made Amazon EC2, Google Compute Engine, and Azure VMs possible, making it easier for businesses to get the compute, networking and other resources they need for their business.
Now, the third wave is here, signaled by the arrival of containers. Containers are expected to replace virtual machines in the cloud computing landscape and are seen to take the role of being the building blocks that VMs used to have.
Containers used to live inside a virtual machine. They were designed as a workload that you could run using a virtual machine you have. Over time, however, containers have evolved and could now replace VMs, and it is changing the way that IaaS cloud computing services are being delivered to users.
Say goodbye to hypervisors?
A hypervisor is what makes VM run. It is a software layer that was first tasked to run different operating systems using the same hardware. Cloud computing needs hypervisor to run the operating systems as well as to isolate the workloads of different companies using the same hardware. What’s more, hypervisors were programmable and this helped the rise of automation, making self-service offerings possible in the cloud.
With the development of containerization technology, hypervisors are now relegated to the backgrounds. Containers are responsible for much of the heavy lifting, so hypervisors are now nothing more than a software layer that bridges the containers and the hardware.
Containers also allow for better security and isolation. Even top hypervisor vendors such as Microsoft and VMWare are taking containers very seriously, developing a virtualization layer that works optimally with containers. This has made way for Intel Clear Containers, Hyper-V Containers and vSphere Integrated Containers, and other containers that run on a highly optimized virtualization layer.
While the hypervisor will not be out of the scene soon, it is being relegated to a less important role. Perhaps, if we were being generous, we could say that what we are seeing now is companies that bring together containers and hypervisors to give end users a scalable and secure infrastructure.
We are also seeing the rise of containerized operating systems. A prime example of this is CoreOS, which ships container Linux, an open source software. There are also operating systems now that are specially optimized for containers. Red Hat has its Atomic Hosts, while VMWare has PhotonOS, Microsoft has its Windows Nano Server, while Canonical has Ubuntu Core.
Hyperconverged infrastructure appliances
Hyperconverged infrastructure appliances will be relying on containers for their compute layers, while also delivering storage and networking. For instance, Diamanti uses containers to deliver compute resources along with other resources needed by users.
It would not be a surprise if other cloud computing services providers would follow suit, offering users with private cloud offerings and management tools that are container-based. For instance, Microsoft and VMWare are both going to offer infrastructure management tools with container technology. Meanwhile, Azure Stack and vCenter will push container technology along with virtual machines.
Also on the public cloud, New York based startup Hyper is the first company to offer container-native infrastructure. It will use Docker to help companies deploy their applications using cloud computing.
But wait…
Containers, however, are not perfect. It cannot be used for all workloads. There are certain types of workloads that work well using containers and there are workloads that are better without them.
As such, it cannot fully replace virtual machines. For instance, containers are perfect for microsevice applications, but it is a bad idea for monolithic programs. Containers will just bog down monolithic programs.
Containers are also dependent on a lot of things. It needs to run using a physical operating system, and as such, it shared the OS kernel with different binaries and libraries. Put simply, a Linux container cannot run on Windows Server.
Containers also provide weaker isolation than hypervisors.
What’s more, containers are more prone for sprawl. Because it is possible to duplicate a container easily and quickly, you could end up using a big chunk of computing resources. That could mean hefty cloud computing costs if you scale up a containerized workload, and forget to scale it down afterwards.
Also, because containerization technology is rather new, you would find it difficult to find the tools that you need to manage and monitor containers. This is going to get better in time, just like as it was with the virtual machines, and we are seeing an influx of container management tools. But for now, these tools are largely absent.
Containers may not be able to replace hypervisors and virtual machines soon, but as it is, they are just perfect for the Web and microservices. Cloud-native applications are also prime candidates for containerization.
On top of that, you can enjoy the benefits that come with containerization technology, such as full control of the entire execution environment from the application server to the VM arguments, to the JRE. You also exert less effort to maintain application environments, and you are guaranteed to have a consistent environment on multiple servers. Plus, updating an application and its environment becomes easier.
If you are considering containerization along with other cloud computing technology, then you should call Four Cornerstone now at (817) 377-1144. We have a team of experts that can help you evaluate cloud computing technology โ even the most recent ones. Alternatively, you can fill out our short contact form and we can get in touch with you right away.
Photo courtesy of Linux Screenshots.