Pets vs Cattle Concept’ is a bizarre analogical term that we use in the technical world to teach the history of Cloud Computing. This terminology was first introduced as a meme but it is now utilised as a model to explain the concept of cloud computing. In traditional computing, servers took weeks for provision and minutes to start up. Back then, it was fashionable to boast about how long one can keep the servers running without failure. It was due to hardware being expensive and the only way to lower our costs was to pack more than necessary applications onto a server. Traditional Computing is referred to as the Pets Concept and Cloud Computing is the Cattle Concept. Nowadays, we can understand that this change has been critical to success in the Cloud, DevOps. Thus, helping to deliver new value to enterprises making use of Cloud Computing.

Pet Theory with Traditional Computing Infrastructure:

In the earlier days, before knowing about the “cloud”, companies look after the “enterprise computing” model of system administration. When saying this, the enterprise computing system is GUI driven, ticket based, reserved, scale-up, smart hardware-based, proprietary and siloed. The scenario of the traditional system of administration is based around the notion of physical machines. To add a new machine to a cluster, we manually have to purchase it up front, install necessary packages, configure it in our own offices, and drive it to the colocation centre to install it, test them and so on. This could take a few weeks or months to setup costing more time, energy and effort. Thus, traditional computing can be analogized as ‘keeping a pet’ where everything from maintenance, etc will be hands-on for the company.

Also, in the old-fashioned enterprise computing infrastructure, servers were affectionately given names. Each server was acquired on a proprietary way and configured by a hand. Since each server are configured on a manual basis, each of them is taken care like a homely pet. Suddenly, if any one of the servers went down or a disaster stuck then it’s the sole responsibility of an individual to configured and fix the issue to bring it back to the working state by driving back out to the colocation data centre and recreating them from the very scratch. When they are not available, everyone notices.  So, what we can acknowledge is that in a traditionally driven administration, servers are unique, precious, and treated, well, like a pet. Thus, in the analogy, if you view a server (or a pair of servers) as indispensable, it is a pet. Examples of pet servers include mainframes, solitary servers, load balancers and firewalls and so on.

Cattle Theory with History of Cloud Computing:

However, times have changed. With the advent of cloud computing, configuration and deployment are automated, the hardware is virtualized, there is no deal with physical hardware and each server is dispensable. Also, with the container technologies, such as Docker, we can reduce the surrounding operating system to a minimum so that we can start an isolated process in seconds at most. In the same token, in this typically new cloud-based infrastructure, scaling can be horizontal, adding and removing servers or containers can be done at our own will, and we pay for only what we use. Also, by using the container orchestration frameworks, such as Kubernetes, we can introduce or dispose of containers rapidly to scale workloads up and down. These containers or servers are treated more like a herd of cattle. Thus, a cloud pioneer and instigator of “pet vs cattle cloud” meme, Randy Bias has said we should now be treating servers as cattle instead of treating them as a pet. According to him, if one of the servers starts having an issue, there is nothing to do other than just getting rid of it and spinning up a brand new one on its place. Also, one need not worry about the backups, data dumps, scheduled downtime, or tedious manual configuration which generally comes up as red flags.

Likewise in a cattle service model, the servers are given identification numbers like web-01, web-02, web-03, web-04 and web-05, much the same way cattle are given tagged to their ear. Each server is almost identical and homogenous to each other, 100% automated, built on a shared nothing architecture and designed to fail. We scale these things by creating more of them and when one is not available, nobody notices. In fact, when a cloud server experiences a problem, one doesn’t do analysis and attempt to repair it; instead, the cloud server is terminated, and another is started in its place. Example of cattle servers includes web server arrays, no-SQL clusters, queuing cluster, caching reverse proxy cluster, multi-master datastores, Hadoop clusters, big-data cluster solutions and so on. Cassandra, Kafka and MongoDB are the cattle-architected data store systems. We can assume that failures can and happen anytime. However, in the cloud infrastructure, every server’s and every component’s failure can occur without an impact.

In conclusion, with the changed history of cloud computing, there is less dependency on physical servers. With that, businesses can focus on other pending issues like how to deliver end value to customers. Even in Nepal’s context, companies can benefit from cloud computing as maintaining physical servers can be expensive. Especially for companies who do not have an in-house team of IT experts. If you have plans to move to the cloud, you will require the services of an experienced guide who can help you work through those details. You can contact us for we have a team of specialists who can migrate your business to cloud computing.

Image Courtesy: