A key concept in DevOps is the idea of infrastructure being viewed as pets or cattle. Where did this analogy come from, and how is it directing current trends in the cloud native ecosystem?
Pets vs. cattle
In the early days of computing, technical teams treated their infrastructure like pets. They would carefully build and maintain their servers, taking care of only a few at a time. Servers that got sick would be nursed back to health.
As teams began maintaining arrays of three or more servers, they started treating their infrastructure more like cattle. In this service model, servers are dispensable and designed for failure. They are configured often identically and not given the same loving attention as pets. They are given numbers not names. If one fails or struggles, it is replaced with impunity.
The cattle service model gained adoption alongside bare metal servers and became popular with the rise of Infrastructure as a Service (IaaS). The virtualization provided by platforms like Amazon Web Services, Google Cloud Platform, and Microsoft Azure allowed teams to program infrastructure, following a pattern called Infrastructure as Code (IaC).
The cloud soon led to new methods of virtualization. Containers (made viable in 2014 by Docker) package and deploy workloads as collections of isolated and loosely coupled microservices. Their growing popularity saw the rise of polylithic architectures.
The rise of Kubernetes
Kubernetes (open sourced by Google in 2014) soon became the de facto container orchestration system. Technical teams became proficient at deploying microservices across increasingly distributed environments. Hybrid and multi-cloud environments continue growing in popularity, as they are more scalable and resilient than legacy, monolithic architectures. They allow companies to deliver high-velocity services to a global market.
Kubernetes simplifies and automates the process of deploying containers. It is an open source container orchestration system that facilitates declarative configuration and automation. It has become the backbone of today’s highly scalable modernized application development — it leads to cloud native environments that treat infrastructure like cattle and have more velocity and efficiency than ever before.
Kubernetes has been widely adopted by companies of all types and sizes. In a 2021 Traefik Labs survey of more than 1,000 respondents, 70% used Kubernetes for business projects. Yet applications running on Kubernetes typically represent less than 50% of business-critical services. The next frontier for Kubernetes is not adoption but scaling.
Trends for 2022
The cloud native ecosystem continues to evolve. Organizations must take advantage of trends that are not new but will help them scale their Kubernetes deployments. In particular, they must accelerate their perception of infrastructure as cattle.
Instead of deploying bigger clusters, DevOps teams must deploy more clusters.
DevOps has always been about removing silos, asking development and operations teams to work together and release software in small but frequent updates. The methodology is about shaping workflows and overcoming barriers that used to inhibit test environments and releasing.
As Kubernetes becomes increasingly automated, DevOps teams become more able to deploy new releases on demand. They can do so without spending inordinate amounts of time on configuration, and they can make sure releases match those from a week ago. Automation increases the velocity of release pipelines, making it easier to scale, test new releases, and perform multiple tests at the same time.
To maximize the benefits of Kubernetes automation, DevOps teams must deepen the influence of the cattle service model on the ways they operate. They must spin clusters up and down on demand, treating them as disposable, replaceable assets. DevOps teams are asked to deploy more aggressively — instead of fixing something that breaks, replace it and deploy something new. The focus has shifted away from long-term operations and IaC to quickly developing applications that bring value to end-users.
As we progress into 2022, Kubernetes and the cloud native ecosystem will continue evolving and exaggerating trends that underscored its inception. DevOps teams will take advantage of Kubernetes automation by accentuating their adoption of the cattle service model and horizontally scaling their deployments. Doing so will lead to applications that are more scalable, resilient, accessible, and that are easily distributed across multi and hybrid cloud environments.
To learn more about how Kubernetes supports the adoption of microservices architecture, download our white paper called ‘Kubernetes for Cloud Native Application Networks.’ You will gain an understanding of how to support application deployments at scale with top-notch networking.
This is a companion discussion topic for the original entry at https://traefik.io/blog/pets-vs-cattle-the-future-of-kubernetes-in-2022/