Containers must be hot because non tech people are asking me about containers. A container is a self contained unit of software that operates independently of the platform it’s on. This means developers can write or modify code in a container without worrying about the operating system, hardware or network outside their container. This is a big deal if you understand what a pain in the ass it is to customize code for infinitely varied environments.
Containers are having a moment
The reason I get asked about containers is that after years of open source obscurity, containers were made accessible to mortal programmers by Docker. Google and others expanded that effort. Today containers are the darlings of software trade shows.
How did we get here? First there was the Internet, with clusters of servers kicking out web pages and cat videos. Then came virtualization, which could put 10x more applications on each server, saving millions. Then came cloud computing, which eliminated the capital cost of servers altogether. And now here comes the container era, which juices the economics of virtualization 100x and speeds software development 10x.
Containers can chop software and hardware costs by a factor of 1,000. That’s a big deal because the world spends $350 billion on software and $3.5 trillion on IT. It’s also an opportunity to accelerate software development by 10x, helping developers reach new markets and win more customers. This is the stuff that lets companies become the next Amazon. The revenue opportunity is whatever value you see in Amazon displacing bookstores, Apple displacing record stores or Facebook displacing television and newspapers.
What’s so great about containers?
- There’s no lag time. Containers can be launched in a 20th of a second. Virtual machines, on the other hand, must load a bulky operating system prior to launch.
- Less waste. Average utilization of cloud servers ranges between 7% and 20%. Why pay for the other 80% to 93%? Utilization is diminished further by cloud sprawl. People turn on servers and forget to turn them off. Containers can increase utilization to 50% and eliminate cloud sprawl.
- Massive scale: Google launches a billion containers a day to support Google search. The search giant developed Kubernetes to manage the containers. Kubernetes lets IT shops run big applications in multiple containers across many computers without needing to know all the ins and outs of container cluster management.
- Automation: Developers don’t have to worry about where to deploy their containers. The system knows what resources are available in every machine under its command, and will launch new workloads wherever there is room. It’s like how a good bagboy can sort your groceries and pack each bag tightly, and safely, despite the different shapes of the items.
Cloud computing has been a remarkably positive force for transforming IT, and now it looks like containers will be a force to change the cloud for the better.