Pets or cattle farming has become a famous analogy for modern server operations in an age of cloud and extreme demands on uptime and response times. It is all about the new approach to business development, IT development and operations.
In the past, the servers were located in the server room, and they were cared for as if they were one's precious pets. Pets are given unique names, and they require a lot of time and attention. They should preferably not get sick, and when it does happen, the focus is solely on getting them healthy and well again, thus, a resource-demanding task.
Today we work with cloud computing, and if you need to develop your business, it requires uptime and response time. It might be complex to meet the requirements of each server if they are cared for like a pet. If the systems need to work 24/7, you need to rethink the methods as cattle farming, managed on a large scale as a part of controlled agriculture.
No patience on the internet
When you visit a webshop today, it needs to respond around the clock, and the load time should not be more than one second before the visitor chooses another place to shop. It can only be achieved by thinking of IT operations as cattle farming. If a server goes down in the heat of battle, it must be automatically replaced by another so your service can continue unhindered.
The concept was invented for virtual servers but is relevant in a world of PaaS services and containers. Cattle farming is fundamental to the design and thinking behind running services on the Kubernetes clusters.
High standards for the developers
As mentioned above, a server park needs to be operated as cattle farming; thus, one can switch out one server with another automatically and in a short time.
The key to successful service is the groundwork needs to be in order, which put demands on the developers. The systems need to be built for it. Therefore, the development and operations have to work closely together from the beginning of the development process.
DevOps is not a fashion concept, but a necessary development method, where development and operation are intertwined to gain the best conditions for efficient 'cattle farming.'
If the developers work according to fixed models, spend a lot of time on the preparations and get the system built optimally from the start, it is easier to change the server setup on an ongoing basis. That way, you always have the necessary capacity and the right hosting for the purpose.
From a technical perspective it is all about making the application layer 'stateless.' All information about the state or tasks to be processed is placed in a separate data layer. This data layer is based on cattle farming, either as databases with several instances or - even better - as PaaS data services.
Automated and prepared for errors
It is no longer sufficient to have a server that spins as it is supposed to or has a redundant system that needs care. On the contrary, the serversmust be prepared for future error scenarios requiring them to shut down, and be replaced. All of this should take place without manual and individual controls – rather automatically and fully monitored.
We call it a cloud-native approach because it is born out of modern cloud thinking. Not only do we think about virtualization from the beginning but also concepts like PaaS and containerization.
In this perspective, the mindset behind pets vs. cattle farming might be an inspiration for you who are planning the transition to the cloud and work to modernize the business or seeks a closer integration between developers and operation people.
Feel free to contact us for a personal presentation of the thoughts behind and advice on how to plan an effective strategy.