The shift to scaled out computing has changed how we view servers. But what about containers — how should they be treated in a scaled out world? In this story, originally posted on the ActiveState blog, Bernard Golden discusses how we may start to think of containers in similar fashion to how we are starting to perceive servers. In all, the real story is about density and the way to manage services in scaled out, distributed enviroinments.
If you’ve spent any time at leading cloud computing conferences, you may have come across the meme “pets vs. cattle.” (Here is a lengthy slideshare presentation by Randy Bias of EMC/Cloudscaling discussing the difference between pets and cattle in a cloud computing world.) The message associated with this meme is that we should have different attitudes about traditional infrastructure versus today’s cloud infrastructure.
Traditional infrastructure is expensive and individuated — we give servers names, we lavish attention on them, and when they suffer problems we do evaluations, diagnoses, and nurse them back to health via hands-on administration. In other words, we treat them as part of the family. This is true whether the server is physical or virtual; they are long-lived and stable, and therefore deserve personal attention and emotional attachment — just like a pet.
By contrast, cloud infrastructure is treated as transitory and disposable; due to the highly erratic workloads typical of cloud applications, virtual machines come and go, with lifespans measured in hours, if not minutes. Because of the temporary nature of cloud infrastructure, it’s pointless to get attached to specific resources; therefore, cloud servers more nearly resemble cattle rather than pets. In other words, instead of getting attached to a cloud server, it’s better to view it as a disposable resource, temporarily used and then discarded. And, unlike a pet, one does not think of a steer as part of the family, nursed to keep healthy. Likewise, when a cloud server experiences problems, one does not do analysis and attempt to repair it; instead, the cloud server is terminated and another started in its place.
The point is, there’s no sentiment associated with cloud infrastructure. It’s treated as a useful resource, used as needed and discarded when no longer necessary. In case of trouble, it’s terminated and another launched in its place.
What about Containers?
This got me to thinking. If you accept the zoomorphic pets versus cattle meme for servers compared to cloud resources, what about containers? The animal that immediately sprang to my mind is the chicken, which I think is a useful entry in this comparative exercise.
Chickens grow to maturity much faster than cattle — six weeks for a chicken compared to around 24 months for cattle. They’re more efficient than cattle in terms of resource use — a chicken only takes 1.7 pounds of food to add a pound of mass, while a steer requires over three pounds.
This greater efficiency of chickens compared to cattle is exactly mirrored by containers vis a vis virtual machines. Containers launch in seconds, rather than the minutes more typical of virtual machines. Containers require far fewer compute resources in comparison to virtual machines.
So the meme is correct as far as it goes. It extends the pets versus cattle original meme. However, this is where the updated meme gets really interesting — by how neatly it reflects what I expect the future reality of containers to demonstrate.
While the faster maturity and greater resource efficiency of chickens is interesting, where they get really fascinating is in their overall numbers. While the U.S. supports around 87 million cattle each year, it has nearly 100 times as many chickens — 8 billion.
Likewise, I expect that in the future there will be perhaps 100 times as many containers in use as there are virtual machines today.
A huge driver of resource consumption is convenience — and the more convenience associated with a given good or service, the more that we consume (as the English economist William Stanley Jevons explained 150 years ago, resources that are more efficient, i.e., lower in price than previous resources, result in more consumption rather than less; this is called Jevons Paradox.)
So, we can look forward to a future of much greater numbers of containers than we’ve seen in terms of cloud servers. And that, in turn, is going to cause a massive change in IT organizations. The reason, as Hegel originally pointed out, is that at some point a quantitative change becomes a qualitative change.
The Impact of Containers for IT
Today, most IT organizations are struggling to stretch their manual processes to cover the use of cloud computing. The more erratic nature of cloud computing applications causes many more changes to previously-static environments, posing a challenge to existing processes, which are designed for long-lived resources that are changed infrequently.
But a stressed system of manual administration, barely capable of addressing an increasingly cloud-oriented IT environment, will prove completely inadequate when asked to encompass a vastly larger pool of container-based resources.
The key for IT organizations to succeed in a container-oriented world will be to transform manual processes to streamlined automation. Said another way, the change in resource type must be matched by a change in management toolchains, capable of directly delivering resources from developer right through to production, with no human touch necessary along the way.
Stackato has been designed to enable the future of applications, with full automation throughout the application lifecycle. We encourage you to download a free version of the product and get started on the future.
ActiveState is a sponsor of The New Stack.