The Container Revolution
Container technology is currently in the process of transforming the way the IT industry does business. Industry pioneers have been using containers for years, and the technology is now becoming widespread. Tools like Docker and Kubernetes have nearly achieved buzzword status, a testament to the growing interest in container technologies on the part of IT professionals. But what are containers? What do they actually do? More to the point, what business value do they provide? I’d like to address these questions, especially for those who may be intrigued by all the buzz surrounding containers but want to have a better understanding of what they really are.
What are Containers?
Containers are simply a way to package software within a standardized environment. They are a little bit like virtual machines in that they simulate an operating system, providing the software with all of the necessary components and configuration that it needs in order to run. Unlike virtual machines, containers do this is in a very lightweight fashion. They don’t include a full, internal copy of the operating system like virtual machines do. Instead, they include only a few components and share the main components of the OS with the host machine they are running on. This makes them small, lightweight, and quick to start up.
A Metaphor for Containers
Now that we’ve gotten a rough definition of containers out of the way, let’s try a metaphor. Software ultimately has to run on some sort of machine. For web-based services like websites and online stores, this traditionally means running on a server. For the sake of a metaphor, let’s compare that to a family moving into a house. The family is the software, and they live in the house, which is the server. A house is a fairly permanent dwelling. It includes its own plumbing system, climate control, electrical systems, etc. If the family wants to move to a different house, this is a fairly involved process. They have to pack up all of their furniture and belongings, haul it to the new house, and unpack it there.
If a family living in a house is like software running on a server, then what would containers look like within this metaphor? Containers are a bit more like the family checking in to a hotel room. They don’t need their own plumbing system, electrical systems, etc. These are all built into the hotel building and shared among all of the rooms. Furthermore, the family doesn’t need to bring all of their belongings and furniture, just a few bags of luggage. The process of moving into a hotel room takes a very short time compared to the process of moving into a house.
Containers technology is a lot more like a hotel than a house. It provides a place for your software to live, but the process of moving your software in is fast and lightweight, without a lot of baggage. Different pieces of software can be moved in and out of the hotel quickly and efficiently.
In my opinion, the greatest benefit of all of this can be summed up in one word: automatability. These days, companies are relying more and more on automation to achieve better business outcomes. Those who are still relying on manual processes simply won’t be able to match up to the uptime, stability, and performance of competitors who are automating. The comparative speed and low-baggage flexibility of containers make them easier to automate than virtual machines, and far easier to automate than traditional bare-metal servers. There are plenty of other ways in which containers can provide business value, but I think automatability is the one that stands to have the greatest impact.
This has been a very brief overview of containers and the business value that they provide. If you want to learn more, I’ve released a new course that covers the basics of containers and their potential business value from a largely non-technical perspective: Beginner’s Guide to Containers and Orchestration. Check it out!