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


Como arquitecto de 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 manera eficiente.

Compute Engine ofrece una variedad de opciones de implementación: por ejemplo, puedes implementar un grupo de VM que administras como una sola entidad o aprovisionar y administrar las VM como recursos individuales. Cada enfoque tiene méritos y limitaciones distintos. ¿Cómo eliges una estrategia de implementación óptima?

  1. Comienza por evaluar los requisitos clave de tu aplicación.
  2. Revisa las opciones de implementación disponibles y sus méritos relativos.
  3. Selecciona una estrategia que cumpla con tus requisitos y haga un uso óptimo de las capacidades de Compute Engine.

Evalúa tu carga de trabajo

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

  • Estado de la aplicación

    • ¿La aplicación es con estado?

      • Una aplicación con estado almacena ciertos datos, como el ID de cliente o de sesión, hasta que ya no sean necesarios. Por ejemplo, en una app de compras en línea, el servicio de carrito de compras puede almacenar detalles de los artículos que se agregan o se quitan a medida que el usuario continúa comprando y puede conservar el estado final del carrito cuando se inicia el proceso de confirmación de la compra.
      • Una aplicación sin estado no necesita almacenar ningún cliente, transacción o datos de sesión. Por ejemplo, un servidor web puede cerrar una sesión después de entregar el contenido que solicitó el cliente.

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

    • ¿Se deben conservar los metadatos específicos de las instancias cuando las VM se reinician o cuando Compute Engine vuelve a crear (repara automáticamente) las VM?

  • Aprovisionamiento

    • ¿Las VM deben usar una combinación de imágenes o tipos de máquina? Por ejemplo, ¿algunas VM necesitan tipos de máquinas con optimización de memoria, mientras que las demás usan tipos de máquinas de uso general?
    • ¿La infraestructura se debe escalar automáticamente para ajustarse a los cambios en la carga, de modo que mantengas un equilibrio óptimo entre el costo y el tiempo de respuesta?
    • ¿Todas las VM se pueden ejecutar 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 administrar las VM como un solo grupo? Por ejemplo, ¿te gustaría automatizar el lanzamiento de actualizaciones de aplicaciones en todas las VM?
    • ¿Necesitas usar una herramienta personalizada o de terceros para administrar las VM?
    • ¿Necesitas controlar el manejo de las VM con errores? Por ejemplo, si una VM falla, ¿te gustaría que se detuviera mientras determinas la causa raíz de la falla?
    • ¿Necesitas control sobre la secuencia o la programación de inicio, detención, suspensión y reanudación de las VM? Por ejemplo, para ahorrar costos, ¿planeas detener las VM durante los fines de semana o en ciertas horas del día?
  • Resiliencia

    • ¿La aplicación necesita protección contra fallas zonales? En otras palabras, si una zona se encuentra inactiva, ¿te gustaría que la aplicación continuara entregando solicitudes desde VM en otras zonas de la región?
    • Si una VM se detiene o falla por algún motivo, o si la aplicación no responde a solicitudes, ¿Compute Engine debe volver a crear la VM de forma automática?
    • ¿La aplicación necesita direcciones IP internas o externas fijas para las VM host?

Ahora que ya evaluaste los requisitos, obtén información sobre las opciones de implementación que ofrece Compute Engine.

Revisa las opciones de implementación disponibles

Revisa y comprende las características y las ventajas relativas de las opciones que puedes considerar para implementar tus cargas de trabajo en Compute Engine.

VM 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 aprovisionas. Y puedes administrar las VM como recursos separados.
Grupo de instancias no administrado
Puedes aprovisionar VM independientes y agregarlas a un grupo de instancias. Luego, puedes usar el grupo de instancias no administrado como backend para un balanceador de cargas.
Grupo de instancias administrado (MIG)

Un MIG es un grupo de instancias idénticas o configuradas de forma similar que aprovisionas mediante una plantilla de instancias.

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

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

  • Mientras creas un MIG, puedes elegir implementar las VM dentro de una sola zona o distribuirlas en más de una zona en una región para una alta disponibilidad.

En la siguiente tabla, se resumen las características clave de cada opción de implementación.

Función VM independientes Grupo de instancias no administrado MIG con estado MIG sin estado
Aprovisionamiento basado en plantillas de un grupo de VM
Combinación de imágenes y tipos de máquinas
Direcciones IP internas o externas fijas
Reparación automática de VM con errores
Control sobre las operaciones de inicio y detención y suspensión y reanudación de VM
Configuración de un grupo de VM como backend de un balanceador de cargas
Conservación de discos y metadatos para cargas de trabajo con estado
Actualización controlada de VM específicas
Actualización progresiva automática de todas las VM
Escalamiento horizontal automático (y predictivo)

En los siguientes diagramas, se muestran ejemplos de implementaciones en paralelo para ayudarte a comprender las diferencias clave.

VM independientes MIG con estado MIG sin estado
En este ejemplo, se muestran tres VM creadas de forma individual. En este ejemplo, se muestra un MIG que contiene tres VM configuradas de manera similar, aprovisionadas mediante una plantilla de instancias.

En este ejemplo, se muestra un MIG que contiene tres VM idénticas, aprovisionadas mediante una plantilla de instancias.

Tres VM independientes
Un MIG con estado con tres VM creadas mediante una plantilla de instancias
Un MIG sin estado con tres VM creadas mediante una plantilla de instancias
  • Cada VM en este ejemplo usa distintos tipos de máquina, imágenes, discos y otros atributos.
  • Las VM se agregaron de forma individual a un grupo de instancias no administrado.
  • En las VM de este ejemplo, se usa un tipo de máquina y una imagen definidos en una plantilla de instancias.
  • Una política con estado garantiza que los discos de arranque conectados a todas las VM tengan estado.
  • Las configuraciones por instancia agregan los discos de datos con estado necesarios.
  • En este ejemplo, las VM heredan el tipo de máquina y la imagen de una plantilla de instancias.
  • Los discos se vuelven a crear cuando se actualiza o se vuelve a crear la VM.
  • El MIG crea y borra las VM de forma automática en función de una configuración del ajuste de escala automático.

Ahora ya evaluaste la carga de trabajo, revisaste las opciones de implementación que ofrece Compute Engine y estás listo para elegir un enfoque de implementación.

Selecciona una estrategia de implementación

Las recomendaciones que se analizan aquí se basan en una asignación de características específicas de cargas de trabajo a las capacidades de cada opción de implementación de Compute Engine.

Usa el siguiente flujo de toma de decisiones. Si prefieres una guía visual, consulta el árbol de decisión que aparece más adelante en este documento.

  1. Elige entre VM independientes y grupos de instancias.

    Requisitos Estrategia de implementación recomendada
    Al menos uno de los siguientes requisitos es esencial para tu carga de trabajo.
    • La aplicación se debe ejecutar en VM que usen una combinación de imágenes o tipos de máquina.
    • La aplicación necesita direcciones IP internas o externas fijas para las VM host.
    • Necesitas controlar las VM con errores.
    • Necesitas control sobre las operaciones de inicio y detención o de suspensión y reanudación de VM.
    • Debes usar una secuencia de comandos personalizada o una herramienta de terceros para aprovisionar y quitar VM.

    Elige VM independientes.

    Si todas las VM independientes pueden ejecutarse en una zona, red de VPC y subred únicas, considera agregar las VM a un grupo de instancias no administrado. Luego, puedes usar el grupo de instancias no administrado como backend para un balanceador de cargas.

    Omite el resto del flujo de toma de decisiones.

    Ninguno de los requisitos anteriores es esencial para tu caso de uso.

    Usa un MIG para configurar una topología de Compute Engine fácil de administrar, con alta disponibilidad y escalable.

    Continúa con el paso siguiente

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

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

    Elige un MIG con estado y configura los discos que Compute Engine debería conservar durante interrupciones, como la recreación, la reparación automática y las actualizaciones de VM.

    Continúa con el paso siguiente

    La aplicación no es con estado.

    Elige un MIG sin estado y aprovecha la capacidad de ajuste de escala automático. Durante las operaciones perjudiciales, Compute Engine vuelve a crear los discos según la plantilla de instancias.

    Continúa con el paso siguiente

  3. Elige entre un MIG zonal y regional.

    Requisitos Tipo de MIG recomendado
    La aplicación se debe ejecutar en una zona única, o la protección contra fallas zonales no es esencial. Elige un MIG zonal.
    La aplicación debe seguir ejecutándose incluso cuando ocurre una falla zonal. Elige un MIG regional.

Árbol de decisión

En el siguiente diagrama, se te guiará a través de los factores que debes considerar cuando decidas tu estrategia de implementación de Compute Engine:

Árbol de decisión para elegir una estrategia de implementación de Compute Engine

¿Qué sigue?