Cattle vs Kittens

by Greg Ferro

When you are enter a discussion about Cloud Computing with legacy IT people, you often (always) tell the story of handling IT infrastructure with the “Cattle vs Kittens”. The story highlights the difference of ITIL managed services vs Cloud Service and how cloud applications are managed.

Kittens are pets. Each cute little kitten has a name, get stroked every day, have special food and needs including “cuddles”. Without constant attention your kittens will die. Common types of “kittens” are MSSQL databases, Sharepoint, Legacy apps and all Unix systems. Kitten class computing is expensive, stressful and time consuming.

The sure sign of that you have a kitten-class application or server ? Everyone gets upset when a kitten dies.

Cattle Computing

The other type of application is “Cattle”. Cattle live outside in a field, mostly look after themselves for days on end, have numbers instead of names and farmers manage cattle in herds. There may are hundreds or even thousands of instances in the “herd” that exist somewhere in the data centre but no one much cares about them. If they sicken or die, someone will get to them eventually. Probably with a big tractor and zero ceremony.

Cattle-class applications are largely enabled by virtualization and hypervisors. Applications are available that exist on a liquid pool of system resources where the program execution runs ‘somewhere’ on ‘some servers’ from a pool of possible servers. Cattle mangaement is about making sure that there enough cattle in the paddock to deliver the necessary return – just like most companies sales revenue. It’s a number game.

You might not be familiar with this today but your private cloud future means that you will be. Private clouds enable “cattle class computing” through orchestration software like OpenStack or vCloud Director. These cloud platforms isolate the application from the phsyical infrastructure – all of it – storage, network, compute, backup, security …. everything. Today a VM sustains an application and the VM can move. A server dies ? So what, the VM is already somewhere else.
Just in case you don’t know, VMware vCenter/ESX or KVM is not cloud. They are just dumb hypervisor managers that provide server virtualization. Think: hypervisors are just one cog in an entire gearbox of cloud functions. Scale up your thinking.

The concept of “cattle computing” is further extended by PaaS platforms which run code instead of applications – look at products from Pivotal and ActiveState Stackato to understand how these systems work. And for the most exciting versions of cattle computing you should take a look at Docker or CoreOS. Prepare your mind ……

PaaS means that your program code runs …. somewhere. Anywhere. Who cares where ? Or how many ? Write your code to spawn mulitple compute instances when needed ? Right ?

If you can take time to comprehend the difference between how you manage a “herd of cattle” when compared with ” litter of kittens” then you are well on the way to understanding how to Platform as a Service works in an Enterprise and Service Providers.

In a cloud platform, no one hears the kittens dying.