Elegir una estrategia de implementación de Compute Engine para tu carga de trabajo


Como arquitecto de la nube o administrador de TI, cuando planeas ejecutar una aplicación en Compute Engine, debes diseñar una topología de VM que puedas aprovisionar y operar de forma eficiente.

Compute Engine ofrece varias opciones de implementación. Por ejemplo, puedes implementar un grupo de VMs que gestionas como una sola entidad o aprovisionar y gestionar las VMs como recursos individuales. Cada enfoque tiene sus ventajas y limitaciones. ¿Cómo se elige una estrategia de implementación óptima?

  1. Empieza evaluando los requisitos clave de tu aplicación.
  2. Revisa las opciones de implementación disponibles y sus ventajas relativas.
  3. Selecciona una estrategia que cumpla tus requisitos y aproveche al máximo las funciones de Compute Engine.

Evalúa tu carga de trabajo

Usa las siguientes preguntas para analizar los requisitos clave de la carga de trabajo que quieras implementar. Tus respuestas te ayudarán a asignar las funciones de cada opción de implementación (que se indican en la siguiente sección) a los requisitos de tu carga de trabajo.

  • Estado de la aplicación

    • ¿La aplicación tiene estado?

      • Una aplicación con estado almacena determinados datos, como el ID de cliente o de sesión, hasta que ya no son necesarios. Por ejemplo, en una aplicación de compras online, el servicio del carrito de la compra puede almacenar los detalles de los artículos que se añaden o se quitan mientras el usuario sigue comprando, y conservar el estado final del carrito cuando el usuario inicia el proceso de pago.
      • Una aplicación sin estado no necesita almacenar ningún dato de cliente, transacción o sesión. Por ejemplo, un servidor web puede cerrar una sesión después de servir el contenido que ha solicitado el cliente.

      Para obtener más información sobre las aplicaciones con y sin estado, consulta Diferencias entre las cargas de trabajo con y sin estado.

    • ¿Se deben conservar los metadatos específicos de la instancia cuando se reinicien las VMs o cuando Compute Engine las vuelva a crear (reparación automática)?

  • Aprovisionando

    • ¿Las VMs deben usar una combinación de tipos de máquinas o imágenes? Por ejemplo, ¿algunas VMs necesitan tipos de máquinas con memoria optimizada, mientras que otras usan tipos de máquinas de uso general?
    • ¿Debería la infraestructura escalarse automáticamente en función de los cambios en la carga para mantener un equilibrio óptimo entre el coste y el tiempo de respuesta?
    • ¿Pueden ejecutarse todas las VMs en una sola zona, red de VPC y subred?
    • ¿La aplicación debe ejecutarse en la misma zona que otros recursos? Por ejemplo, ¿la aplicación requiere una conexión de baja latencia con una base de datos?
  • Operaciones

    • ¿Quieres gestionar las VMs como un solo grupo? Por ejemplo, ¿quieres automatizar el lanzamiento de actualizaciones de aplicaciones en todas las máquinas virtuales?
    • ¿Necesitas usar una herramienta personalizada o de terceros para gestionar las máquinas virtuales?
    • ¿Necesitas controlar la gestión de las máquinas virtuales fallidas? Por ejemplo, si una máquina virtual falla, ¿quieres que permanezca detenida mientras determinas la causa principal del fallo?
    • ¿Necesitas controlar la secuencia de inicio, detención, suspensión y reanudación de tus máquinas virtuales o programarlas? Por ejemplo, para ahorrar costes, ¿tiene previsto detener las VMs durante los fines de semana o en determinadas horas del día?
  • Resiliencia

    • ¿La aplicación necesita protección frente a fallos de zona? En otras palabras, si una zona deja de funcionar, ¿quieres que la aplicación siga atendiendo solicitudes de máquinas virtuales de otras zonas de la región?
    • Si una VM se detiene o falla por cualquier motivo, o si la aplicación no responde a las solicitudes, ¿debería Compute Engine volver a crear la VM automáticamente?
    • ¿La aplicación necesita direcciones IP internas o externas fijas para las máquinas virtuales host?

Ahora que has evaluado tus requisitos, consulta las opciones de implementación que ofrece Compute Engine.

Revisa las opciones de implementación disponibles

Revisa y comprende las funciones y las ventajas relativas de las opciones que puedes tener en cuenta para desplegar tus cargas de trabajo en Compute Engine.

Máquinas virtuales independientes
Con esta opción, eliges el tipo de máquina, la imagen, los discos y otros atributos de forma individual para cada VM que aprovisiones. Además, las máquinas virtuales se gestionan como recursos independientes.
Grupo de instancias sin gestionar
Puedes aprovisionar VMs independientes y añadirlas a un grupo de instancias. Después, puedes usar el grupo de instancias sin gestionar como backend de un balanceador de carga.
Grupo de instancias gestionado (MIG)

Un MIG es un grupo de instancias idénticas o con una configuración similar que se aprovisionan mediante una plantilla de instancia.

  • Puedes hacer que un MIG sea con estado para que se conserven discos o metadatos específicos.

  • En el caso de un MIG sin estado, puedes habilitar el escalado automático y configurar una política de escalado.

  • Al crear un MIG, puedes desplegar las VMs en una sola zona o distribuirlas en más de una zona de una región para conseguir una alta disponibilidad.

En la siguiente tabla se resumen las principales funciones de cada opción de implementación.

Competencia Máquinas virtuales independientes Grupo de instancias no administrado Grupo de instancias gestionado con reconocimiento del estado Grupo de instancias gestionado sin reconocimiento del estado
Aprovisionamiento basado en plantillas de un grupo de VMs
Combinación de tipos de máquinas e imágenes
Fijas internas o externas
Reparación automática de máquinas virtuales con errores
Control sobre las operaciones de inicio y detención y suspensión y reanudación de la máquina virtual
Configurar un grupo de VMs como backend de un balanceador de carga
Conservación del disco y los metadatos para cargas de trabajo con estado
Actualización controlada de máquinas virtuales específicas
Actualización continua automática de todas las VMs
Escalado horizontal automático (y predictivo)

Los siguientes diagramas muestran implementaciones de ejemplo en paralelo para ayudarte a entender las diferencias clave.

Máquinas virtuales independientes Grupo de instancias gestionado con reconocimiento del estado Grupo de instancias gestionado sin reconocimiento del estado
En este ejemplo se muestran tres VMs creadas de forma individual. En este ejemplo se muestra un MIG que contiene tres VMs configuradas de forma similar y que se han aprovisionado mediante una plantilla de instancia.

En este ejemplo se muestra un MIG que contiene tres VMs idénticas aprovisionadas mediante una plantilla de instancia.

Tres VMs independientes
Un MIG con reconocimiento del estado
                          con tres VMs creadas mediante una plantilla de instancia
Un MIG sin estado con tres VMs creadas mediante una plantilla de instancia
  • Cada VM de este ejemplo usa un tipo de máquina, una imagen, discos y otros atributos distintos.
  • Las VMs se han añadido individualmente a un grupo de instancias no gestionado.
  • Las VMs de este ejemplo usan un tipo de máquina y una imagen definidos en una plantilla de instancia.
  • Una política con estado asegura que los discos de arranque conectados a todas las VMs tengan estado.
  • Las configuraciones por instancia añaden los discos de datos con reconocimiento del estado necesarios.
  • En este ejemplo, las VMs heredan el tipo de máquina y la imagen de una plantilla de instancia.
  • Los discos se vuelven a crear cuando se actualiza o se vuelve a crear la VM.
  • El MIG crea y elimina máquinas virtuales automáticamente en función de una configuración de autoescalado.

Ya has evaluado tu carga de trabajo, has revisado las opciones de implementación que ofrece Compute Engine y estás listo para elegir un enfoque de implementación.

Seleccionar una estrategia de despliegue

Las recomendaciones que se describen en este artículo se basan en una asignación de características de cargas de trabajo específicas a las funciones de cada opción de implementación de Compute Engine.

Sigue el siguiente proceso de toma de decisiones. Si prefieres una guía visual, consulta el diagrama de flujo de toma de decisiones que aparece más adelante en este documento.

  1. Elige entre máquinas virtuales independientes y grupos de instancias.

    Requisitos Estrategia de implementación recomendada
    Es esencial que tu carga de trabajo cumpla al menos uno de los siguientes requisitos.
    • La aplicación debe ejecutarse en VMs que usen una combinación de tipos de máquinas o imágenes.
    • La aplicación necesita direcciones IP internas o externas fijas para las VMs host.
    • Necesitas controlar la gestión de las máquinas virtuales con errores.
    • Necesitas controlar las operaciones de inicio y detención, o de suspensión y reanudación de tus VMs.
    • Debes usar una secuencia de comandos personalizada o una herramienta de terceros para aprovisionar y eliminar máquinas virtuales.

    Elige VMs independientes.

    Si todas las VMs independientes pueden ejecutarse en una sola zona, red VPC y subred, considera la posibilidad de añadir las VMs a un grupo de instancias no gestionado. A continuación, puedes usar el grupo de instancias sin gestionar como backend de un balanceador de carga.

    Saltarte el resto del proceso de toma de decisiones.

    Ninguno de los requisitos anteriores es esencial para tu caso práctico.

    Usa un MIG para configurar una topología de Compute Engine que sea fácil de gestionar, tenga una alta disponibilidad y sea escalable.

    Ve al siguiente paso.

  2. Elige entre un MIG con estado y uno sin estado.

    Requisitos Tipo de MIG recomendado
    La aplicación requiere que se conserven los discos y los metadatos, es decir, la aplicación tiene estado.

    Elige un MIG con reconocimiento del estado y configura los discos que Compute Engine debe conservar en caso de interrupción, como durante una recreación de una VM, una reparación automática o una actualización.

    Ve al siguiente paso.

    La aplicación no tiene estado.

    Elige un MIG sin estado y aprovecha la función de escalado automático. Durante las operaciones disruptivas, Compute Engine vuelve a crear los discos según la plantilla de la instancia.

    Ve al siguiente paso.

  3. Elige entre un MIG zonal y uno regional.

    Requisitos Tipo de MIG recomendado
    La aplicación debe ejecutarse en una sola zona o no es esencial que esté protegida frente a fallos de zona. Elige un MIG zonal.
    La aplicación debe seguir ejecutándose incluso cuando se produzca un fallo zonal. Elige un MIG regional.

Árbol de decisión

En el siguiente diagrama se muestran los factores que debes tener en cuenta a la hora de decidir tu estrategia de implementación de Compute Engine:

Árbol de decisiones para elegir una estrategia de despliegue de Compute Engine

Siguientes pasos