Computers have been a key component driving business for decades but, despite significant technological evolution, the basic concepts haven’t changed. There is a hardware layer. On top of that there is BIOS/Firmware/Operating System (OS) layer and finally there is the application layer. The application layer is where the work gets done and all of or IT resources are fundamentally driven by getting that work done, quickly, securely and reliably. Those basic concepts and layers remain the same regardless of implementation.
The application layer is the reason for computers. The hardware and OS is all about running the applications, quickly and securely. Computer evolution, over the years, has been all about faster, more secure applications that take maximum advantage of the underlying hardware. Applications are abstracted from the hardware by the OS/BIOS/FW. The OS is the application’s primary interface to the hardware and thus to the capabilities of the system.
Virtualization is the ability to run multiple OS’s or OS instances on one hardware platform. This allows us to maximize hardware utilization. There are also significant management advantages to Virtual Machines, such as; deployment, provisioning, orchestration and backup/recovery.
Each Virtual Machine (VM) has significant overhead. When using a VM as our application platform, we’re spinning up an entire VM and OS. The primary goals, for running our application layer, are that it be fast and secure. The question is, is there a more efficient way to do that? The answer is containers.
With containers, instead of spinning up an entire OS we only spin up a secure container, a secure environment for running your application. It’s less than a full OS but more than an application. It’s an application “container”, providing a safe and secure environment for your application. It has nearly all of the advantages of a virtual machine but with much lower overhead.
In today’s dynamic IT environment containers provide a nearly perfect solution, the maximum utility for the least amount of overhead. Containers are customized for the application. The application, with all of its requirements; input/output, system calls, etc. is cataloged and documented. A container, specific to those exact requirements, is then created. Like VM’s, the container can be saved, duplicated and/or started or stopped based on the needs of the environment. Multiple containers can be run on a single platform (VM), with each container providing a safe and secure environment.
In today’s dynamic, provisioned, orchestrated and portable IT world it’s important to provide a suitable environment – capable, secure, reliable and light weight. Containers provide that. Virtual Machines have their place just as bare metal has their place. Likewise containers have their place and I feel that place is in the mainstream of IT deployments, a logical evolution to today’s dynamic IT environment, providing advanced capabilities with the minimum amount of overhead.