International Commerce Already Uses Containers
In this lesson, you will see how the unloading and loading cost of ships were reduced by the use of containers and their similarity to Docker containers.
Sure, you may wonder why I make such a comparison. You may even be trying to evaluate how crazy I am or wondering whether to return this course. Wonder no more; I’m not crazy. International commerce faced this same delivery problem; we are trying to deliver software as fluently as possible, and commerce needs to deliver goods as fluently as possible.
In the old times, it took days to load a ship with goods:
The ship remained docked at the pier for a few days while each good was being loaded onto it. Goods had varying sizes and handling precautions, and ships had storage of varying types and sizes. That’s what made loading and unloading a slow process. Slow and costly; it required many people to do it, plus the immobilization of the ship and goods has a cost.
A solution was found: containers. The idea is straightforward; use boxes of a standard size and fill them with whatever you want. You now only need to handle standardized boxes no matter what they contain. Problem solved; the ship can now be tailored to host many containers in a way that allows for fast (un)loading thanks to standardized tools like cranes:
In fact, the whole transport chain (trains, trucks, etc.) can be tailored to manage containers efficiently:
Believe it or not, Docker containers are very similar. When you create an image, you stuff your software into a container image. When a machine runs that image, a container is created. Container images and containers can be managed in a standardized way, which allows for standard solutions during a containerized software’s lifecycle:
- common build chain
- common image storage
- common way to deploy and scale-up
- common hosting of running containers
- common control and monitoring of running containers
- common ways to update running containers to a new version
The most important part is, that whatever the software inside the container is, it can be handled in a standardized way. Isn’t that a DevOps’ dream?
Let’s wrap up this chapter with a quiz to test what you have learned so far.