Pets Vs. Cattle Workloads in the Cloud

Recently I heard the analogy “Pets Vs. Cattle” and it was used to explain that the future of IT workloads in the cloud, with organisations running 100s or 1,000s of servers … Wait… What? Didn’t we just go through the process of centralising and consolidating our IT environments? Why would I want to run 100s or 1,000s of servers again?

The current state

Most of the companies that I speak too are running virtual machines on centralised infrastructure. These virtual machines are based on the notion of physical servers and these companies have consolidated the servers and virtualised them, reduce costs and infrastructure requirements. These servers are called Pets! Pets are given loving names, like Garfield (I have seen servers called planets, colours or Muppet characters :/ ). They are unique, lovingly hand-raised, and cared for. You scale them up by making them bigger. When they get sick, you nurse them back to health by attending to them or calling in a professional to bring them back to upright health.

With the expansion of cloud, we see new concepts such as shared-nothing architecture, Docker, containerisation, stateless file systems, configuration automation and repeatability.

Serverless Cloud Infrastructure

These technologies allow organisations to architect their environment as cattle. Cattle have functional identification numbers or tags like vm0015 or dev01. Cattle are almost identical to each other. They are smaller workers and scale by creating many more of them. When one gets sick, you terminate it and a new one will be deployed or created automatically.

The cattle concept will seem very foreign to people in the virtual/physical server mindset. It took me a while to get my head around it. However, I am starting to see organisations begin to architect their environments with worker virtual machines or containerised instances that are dynamic, being destroyed and created throughout the day, pulling their configuration from repositories, scripts or a pre-defined set of parameters. Alternatively, stateless servers pulling configuration or data, on boot up, from a service such as Amazon Web Services S3 or RDS offering.

Being this agile and dynamic allows for cost optimisation of cloud services. Think about running a hundred small instances of a workload during peak times and five during off-peak times; all configured to scale automatically. The cost savings and uptime will be substantial.

How do you identify what you’re dealing with?

It is easy to determine whether you are dealing with pets or cattle. Ask yourself this: what would happen if several of your servers went offline right now? If such a thing would go unnoticed by your end-users, then you are dealing with cattle. If it would cause a major disruption for your end-users, you have pets.

Amazon Web Services and Azure are constantly developing and bringing out new features enabling and improving this concept. I look forward to the mainstream uptake of the concept and organisation move to the cloud.

If you’re interested in hearing more about practical applications of this type of technology in your environment, contact us today!