Grupos de instancias gestionados con estado


Puedes crear implementaciones de alta disponibilidad de cargas de trabajo con estado en instancias de VM mediante grupos de instancias gestionadas (MIGs) con estado. Las cargas de trabajo con reconocimiento del estado incluyen aplicaciones con datos o configuraciones con reconocimiento del estado, como bases de datos, aplicaciones monolíticas antiguas y cálculos por lotes de larga duración con puntos de control.

Con los grupos de instancias gestionados con reconocimiento del estado, puedes mejorar el tiempo de actividad y la resiliencia de estas aplicaciones con reconocimiento del estado mediante la reparación automática (recuperación automática de cargas de trabajo fallidas), los despliegues multizona y las actualizaciones continuas automatizadas.

Un grupo de instancias gestionado con reconocimiento del estado conserva el estado único de cada instancia (incluidos el nombre de la instancia, los discos persistentes vinculados, las direcciones IP y los metadatos) al reiniciar, recrear, reparar automáticamente o actualizar la VM.

En esta página se describe cuándo usar los MIGs con reconocimiento del estado y se ofrece una descripción general de su funcionamiento. Para obtener más información, consulta Cómo funcionan los MIGs con reconocimiento del estado.

Para saber cómo configurar un MIG con reconocimiento del estado, consulta Configurar grupos de instancias gestionados con reconocimiento del estado.

Diferencias entre las cargas de trabajo con reconocimiento del estado y las cargas de trabajo sin reconocimiento del estado

Puedes usar grupos de instancias gestionados para admitir cargas de trabajo con y sin reconocimiento del estado. La diferencia principal entre las cargas de trabajo con estado y sin estado es que las cargas de trabajo con estado conservan el estado de las máquinas virtuales individuales (por ejemplo, un fragmento de base de datos o la configuración de una aplicación) en los discos de la máquina virtual, mientras que las cargas de trabajo sin estado, como un frontend web, no conservan ningún estado en las máquinas virtuales individuales.

Las máquinas virtuales con cargas de trabajo con estado se tratan como maquinaria hecha a medida: te preocupas por la identidad (nombre), la dirección IP, los metadatos y los datos de cada máquina. No puedes escalar fácilmente las cargas de trabajo con estado horizontalmente porque el escalado podría requerir la replicación de datos, la creación o eliminación de fragmentos de datos o el cambio de la configuración general de la aplicación. Cuando recrees o actualices una máquina con una carga de trabajo con estado, debes conservar el estado único de la VM. Algunos ejemplos de aplicaciones con reconocimiento del estado son Cassandra, ElasticSearch, MongoDB, MySQL, PostgreSQL y Kafka.

Tratas las máquinas virtuales con cargas de trabajo sin estado como intercambiables y solo te importa el número de máquinas virtuales de servicio que tienes. Ninguna VM recibe un trato diferente que otra. Puedes escalar horizontalmente cargas de trabajo sin estado rápidamente añadiendo o quitando VMs. Cuando actualice su aplicación, podrá eliminar máquinas y sustituirlas por otras nuevas con nombres, direcciones IP, metadatos y discos diferentes. Cuando se elimina o se vuelve a crear una VM sin estado, se pierden todos los datos de la máquina: los discos se eliminan o se vuelven a crear desde cero. Un frontend web es un ejemplo de aplicación sin reconocimiento del estado.

Grupo de instancias gestionado con reconocimiento del estadoGrupo de instancias gestionado sin reconocimiento del estado
Carga de trabajo Cargas de trabajo con estado en las que los discos, las direcciones IP o los metadatos se conservan al volver a crear las VMs. Cargas de trabajo sin estado de alta disponibilidad y escalables, en las que los discos y las direcciones IP se vuelven a crear desde cero en el escalado horizontal, la reparación automática, la actualización automática y la recreación de la VM.
Funciones de los MIGs
  • Reparación automática
  • Actualizaciones continuas automatizadas
  • Despliegues multizona
  • Reparación automática
  • Actualizaciones continuas automatizadas
  • Despliegues multizona
  • Autoescalado
Elementos que se pueden conservar
  • Nombres de instancias
  • Discos persistentes, incluida la compatibilidad con discos que no estén definidos en la plantilla de la instancia
  • Metadatos específicos de la instancia
  • Direcciones IP
Nombres de instancias

Todos los MIGs admiten nombres de instancia personalizados y conservables.

Cuándo usar grupos de instancias gestionados con reconocimiento del estado

Plantéate usar grupos de instancias gestionados con reconocimiento del estado (MIGs con reconocimiento del estado) siempre que despliegues una aplicación o un clúster con reconocimiento del estado en Compute Engine y quieras mejorar su disponibilidad con la reparación automática y los despliegues multizona, o bien si quieres simplificar las actualizaciones de las instancias con reconocimiento del estado orquestando los lanzamientos de actualizaciones y controlando el nivel de interrupción permitido en las instancias.

Los grupos de instancias gestionados con reconocimiento del estado están pensados para aplicaciones con datos o configuraciones con estado, como las siguientes:

  • Bases de datos. Por ejemplo, Cassandra, ElasticSearch, MongoDB y ZooKeeper. Antes de decidirte por MIGs con estado, te recomendamos que utilices servicios totalmente gestionados. Por ejemplo, MySQL y PostgreSQL están disponibles en Cloud SQL. De esta forma, podrás centrarte en tus aplicaciones y no tendrás que ocuparte de las VMs.
  • Aplicaciones de tratamiento de datos. Por ejemplo, Kafka y Flink. Antes de decidirte por las MIGs con estado, te recomendamos que uses servicios totalmente gestionados, como Dataflow u Dataproc, para centrarte en las tareas de procesamiento de datos y no tener que gestionar máquinas virtuales.
  • Otras aplicaciones con reconocimiento del estado. Por ejemplo: TeamCity, Jenkins, Bamboo, servidores DNS con direcciones IP con estado y cargas de trabajo con estado personalizadas.
  • Aplicaciones monolíticas antiguas. Estas aplicaciones almacenan el estado de la aplicación en un disco de arranque o en discos persistentes adicionales, o bien dependen de una configuración con estado, como nombres de instancias de VM, direcciones IP o valores de claves de metadatos específicos.
  • Cargas de trabajo por lotes con creación de puntos de control. Con esta configuración, puedes conservar los resultados de los puntos de control de los cálculos de larga duración para anticiparte a los fallos de las cargas de trabajo o de las VMs, o a la anulación de las instancias. Los MIGs con estado pueden recrear una máquina que haya fallado y conservar su disco de datos, de modo que el cálculo pueda continuar desde el último punto de control.

Para que tu aplicación sea resistente a los fallos de zona, debes replicar los datos en varias instancias a nivel de aplicación. Por ejemplo, ElasticSearch y Cassandra admiten esta función. Puedes usar un MIG regional para que una aplicación de este tipo sea resistente a los fallos zonales. Para ello, despliega réplicas redundantes en varias zonas y utiliza la función de replicación de datos de la aplicación. Si se produce un fallo por zonas, tus datos se proporcionan desde las réplicas disponibles en las zonas restantes.

Consulta las limitaciones para comprobar si un MIG con estado cumple tus requisitos.

Qué hace que un MIG tenga reconocimiento del estado

Un MIG se considera con reconocimiento del estado si has creado una configuración con reconocimiento del estado.

Puedes crear una configuración con estado al crear tu MIG o convertir un grupo sin estado en un grupo con estado después de crearlo añadiendo una configuración.

Para crear una configuración con reconocimiento del estado, debes definir una política con reconocimiento del estado no vacía o una o varias configuraciones por instancia no vacías:

  • Una política con reconocimiento del estado define los elementos que quieres conservar en todas las instancias de tu MIG.
  • Una configuración por instancia define los elementos que se deben conservar en una instancia de VM específica.

La configuración se aplica después de que tú o el MIG la apliquéis:

  • Un MIG aplica automáticamente la configuración de tu política con reconocimiento del estado a las instancias nuevas y a las que ya tengas.
  • Cuando creas o actualizas configuraciones por instancia, puedes elegir si quieres aplicar la nueva configuración manualmente o automáticamente.

Una vez que se haya aplicado la configuración con estado (política con estado o configuraciones por instancia), puedes verificarla inspeccionando el estado conservado de cada instancia gestionada.

Los cambios posteriores en la configuración con estado o el tamaño de tu MIG (por ejemplo, si reduces el tamaño del MIG o eliminas o abandonas instancias del MIG) pueden afectar a los estados conservados de las instancias.

Configuración con reconocimiento del estado

Un grupo de instancias gestionado (MIG) con reconocimiento del estado toma su configuración de instancia de una combinación de la plantilla de instancia, la configuración de todas las instancias (opcional), la política con reconocimiento del estado (opcional) y las configuraciones por instancia (opcionales) que definas. Una vez que hayas definido la configuración de tu grupo, el MIG la usará al crear máquinas virtuales. Para aplicar una configuración actualizada a las VMs que ya tienes, consulta Aplicar nuevas configuraciones de VM en un MIG.

Política con reconocimiento del estado

Una política con estado define elementos con estado comunes para todas las instancias de un grupo de instancias gestionado. Cada elemento que incluyas en la política con estado debe definirse en la plantilla de instancia del MIG.

Puedes hacer los siguientes cambios en una política con reconocimiento del estado:

  • Configura los discos para que tengan reconocimiento del estado añadiéndolos a la política con reconocimiento del estado.
  • Configura los discos para que no tengan estado quitándolos de la política con estado.
  • Especifica que las direcciones IP deben tener estado añadiendo la configuración de la interfaz de red a la política con estado.
  • Especifica que las direcciones IP deben tratarse como sin estado eliminando la configuración de la política con estado.

Configuraciones por instancia

Una configuración por instancia define elementos con estado que son únicos para una instancia gestionada específica, como discos específicos de la instancia, pares clave-valor de metadatos y direcciones IP. No es necesario definir los metadatos y los discos específicos de la instancia en la plantilla de instancia del MIG. Sin embargo, las interfaces de red de las IPs con estado deben definirse en la plantilla de instancia del MIG.

Puede hacer los siguientes cambios en la configuración por instancia de una instancia específica de un MIG:

  • Configura los discos definidos en la plantilla de instancia para que tengan estado en la instancia (añadiendo esos discos a la configuración por instancia) o para que no tengan estado (quitando esos discos de la configuración por instancia).
  • Configurar los discos que ya existen, que no están definidos en la plantilla de la instancia, para que se adjunten y se conviertan en discos con estado de la instancia (añadiendo esos discos a la configuración por instancia) o para que se desvinculen de la instancia (eliminando los discos de la configuración por instancia).
  • Añadir o quitar pares clave-valor de metadatos con estado específicos de la instancia.
  • Configurar direcciones IP de forma individual para que las instancias de un MIG tengan o no reconocimiento del estado. No se admiten configuraciones por instancia de direcciones IP en interfaces de red dinámicas.

Ejemplo de configuración con reconocimiento del estado

A continuación, se muestra un ejemplo de configuración con estado:

Plantilla de instancia + política con reconocimiento del estado + configuración por instancia = configuración de instancia gestionada.

En este gráfico:

  • La plantilla de instancia define una configuración común para todas las instancias de VM de un MIG.
  • La política con reconocimiento del estado define una configuración con reconocimiento del estado común para los discos con el nombre de dispositivo data-disk, que se definen en la plantilla de instancia y que se crean y se vinculan individualmente a cada instancia de VM del MIG.
  • La configuración por instancia define una configuración con reconocimiento del estado para una instancia de VM específica llamada node-1. Especifica que se adjunte un disco ya creado, my-legacy-1, a la instancia node-1 y que se trate como un disco con estado. También especifica un valor de clave de metadatos para conservar la individualidad de la instancia node-1: node-id:xyz273.

Al crear la máquina virtual node-1, el MIG hace lo siguiente:

  1. Usa el tipo de máquina n2-standard-2, según la plantilla de instancia.
  2. Crea y adjunta un disco de arranque con un nombre de disco generado automáticamente, boot-node-1, y un nombre de dispositivo boot-disk, usando una imagen de Debian GNU/Linux, según la plantilla de instancia. El MIG trata el boot-node-1 disco de arranque como sin estado porque no está configurado en la política con estado ni en la configuración por instancia.
  3. Crea y conecta un disco adicional con un nombre de disco generado automáticamente, data-disk-1, y un nombre de dispositivo, data-disk, mediante una imagen personalizada, según la plantilla de instancia. MIG trata el data-disk-1 disco adicional como un disco con estado porque su nombre de dispositivo se especifica en la política con estado.
  4. Adjunta un disco con el nombre my-legacy-1 y usa el nombre del dispositivo legacy-disk según la configuración por instancia. MIG trata el disco adicional my-legacy-1 como un disco con estado porque su nombre de dispositivo se especifica en la configuración por instancia.
  5. Define tres pares clave-valor de metadatos: dos de la plantilla de instancia (app:example-stateful-app y version:1.0) y uno de la configuración por instancia (node-id:xyz273). El MIG trata el par clave-valor node-id:xyz273 como un par con estado porque se especifica en la configuración por instancia.

Al volver a crear la VM node-1, si se mantiene la misma configuración, el MIG recrea los elementos sin reconocimiento del estado y conserva los elementos con reconocimiento del estado:

  1. Recrea el disco de arranque a partir de la imagen original:

    Primero, elimina el disco de arranque boot-node-1 y, a continuación, lo vuelve a crear a partir de la imagen de Debian GNU/Linux, tal como se especifica en la plantilla de instancia.

  2. Conserva los discos adicionales, data-disk-1 y my-legacy-1:

    Desconecta los discos adicionales antes de eliminar la VM y, a continuación, los conecta a la VM una vez que se ha vuelto a crear.

  3. Conserva el par clave-valor de metadatos individual node-id:xyz273:

    Define los metadatos después de que se haya recreado la VM. También define los pares clave-valor comunes de la plantilla de instancia (app:example-stateful-app y version:1.0).

Comentarios

Queremos conocer tus casos prácticos, tus retos y tus comentarios sobre los MIGs con estado. Te invitamos a que compartas tus comentarios con nuestro equipo a través de la dirección mig-discuss@google.com.

Siguientes pasos