La comparativa de mascotas vs ganado es un concepto que se ha usado para tratar DevOps y el modelo de servicio. Bill Baker realizó esta analogía por primera vez, “Pets versus Cattles” (mascotas contra ganado), para hacer referencia al tema de scaling up vs scaling out en la presentación de la plataforma Scaling SQL Server 2012.
Más tarde se volvió a introducir el concepto en la presentación de Evolución del Centro de Datos del CERN por Gavin McCance.
A través de esta comparación se demuestra la evolución de las estrategias de arquitectura cloud, cómo de una escala vertical se pasa hacia un modelo más horizontal.
Pets, servidores tratados como mascotas
Antes los servidores eran tratados como mascotas, como seres indispensables o únicos que nunca podían fallar. Por lo general, se construían, administraban y «alimentaban a mano» de manera manual.
Con el modelo de servidores tratados como mascotas, cada servidor recibía un nombre propio como si se tratara de un perro o un gato. Los servidores eran únicos, cuidados y criados de forma personalizada, cuando se ponían enfermos, se llevaban al veterinario para realizar un chequeo y se ponían todas las medidas para que éstos se curaran. En cuanto al crecimiento, podían aumentar su tamaño y cuando no estaban disponibles, fuese por la razón que fuese, todos lo notaban.
Los ejemplos de servidores tratados como mascotas incluyen mainframes, servidores solitarios, balanceadores de carga y firewalls, sistemas de bases de datos, etc.
Cattles, servidores tratados como ganado
En el modelo de servicio de ganado, los servidores no tienen nombres propios, los servidores se identifican a través de números como por ejemplo web-01, web-02, web-03, web-04 y web-05, igual que al ganado, que se designa a través de etiquetas marcadas en su piel o puestas en sus orejas. Cada servidor es prácticamente idéntico al otro y cuando uno enferma, se reemplaza por otro. La escalabilidad es posible creando más y cuando uno no está disponible, nadie lo percibe.
Los servidores que se tratan como ganado están construidos utilizando herramientas automatizadas y diseñados para combatir fallos. Por lo general, en caso de fallos no se requiere intervención humana, ya que la arquitectura es capaz de «enrutar alrededor de los fallos», reiniciar los servidores con errores o replicar los datos a través de distintas estrategias.
Los servidores tratados como ganado permiten más libertad, si un servicio no funciona simplemente se retira y se reemplaza por otro.
Los ejemplos incluyen matrices de servidores web, almacenes de datos con múltiples maestros, como los clústers de base de datos, varios racks de equipos agrupados en clústers, y todo aquello que tenga balanceo de carga y multi-master.
Para elegir un modelo de cloud computing u otro es interesante que el proveedor de la nube comprenda qué tipo de servicio debe estar disponible para los consumidores de la nube. De esta forma, la elección de la herramienta se vuelve natural.