A Recruiters Guide to Containerization
I was recently asked to explain what containerization is by our (Elekta) Global Talent Acquisition team. It was a great conversation with an amazing team, who are keen to understand the needs of recruiting into a technical team. After the presentation I thought why not share "A Recruiters Guide to Containerization".
Before we start on what a container is we need to understand the problem that they are trying to solve. Before we understand the problem, we must understand a couple of terms.
Resources
For the purposes of this article let's assume that a computer only has 3 resources.
Memory
This is the short-term memory used to store volatile information. If memory becomes corrupt then a reboot can often fix the issue, therefore technical people often say "have you tried to turn it off and back on again" as all information is cleared and re-loaded.
When you have a conversation with someone you store what they have said in your short-term memory as you process what to say back. Once you have responded you clear the last sentence from your mind ready for the next. This is the same with computers.
Central Processing Unit (CPU)
The CPU is used to run calculation, the bigger the number the more it can calculate in a second.
In the conversation analogy above the CPU is what works out what you will say next, the processing part of your brain.
Hard Disk Drive
Also called Physical Storage is the long-term memory of the computer, it stores information in Files and Folder (directories). These files can be anything from images to documents to programs and more.
Kernel
No, the Kernel is not the same as the Colonel. One makes spicy chicken the other allocates out the resources of the machine.
Think of the Kernel as a Stock Controller, they manage who can have access to what resource. It keeps track of the resources and who is currently using them.
Without the Kernel as a gatekeeper, computers wouldn't be able to do anything.
Operating System
The operating system sits on top of the Kernel common operating systems are Windows, Linux and iOS.
Recommended by LinkedIn
The Problem
Back in the late 90s the interwebs were in their infancy, as the world wide web grew so did the demand for servers to run all the web sites and applications. The problem was that building a server took a lot of time and cost a lot of money. On top of this when you have thousands of websites all running on the same physical machine if one crashes it could cause the others to fail too. How would you feel if your website crashed because a competitor's site had an error?
Another issue was wasted resources, imagine if you had 8 parts of memory but your server only used 3, well there are 5 parts that are not being used and are wasted. This is the same for disk and CPU.
Virtualization
In 2003 VMWare released VMware Virtual Center one of the first modern Hypervisor managers. Hypervisors are software that allow “Virtual” servers to run on a physical server's hardware.
While virtualization solved the problem of many servers, and it increased the speed with which a deployment could be done. One powerful physical server could run many smaller virtual servers. This resolved some of the issue with wasted resources as more of the resources of a physical server could be used. However virtual machines still have a full installation of the operating system, and this has a minimum number of resources reserved.
Hypervisor
Virtual servers run on something called a Hypervisor, this is a piece of software that interacts between the Kernel on the virtual machine and the Kernel on the physical machine.
Containerization
Containerization is not the same as virtualization. Where virtualization is a complete duplicate of an operating system running in a simulated environment, containerization is a collection of files that run on the underlying Kernel.
One advantage is that a new container can come online within milliseconds instead of the minute's virtualization can take.
A Physical server can run many more containers using the same resources than it can with virtual servers. This is because containers use resources straight from the Kernel and not through a hypervisor.
Containers are made up of many images, with each image being layered on top of the previous one.
The animated image on the left is a demonstration of layering. The oval transforms into a woman by layering in lips, a nose, eyes and hair. then using the same lips and nose it transforms into a man. The next transformation is from a person into an Egg in a cup, all three images use the same oval or base image.
If this was virtualization then there would have to be three ovals, two sets of lips and two noses and one egg cup.
Docker an example of containerization and the current market leader, but there are other options out there.
Great session yesterday Guy thank you - or should i now call you our Tech Guy !!!!
Im so happy to see this engagement and collaboration across Elekta! And of course, so so proud of all the Tech TA-stars ⭐
Thank you Oscar Persson for arranging our Tech Tuesdays where we´ve shared many laughs and frustrations and got to meet Guy. And thank you Guy Symonds for explaining this to us. Can´t wait for the next "recruiters guide"😀!
Thanks, Guy Symonds for a great session yesterday.
Thanks Guy Symonds for your time and expertise!! It was awesome!