When people discuss containers, they tend to compare them to “legacy” or “traditional” solutions without defining what those words actually mean. Let’s take a look at how containers compare to alternative technologies and what makes containers different.
In general, words such as “legacy” and “traditional” within the context of containers refer to infrastructure in which applications are executed directly on virtual machines or on bare-metal servers.
That’s not to say, however, that if you are using containers, you are not using virtual machines or bare-metal servers. If you use containers, you still have to have a host server or servers somewhere. Those servers will either be virtual machines or bare-metal servers.
The difference between containerized infrastructure and legacy or traditional infrastructure is that in containerized infrastructure, a container environment sits between the host server (whether it’s virtual or bare-metal) and the application. A container runtime abstracts your containerized applications away from the host server, providing more flexibility and simplifying configuration.
Containers’ Advantages over Legacy Infrastructure
As a result, containerized environments offer several advantages compared to legacy or traditional infrastructure. They include:
- Containerized applications start faster. This is because you don’t have to boot an entire server to start a containerized application. The server is already running; you just need to start a container to initialize your application. Containers can start in a few seconds, whereas it usually takes minutes to boot a virtual or bare-metal server and then start an application on it.
- Containerized applications are “denser.” You can comfortably fit more applications onto a single bare-metal server when using containers than you could if you used virtual machines. That’s because containers don’t require you to virtualize a complete operating system. You only need to run the container environment. As a result, you get higher application density.
- Containerized applications are more scalable. The ability to start containers faster than legacy infrastructure leads to more scalability. If you need more instances of your application, you can start them quickly by spinning up new containers.
- Container environments have fewer configuration variables. A Docker environment will look the same no matter which type of host operating system it runs on, or what the underlying hardware is that supports it. This means there are few configuration variables to worry about when setting up and managing a container environment.
When you hear containers compared to legacy or traditional infrastructure, these are the differences that are being discussed.
Again, it’s important to understand that containers are actually hosted using legacy infrastructure composed of virtual machines or bare-metal servers. But by adding a container environment to the mix, you simplify many of the challenges associated with running applications directly on legacy infrastructure.
In other words, containers don’t get rid of your legacy infrastructure entirely. They just make it easier to use.