The Travelers Guide to Reaching Infrastructure Expertise
So this week I began my journey to understanding containers, it is fair to say at the start of the week I was super confused.
However after a five-day stint of talking to my network, reading countless articles and even watching a children's video explaining Kubernetes. I now feel I have enough knowledge to hold a conversation!
So apparently containers have been around for over ten years but when Docker came on to the scene in 2013 it revolutionised the game. Containers are used to solve the problem of how to get the software to run reliably when it is being moved from one environment to another, most commonly a staging environment to production. Problems were occurring as the supporting software environment was not identical to the production environment and weird and wonderful things were happening to the application. Containers were created to solve this problem, as it packages the entire runtime environment needed to surpass any issues that may be encountered when you run the application in the new environment.
Docker was so exciting as it is a bit like a virtual machine, but rather than having to create a whole virtual operating system Docker allows the application to use the same Linux Kernel as the system that it runs on. This made Docker a vital tool in the DevOps toolbox! Unless anyone disagrees and uses open shift? 🤣
It has been said that it is impossible to discuss Docker without Kubernetes being thrown into the mix and this is where things really spice up! So Kubernetes, or K8s, is an open-source orchestration tool that is used to automate deployment, scale and manage containerised applications. I know, what a mouthful! The way I think of it is that K8s are used to make sure all the little, or large containers, get to where they need to go at the right time in easy and discoverable packages. Kuberntes is able to run as many containers as you need and it can scale without the need to increase your ops team. This means that it will never be outgrown and it is flexible so allows you to move workloads anywhere they are able to run.
Kubernetes is just one of many orchestration tools, for example, there is Mesos and Nomad but no one seems to ever use these. Upon investigation, the resounding answer I am getting for the commitment to K8s is due to it’s open-source and flexible nature, accompanied by the fact that it was made by Google and I mean who does it better?