Como arquitecto de la nube o administrador de TI, cuando planea ejecutar una aplicación en Compute Engine, necesita diseñar una topología de VM que pueda aprovisionar y operar de manera eficiente.
Compute Engine ofrece una variedad de opciones de implementación: por ejemplo, puede implementar un grupo de máquinas virtuales que administra como una sola entidad, o puede aprovisionar y administrar las máquinas virtuales como recursos individuales. Cada enfoque tiene distintos méritos y limitaciones. ¿Cómo se elige una estrategia de implementación óptima?
- Comience evaluando los requisitos clave de su aplicación.
- Revise las opciones de implementación disponibles y sus ventajas relativas.
- Seleccione una estrategia que cumpla con sus requisitos y haga un uso óptimo de las capacidades de Compute Engine.
Evalúa tu carga de trabajo
Utilice las siguientes preguntas para analizar los requisitos clave de la carga de trabajo que desea implementar. Sus respuestas lo ayudarán a asignar las capacidades de cada opción de implementación (enumeradas en la siguiente sección) a los requisitos de su carga de trabajo.
Estado de la aplicación
¿La aplicación tiene estado?
- Una aplicación con estado almacena ciertos datos, como el cliente o el ID de sesión, hasta que esos datos ya no sean necesarios. Por ejemplo, en una aplicación de compras en línea, el servicio de carrito de compras puede almacenar detalles de los artículos que se agregan o eliminan a medida que el usuario continúa 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 podría 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, consulte En qué se diferencian las cargas de trabajo con estado de las cargas de trabajo sin estado .
¿Se deben conservar los metadatos específicos de la instancia cuando se reinician las máquinas virtuales o cuando Compute Engine recrea (repara automáticamente) las máquinas virtuales?
Aprovisionamiento
- ¿Las máquinas virtuales deberían utilizar una combinación de tipos de máquinas o imágenes? Por ejemplo, ¿algunas máquinas virtuales necesitan tipos de máquinas con memoria optimizada mientras que otras utilizan tipos de máquinas de uso general?
- ¿La infraestructura debería escalarse automáticamente en sintonía con los cambios en la carga, para mantener un equilibrio óptimo entre costo y tiempo de respuesta?
- ¿Se pueden ejecutar todas las máquinas virtuales en una única zona, red de VPC y subred?
- ¿Debería la aplicación ejecutarse en la misma zona que otros recursos determinados? Por ejemplo, ¿requiere la aplicación una conexión de baja latencia con una base de datos?
Operaciones
- ¿Quiere administrar las máquinas virtuales como un solo grupo? Por ejemplo, ¿le gustaría automatizar la implementación de actualizaciones de aplicaciones en todas las máquinas virtuales?
- ¿Necesita utilizar una herramienta personalizada o de terceros para administrar las máquinas virtuales?
- ¿Necesita control sobre el manejo de máquinas virtuales fallidas? Por ejemplo, si una máquina virtual falla, ¿le gustaría que permanezca detenida mientras determina la causa raíz del error?
- ¿Necesita controlar la secuencia o programación de inicio, parada, suspensión y reanudación de sus máquinas virtuales? Por ejemplo, para ahorrar costos, ¿planea detener las máquinas virtuales durante los fines de semana o durante determinadas horas del día?
Resiliencia
- ¿La aplicación necesita protección contra fallas zonales? En otras palabras, si una zona está inactiva, ¿le gustaría que la aplicación continuara atendiendo solicitudes de máquinas virtuales 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 las solicitudes, ¿debería Compute Engine recrear la VM automáticamente?
- ¿La aplicación necesita direcciones IP internas o externas fijas para las máquinas virtuales host?
Ahora que ha evaluado sus requisitos, conozca las opciones de implementación que ofrece Compute Engine.
Revise las opciones de implementación disponibles
Revise y comprenda las características y ventajas relativas de las opciones que puede considerar para implementar sus cargas de trabajo en Compute Engine.
- VM independientes
- Con esta opción, usted elige el tipo de máquina, la imagen, los discos y otros atributos individualmente para cada VM que aprovisione. Y usted administra las máquinas virtuales como recursos separados.
- Grupo de instancias no administrado
- Puedes aprovisionar máquinas virtuales independientes y agregarlas a un grupo de instancias. Luego puedes usar el grupo de instancias no administrado como backend de un balanceador de carga.
- Grupo de instancias administrado (MIG)
Un MIG es un grupo de instancias idénticas o configuradas de manera similar que usted aprovisiona mediante una plantilla de instancia .
Puede hacer que un MIG tenga estado , de modo que se conserven discos o metadatos específicos.
Para un MIG sin estado , puede habilitar el escalado automático y configurar una política de escalado.
Al crear un MIG, puede optar por implementar las máquinas virtuales en una sola zona o distribuirlas en más de una zona en una región para lograr alta disponibilidad.
La siguiente tabla resume las características clave de cada opción de implementación.
Capacidad | VM independientes | Grupo de instancias no administrado | MIG con estado | MIG sin estado |
---|---|---|---|---|
Aprovisionamiento basado en plantillas de un grupo de máquinas virtuales | ||||
Mezcla de tipos de máquinas e imágenes. | ||||
Direcciones IP fijas internas o externas | ||||
Reparación automática de máquinas virtuales fallidas | ||||
Control sobre las operaciones de inicio, parada y suspensión-reanudación de VM | ||||
Configurar un grupo de máquinas virtuales como backend del equilibrador de carga | ||||
Preservación de disco y metadatos, para cargas de trabajo con estado | ||||
Actualización controlada de VM específicas | ||||
Actualización continua automática de todas las máquinas virtuales. | ||||
Escalado horizontal automático (y predictivo) |
Los siguientes diagramas muestran implementaciones de ejemplo en paralelo para ayudarle a comprender las diferencias clave.
VM independientes | MIG con estado | MIG sin estado |
---|---|---|
Este ejemplo muestra tres máquinas virtuales creadas individualmente. | Este ejemplo muestra un MIG que contiene tres máquinas virtuales configuradas de manera similar, aprovisionadas mediante una plantilla de instancia. | Este ejemplo muestra un MIG que contiene tres máquinas virtuales idénticas, aprovisionadas mediante una plantilla de instancia. |
|
|
|
Ahora evaluó su carga de trabajo, revisó las opciones de implementación que ofrece Compute Engine y está listo para elegir un enfoque de implementación.
Seleccione una estrategia de implementación
Las recomendaciones que se analizan aquí se basan en una asignación de características de carga de trabajo específicas a las capacidades de cada opción de implementación de Compute Engine.
Utilice el siguiente flujo de toma de decisiones. Si prefiere una guía visual, consulte el árbol de decisiones más adelante en este documento.
Elija entre VM independientes y grupos de instancias.
Requisitos Estrategia de implementación recomendada Al menos uno de los siguientes requisitos es esencial para su carga de trabajo. - La aplicación debe ejecutarse en máquinas virtuales que utilicen una combinación de tipos de máquinas o imágenes.
- La aplicación necesita direcciones IP internas o externas fijas para las máquinas virtuales host.
- Necesita control sobre el manejo de máquinas virtuales fallidas.
- Necesita controlar las operaciones de inicio, parada o suspensión y reanudación de sus máquinas virtuales.
- Debe utilizar un script personalizado o una herramienta de terceros para aprovisionar y eliminar máquinas virtuales.
Elija máquinas virtuales independientes.
Si todas las VM independientes se pueden ejecutar en una sola zona, red de VPC y subred, considere agregar las VM a un grupo de instancias no administrado. Luego puedes usar el grupo de instancias no administrado como backend de un balanceador de carga.
Omita el resto de este flujo de toma de decisiones.
Ninguno de los requisitos anteriores es esencial para su caso de uso. Utilice un MIG para configurar una topología de Compute Engine que sea fácil de administrar, altamente disponible y escalable.
Continúe con el siguiente paso.
Elija entre un MIG con estado y sin estado.
Requisitos Tipo de MIG recomendado La aplicación requiere conservación del disco y de los metadatos; es decir, la aplicación tiene estado. Elija un MIG con estado y configure los discos que Compute Engine debe preservar durante eventos disruptivos como recreación, reparación automática y actualizaciones de VM.
Continúe con el siguiente paso.
La aplicación no tiene estado. Elija un MIG sin estado y aproveche la capacidad de escalado automático. Durante operaciones disruptivas, Compute Engine recrea los discos según la plantilla de instancia.
Continúe con el siguiente paso.
Elija entre un MIG zonal y regional.
Requisitos Tipo de MIG recomendado La aplicación debe ejecutarse en una sola zona o la protección contra fallas zonales no es esencial. Elija un MIG zonal. La aplicación debe continuar ejecutándose incluso cuando ocurre una falla zonal. Elija un MIG regional.
Árbol de decisión
El siguiente diagrama lo guía a través de los factores a considerar al decidir su estrategia de implementación de Compute Engine:
¿Qué sigue?
- Obtenga más información sobre las plantillas de instancias .
- Descubra cómo funcionan los MIG con estado .
- Obtenga más información sobre los MIG regionales .
- Crea un MIG .
- Grupos de instancias de escala automática .
- Migre una carga de trabajo existente a un MIG con estado .