Grupos de instancias

Un grupo de instancias es un conjunto de instancias de máquinas virtuales (VM) que puedes administrar como una sola entidad.

Compute Engine ofrece dos tipos de grupos de instancias de VM, administrados y no administrados:

  • Los grupos de instancias administrados (MIG) te permiten operar apps en varias VM idénticas. Puedes hacer que tus cargas de trabajo sean escalables y tengan alta disponibilidad gracias a los servicios de MIG automatizados, que incluyen el ajuste de escala automático, la reparación automática, la implementación regional (en varias zonas) y la actualización automática.
  • Los grupos de instancias no administrados te permiten aplicar el balanceo de cargas en una flota de VM administradas por ti.

Grupos de instancias administrados (MIG)

Los grupos de instancias administrados (MIG) son adecuados para los siguientes casos:

  • Cargas de trabajo de entrega sin estado, como un frontend de sitio web
  • Cargas de trabajo sin estado de procesamiento por lotes, de alto rendimiento o de alta capacidad de procesamiento (como el procesamiento de imágenes de una cola)
  • Aplicaciones con estado, como bases de datos, aplicaciones heredadas y procesamientos por lotes de larga duración con puntos de control

Cada instancia administrada en un MIG se crea a partir de una plantilla de instancias.

Para obtener información sobre cómo crear un MIG, consulta Crea grupos de instancias administrados.

Ventajas

Los MIG ofrecen las siguientes ventajas:

  • Alta disponibilidad.
    • Mantienen las instancias de VM en ejecución. Si una VM del grupo se detiene, falla o se borra por una acción que no sea un comando de administración del grupo de instancias (por ejemplo, una reducción intencional de la escala), el MIG vuelve a crearla de manera automática según la especificación de la instancia original (mismo nombre de VM y misma plantilla) para que la VM pueda reanudar su trabajo.
    • Reparación automática basada en la aplicación. También puedes configurar una política de reparación automática que use una verificación de estado basada en la aplicación, la cual verifica de forma periódica que la app responda como se espera en todas las instancias del MIG. Si una app no responde en una VM, esa VM se vuelve a crear de forma automática. Comprobar que una app responda implica mayor precisión que verificar si una VM está en funcionamiento.
    • Cobertura regional (en varias zonas). Los MIG regionales te permiten distribuir la carga de la app en varias zonas. Esta replicación protege contra fallas zonales. Si eso sucede, tu app puede seguir entregando el tráfico de las instancias que se ejecutan en las zonas restantes disponibles en la misma región.
    • Balanceo de cargas. Los MIG trabajan con servicios de balanceo de cargas para distribuir el tráfico en todas las instancias del grupo.
  • Escalabilidad. Cuando tus apps requieren recursos de procesamiento adicionales, los MIG con ajuste de escala automático pueden aumentar de forma automática la cantidad de instancias en el grupo para satisfacer la demanda. Si la demanda disminuye, los MIG con ajuste de escala automático pueden reducirse para disminuir tus costos.
  • Actualizaciones automatizadas. El actualizador automático de MIG te permite implementar versiones nuevas de software en las instancias del MIG de forma segura y admite una variedad flexible de situaciones de lanzamiento, como las actualizaciones canary y progresivas. Puedes controlar la velocidad y el alcance de la implementación, además del nivel de interrupción del servicio.
  • Compatibilidad con cargas de trabajo con estado. Puedes usar MIG para compilar implementaciones con alta disponibilidad y automatizar la operación de aplicaciones con configuración o datos con estado, como bases de datos, servidores DNS, aplicaciones monolíticas heredadas o procesamientos por lotes de larga duración con puntos de control. Los MIG con estado conservan el estado único de cada instancia (nombre de la instancia, discos persistentes conectados y metadatos) en el reinicio, la recreación, la reparación automática y la actualización de la máquina.
Usa un grupo de instancias administrado a fin de compilar implementaciones con alta disponibilidad para cargas de trabajo por lotes, de entregas sin estado o de aplicaciones con estado.
Descripción general de las funciones y cargas de trabajo comunes de los MIG

Reparación automática

Los grupos de instancias administrados conservan la alta disponibilidad de las aplicaciones porque mantienen las instancias disponibles de forma proactiva, es decir, en estado RUNNING. Un MIG volverá a crear de forma automática las instancias que no tengan el estado RUNNING. Sin embargo, es posible que depender solo del estado de la VM no sea suficiente. Quizás necesites volver a crear instancias cuando una aplicación se congela, falla o se queda sin memoria.

La reparación automática basada en aplicaciones mejora la disponibilidad de estas, ya que depende de una señal de verificación de estado que detecta problemas específicos de la aplicación, como fallas o sobrecargas. Si una verificación de estado determina que una aplicación falló en una VM, el grupo vuelve a crear esa instancia de VM de forma automática.

Verificaciones de estado

Las verificaciones de estado que se usan con el fin de supervisar los MIG son similares a las que se usan para el balanceo de cargas, con algunas diferencias de comportamiento. Las verificaciones de estado del balanceo de cargas contribuyen a alejar el tráfico de las instancias que no responden y a dirigirlo hacia las instancias en buen estado. Estas verificaciones no hacen que Compute Engine vuelva a crear las instancias. Por otro lado, las verificaciones de estado del grupo de instancias administrado indican de manera proactiva que se borren y vuelvan a crear las instancias cuyo estado es UNHEALTHY.

En la mayoría de las situaciones, debes usar verificaciones de estado distintas para el balanceo de cargas y la reparación automática. Las verificaciones de estado para el balanceo de cargas pueden y deben ser más agresivas, ya que determinan si una instancia recibe tráfico de usuarios. Dado que es posible que los clientes confíen en tus servicios, debes detectar las instancias que no responden con rapidez para poder redireccionar el tráfico en caso de ser necesario. En cambio, la verificación de estado para la reparación automática hace que los MIG reemplacen de forma proactiva las instancias que fallan, por lo que esta verificación debe ser más conservadora que una del balanceo de cargas.

Para obtener más información, consulta Configura la verificación de estado y la reparación automática para los MIG.

Grupos regionales o zonales

Puedes crear dos tipos de MIG:

  • Un MIG zonal, que implementa instancias en una sola zona
  • Un MIG regional, que implementa instancias en varias zonas de la misma región

Ambos tipos ofrecen todas las ventajas de los MIG. Los MIG regionales aportan una mayor disponibilidad, ya que distribuyen la carga de aplicaciones en varias zonas. De esta manera, se protege la carga de trabajo contra las fallas zonales, y los MIG regionales ofrecen más capacidad, con un máximo de 2,000 instancias por grupo regional.

Balanceo de cargas

Con el balanceo de cargas de Google Cloud, se pueden usar grupos de instancias para entregar tráfico. Según el tipo de balanceador de cargas que elijas, puedes agregar grupos de instancias a un grupo de destino o a un servicio de backend.

Para obtener más información, consulta Agrega un grupo de instancias a un balanceador de cargas.

Ajuste de escala automático

Los MIG admiten el ajuste de escala automático, que agrega o quita instancias de forma dinámica del MIG en respuesta a aumentos o disminuciones en la carga. Debes activar el ajuste de escala automático y configurar una política para este a fin de especificar cómo deseas que se escale el grupo. Las políticas de ajuste de escala automático incluyen el escalamiento basado en el uso de CPU, la capacidad de balanceo de cargas, las métricas de Cloud Monitoring o, para los MIG zonales, una carga de trabajo basada en las colas, como Pub/Sub.

Para obtener más información, consulta Aplica el ajuste de escala automático en grupos de instancias.

Actualización automática

Puedes implementar versiones nuevas de software de manera sencilla y segura en las instancias de un MIG. El lanzamiento de una actualización se realiza de forma automática según tus especificaciones: puedes controlar la velocidad y el alcance de este para minimizar las interrupciones de la aplicación. De forma opcional, puedes realizar lanzamientos parciales que permitan llevar a cabo pruebas canary.

Consulta Actualiza los MIG.

Compatibilidad con cargas de trabajo con estado

Puedes compilar implementaciones con alta disponibilidad de cargas de trabajo con estado en VM mediante grupos de instancias administrados con estado (MIG con estado). Las cargas de trabajo con estado incluyen aplicaciones que tienen configuración o datos con estado, como bases de datos, aplicaciones monolíticas heredadas y procesamientos por lotes de larga duración con puntos de control.

Puedes mejorar el tiempo de actividad y la resiliencia de estas aplicaciones con la reparación automática, las actualizaciones controladas y las implementaciones multizona, mientras conservas el estado único de cada instancia, incluidos los nombres de instancias personalizables, los discos persistentes y los metadatos.

Para obtener más información, consulta MIG con estado.

Grupos de instancias interrumpibles

Para las cargas de trabajo en las que los costos mínimos son más importantes que la velocidad de ejecución, puedes reducir los costos mediante instancias de VM interrumpibles en el grupo de instancias. Las instancias interrumpibles duran hasta 24 horas y se interrumpen con facilidad: la aplicación tiene 30 segundos para salir de manera correcta. Las instancias interrumpibles se pueden borrar en cualquier momento, pero la reparación automática las recuperará cuando la capacidad interrumpible vuelva a estar disponible.

Contenedores

Puedes simplificar la implementación de aplicaciones mediante la implementación de contenedores en instancias de grupos de instancias administrados. Cuando especificas una imagen de contenedor en una plantilla de instancias y, luego, usas esa plantilla para crear un grupo de instancias administrado, las VM se crean con un SO optimizado para contenedores que incluye Docker, y el contenedor se inicia de forma automática en las VM del grupo. Consulta Implementa contenedores en VM y MIG.

Red y subred

Cuando creas un grupo de instancias administrado, debes hacer referencia a una plantilla de instancias existente. La plantilla de instancias define la subred y la red de VPC que usan las instancias miembro. En las redes de VPC en modo automático, puedes omitir la subred; esto indica a Google Cloud que debe seleccionar la subred creada de forma automática en la región especificada en la plantilla. Si omites una red de VPC, Google Cloud intentará usar la red de VPC llamada default.

Para obtener más información, consulta Redes y subredes.

Demostración de las funciones de los MIG

La siguiente presentación de video de 45 minutos, grabada en Google Cloud NEXT '18, contiene demostraciones y prácticas recomendadas para configurar, ejecutar y actualizar implementaciones escalables y con alta disponibilidad mediante los MIG de Compute Engine.

En el video, se muestra cómo implementar un contenedor en un MIG, configurar una política de reparación automática, usar un grupo regional para la protección contra fallas zonales, configurar el ajuste de escala automático a fin de que cumpla con objetivos de CPU y demandas basadas en colas, y administrar actualizaciones progresivas y canary.

Grupos de instancias no administrados

Los grupos de instancias no administrados pueden contener instancias heterogéneas que puedes agregar y quitar del grupo de forma arbitraria. Los grupos de instancias no administrados no ofrecen ajuste de escala automático, reparación automática, compatibilidad con actualizaciones progresivas o con varias zonas ni el uso de plantillas de instancias, y no son una buena opción para implementar cargas de trabajo escalables y con alta disponibilidad. Usa los grupos de instancias no administrados si necesitas aplicar balanceo de cargas a grupos de instancias heterogéneas o si necesitas administrar las instancias por tu cuenta.

Si debes crear grupos de instancias no administrados, consulta Grupos de instancias no administrados.

Próximos pasos