Know your history — Containers aren’t just a flash in the pan
Welcome to our History 101 series! This week, we explore the history of containers. How did containers replace virtual machines as the technology of choice? Open your textbooks to chapter five; class is in session!
Containers are a solid mainstay of the developer toolkit. Between the rising popularity of Docker and Kubernetes, containers are impossible (and foolish) to ignore. Let’s take a look back at the past and see where it all started and how far the technology has come.
Adolescence & early years
When Docker set sail on the high seas in 2013, it seemed like containers was a new technology. On the contrary, proto-container tech has been around since 1979. Yup, that’s right – the idea of containers are old enough to rock some sweet Electric Light Orchestra vinyl and remember when Alien hit theaters. Of course, this early relative of containers was far different than what we know it as today.
Version 7 of Unix introduced the chroot system call. Chroot introduced the idea of changing the root directory for a currently running process and its children. It is the process of virtualizing a new environment in the Unix OS and separate it from the main system. (Sound familiar?) In 1982, chroot was added to the BSD (Berkeley Software Distribution).
Almost two decades later in the new millennium, FreeBSD Jails hit the scene. FreeBSD was an OS call similar in nature to chroot but built upon and improved the original concept. According to its documentation, “Jails expand upon this model by virtualizing access to the file system, the set of users, and the networking subsystem…Jails can be considered as a type of operating system-level virtualization”.
A whale of a tale
The Linux Foundation took a look at this important piece of pre-container history in their blog post “A Brief Look at the Roots of Linux Containers“. Interestingly enough, this blog includes a sample course video by a Docker Captain. It’s looking like the roots of the early chroot days are starting to connect to containerization as we know it today!
Released in 2013 by Docker Inc., Docker brought the idea of containers into the spotlight.
Today, Docker does not use chroot. It instead isolates filesystems using the Mount or mnt namespace. Containers had a powerful benefit over virtual machines: they are more lightweight and run on a single OS kernel. Containers are safe and easy to deploy, start and stop quickly, are portable and easy to scale.
It’s no wonder that many developers kicked their VMs to the curb and started singing the praises of containers.
According to their website, Docker has 50 billion container downloads, 2 million Dockerized applications in the Hub, and over 100,000 third-party projects use Docker. For a time, Docker was the biggest whale in the ocean, but then came a change in the tides.
Did you know? The Docker whale logo was created by Ricky AsamManis in a 99designs competition. What might the logo be in an alternate universe? The runner up is actually a giraffe. Can you imagine an article on Docker without a few whale puns? I whale-y can’t.
Competition & wide-spread adoption
Initially released in 2014, Kubernetes is an open-source container orchestration system. Originally created by Google, it is now under control of the Cloud Native Computing Foundation.
The annual GitHub Octoverse report shows that Kubernetes dominates. In 2017, Kubernetes soared as the top most-discussed repository with over 388,000 comments, and took second place in number of project reviews. Will the 2018 report have similar numbers?
It’s easy enough to find claims such as, “Containers can make your life easier” and “containers bring so many benefits that outweigh the complexity of the technology“. Going by these statements, the age of containers is in full swing.
According to the 2018 Container Adoption Benchmark Survey by Diamanti, “nearly half (47 percent) of IT leaders surveyed said they plan to deploy containers in a production environment, while another 12 percent say they already have”. Not only that, IT teams are devoting big budgets to containers and have plenty of use cases for them.
A shaky future?
With every big swing, comes a big drop. Right?
What’s all this buzz about ‘containers versus serverless’? Is there actually a battle for dominance or is the relationship more complicated than that? Our new issue of JAX Magazine explores this topic and how the two technologies compete and complement each other.
As for the future of containers, there is also the ever-popular discussion of “Docker versus Kubernetes” in the orchestration war. While according to the aforementioned 2018 Container Adoption Benchmark Survey, Docker is in the lead in terms of numbers, rival opinions claiming Kubernetes has won are out there.
The future of containers is debatable and speculation is constant. For now, let us take our time and acknowledge how far this technology has come and what it has done to change the way we work and play!