Containerisation is all the rage in the technology industry. It plays a huge role in the deployment, maintenance and scaling of everything from websites to mobile apps. There are even technology conferences dedicated solely to containerisation where people gather and talk about it for days on end. So, what is it, and why is it so popular?
The best place to start would be the early 1950’s, in a more archaic (and maybe the original) form of containerisation. We’re all probably familiar with the large metal containers you see at shipping ports, being towed by trains, or on the back of lorries. They’re everywhere - and are a fundamental part of how your latest gadget, car, and other household goods, arrive in your country. However, in the early 1950’s there were no containers, making the process of loading a ship, unloading it, storing it, and getting it into a lorry to its final destination, slow and labour intensive; overall a very expensive process!
Cue Malcolm McLean strutting into shipping yards around the world in 1956 with his solution – Containers. One standard sized sturdy metal box which could fit on boats, trains and lorries alike. They could be put next to one another, stacked, and manoeuvred easily. If you wanted to ship something, you pack your container in one place, send it on its way, and unpack your container at its destination. This saved shipping companies, their clients, and ultimately you, the eventual consumer, vast quantities of cash. The bottlenecks of loading and unloading became a thing of the past, and soon enough there were huge ships carrying thousands of containers at a time across the world.
So how does this relate to the modern tech landscape? Everything that you use today that requires an internet connection, whether that’s a website, a mobile app or a SaaS platform, needs at least one server to operate – and usually it’s a lot more than a single server. There are hundreds of millions of servers around the world, hosting everything from Facebook to the Vidatec website.
The problem? Much like the shipping industry pre-containerisation, setting up servers is a time consuming, manual process that involves making sure that you have the right versions of various different bits of software, making sure it’s connected and configured correctly, and of course, secure. Some websites have hundreds or even thousands of servers all working in parallel, imagine how much time it would take to configure them all! And if you want to update them all with a new version of something? Forget it. Setting up and configuring servers is time consuming and expensive – the development of containerisation in the software sense has made the process a lot more streamlined and efficient.
The idea of containerisation is that you set up your container once, with all the correct versions of various bits of software, configurations and anything else you need. Then you can deploy that container to as many servers as you would like, while only having to configure each server so it can run any generic container - a much simpler task. Want to update a bit of software? You just update it once into a new container and push it out to each of the servers.
A container essentially boils down to a single file, which has its very own version of an operating system of your choice, with whatever you want installed on it. You can tell it how to start up once it reaches its destination, you can launch multiple of the same container and split the workload between them all, something which is very useful if you service gets popular. These virtual containers, much like their real-world counterparts, save companies money and developers their sanity!
Olly Namey - Junior Web Developer