When we think of pets, we think of beloved creatures such as cats and dogs. We view each pet as an individual with their own unique personality and take great care of them throughout their lives. On the other hand, cattle are viewed as a collective herd because each cow is effectively the same as any other. Sometimes the lines are blurred, but you get the idea. What do pets and cattle have to do with IT infrastructure in the data center? Everything, actually.
Believe it or not, pets and cattle can be a useful analogy for enterprise servers. The earliest use of the pets-and-cattle analogy is in this presentation by Randy Bias, CTO of CloudScaling, where he attributes Bill Baker, a Distinguished Engineer at Microsoft. Mr. Baker described pet servers (virtual machines or VMs) as workloads that are named, have unique characteristics and require care throughout their lifecycle. Cattle VMs are those that are numbered, deployed on-demand as needed and dynamically removed when not performing well or are no longer needed.
Pet and cattle workloads generate different requirements on the IT environment and can point you to very different deployment models. Managing VMs as pets has been the modus operandi since the beginning of time. Pet workloads are deployed into traditional IT infrastructure—virtualized or bare-metal server clusters residing in a data center behind the corporate firewall. Managing VMs as cattle is a new concept, gaining sharper focus as cloud deployment becomes more mainstream. Cattle workloads are typically deployed in a cloud environment—in a private cloud behind the corporate firewall or in an outsourced, external public cloud.
Should you treat your VMs as pets or cattle? That depends on the (guest) applications, business objectives, costs and risk.
Enterprise applications can be classified as either traditional applications or cloud-native applications. I’ve created a simple table to compare the general characteristics of traditional and cloud-native applications:
|Characteristics||Traditional Enterprise Applications||Cloud-Native Enterprise Applications|
|Numbers of connected users or gadgets||Relatively well understood and generally well contained||Highly variable, volatile and numerous|
Keep each instance healthy and alive from cradle to grave
|When an instance becomes ill, deploy another one|
|Application architecture||Vertically scalable relying on more powerful or resized systems for greater performance||Horizontally scalable, dynamically adding and subtracting instances as needed|
|Failure handling||Reliant on infrastructure (software and physical) for availability||Self-reliant, dynamically provisioning instances as needed|
|Interface||Class and methods||RESTful|
|Examples||ERP applications, long-running batch analytics, transactional databases||Custom-developed applications supporting born-on-the-web digital business models and new client engagement models, real-time analytics|
Traditional workloads are generally large applications running in single, large VMs or on stand-alone systems. They’re architected to rely on software and hardware infrastructure for meeting availability and performance SLAs. To meet growing business demand, the application is provided with access to more computing resources. Virtualizing these applications makes them more mobile and portable, and opens up new cost-effective disaster recovery options. But you usually don’t want to move these applications if it can be avoided in order to minimize the risk of meeting SLAs.
Cloud-native workloads employ a different architecture and place different requirements on IT infrastructure. These applications run in smaller VMs or containers, and rely less on IT infrastructure for performance and availability. In fact, to meet growing business demand, more instances of the application are created. When demand subsides, un-needed instances are removed. These workloads require IT infrastructure that enables volatile, horizontal elasticity and extreme mobility. Naturally, cloud-native application requirements make them excellent candidates for cattle VMs (or containers) and cloud deployment models.
Should you migrate pet workloads from a traditional cluster to a private or public cloud environment and manage them like cattle workloads? Sure, if it makes strategic and economic sense. Workload migration paths to cloud involve either directly porting the workload (lift and shift) or recoding (refactoring) the workload. Lift and shift will provide the fastest migration path and the lowest upfront investment. If the workload does not exploit cloud-native functionality however, there may be little to no benefit to running it in a cloud. Completely re-architecting and recoding the workload to exploit cloud-native functionality will generate the most benefits, but will also incur the largest upfront investment and can take time to migrate. When the application in question has successor or predecessor dependencies, you’ll need to carefully consider those as well to fully assess migration complexity, cost and risk. To learn more about building cloud-native applications (a.k.a. web applications, web-scale applications and software as a service applications), see The Twelve Factor App.
Like all projects, potentially migrating workloads to cloud should be evaluated in relation to other value-add projects the firm could undertake, such as providing internal DevOps teams with on-demand, self-service access to computing environments to build new applications. This is a common use case for organizations who seek to redefine the customer experience through new digital engagement models and to learn new insights into buyer behavior. These applications are being architected and managed as small, loosely coupled cattle VMs and containers. This way individual workloads can be developed and updated in parallel, which helps to increase speed of innovation. In this scenario, the better business outcome may be achieved by leaving traditional pet workloads in their traditional clusters and deploying a private cloud to enable rapid business innovation and expansion.
Gartner refers to the above scenario—simultaneously running traditional IT (for pet workloads) and cloud (for cattle workloads)—as bimodal IT. Gartner states the traditional environment emphasizes safety and accuracy, and the cloud environment emphasizes agility and speed.
Still wondering if you have pet or cattle workloads? Are you working through private, public or hybrid cloud challenges? Can you benefit from unified service management and automation across all of your workload environments? Contact Lenovo Enterprise Services to see how we can help transform your data center into an engine for business growth.