Como arquitecto de nube o responsable de la toma de decisiones, cuando planeas implementar una aplicación en Google Cloud, debes elegir un arquetipo de implementación1 adecuado para tu aplicación. En esta guía, se describen seis arquetipos de implementación (zonales, regionales, multirregionales, globales, híbridas y multinube), y se presentan casos de uso y consideraciones de diseño para cada arquetipo de implementación. La guía también proporciona un análisis comparativo para ayudarte a elegir los arquetipos de implementación que cumplan con tus requisitos de disponibilidad, costo, rendimiento y eficiencia operativa.
¿Qué es un arquetipo de implementación?
Un arquetipo de implementación es un modelo abstracto e independiente del proveedor que usas como base para compilar arquitecturas de implementación específicas de la aplicación que cumplen con tus requisitos comerciales y técnicos. Cada arquetipo de implementación especifica una combinación de dominios con fallas en los que se puede ejecutar una aplicación. Estos dominios con fallas pueden ser una o más Google Cloud zonas o regiones, y se pueden extender para incluir tus centros de datos locales o dominios con fallas en otros proveedores de servicios en la nube.
En el siguiente diagrama, se muestran seis aplicaciones implementadas en Google Cloud. Cada aplicación usa un arquetipo de implementación que cumple con sus requisitos específicos.
Como se muestra en el diagrama anterior, en una arquitectura que usa el arquetipo de implementación híbrida o de múltiples nubes, la topología de la nube se basa en uno de los arquetipos básicos: zonal, regional, multirregional o global. En este sentido, los arquetipos de implementación híbrida y de múltiples nubes se pueden considerar como arquetipos de implementación compuestos que incluyen uno de los arquetipos básicos.
Elegir un arquetipo de implementación ayuda a simplificar las decisiones posteriores sobre los Google Cloud productos y las funciones que debes usar. Por ejemplo, para una aplicación en contenedores con alta disponibilidad, si eliges el arquetipo de implementación regional, los clústeres regionales de Google Kubernetes Engine (GKE) son más apropiados que los zonales.
Cuando eliges un arquetipo de implementación para una aplicación, debes considerar las compensaciones entre factores como la disponibilidad, el costo y la complejidad operativa. Por ejemplo, si una aplicación entrega contenido a usuarios de varios países y necesita alta disponibilidad, puedes elegir el arquetipo de implementación multirregional. Sin embargo, para una aplicación interna que usan los empleados en una sola región geográfica, puedes priorizar el costo por sobre la disponibilidad y, por lo tanto, elegir el arquetipo de implementación regional.
Descripción general de los arquetipos de implementación
En las siguientes pestañas, se proporcionan definiciones para los arquetipos de implementación y un resumen de los casos de uso y las consideraciones de diseño para cada uno.
Zonal
Tu aplicación se ejecuta dentro de una sola Google Cloud zona, como se muestra en el siguiente diagrama:
| Casos de uso |
|
|---|---|
| Consideraciones del diseño |
|
| Más información | Consulta las siguientes secciones: |
Regional
Tu aplicación se ejecuta de forma independiente en dos o más zonas dentro de una sola Google Cloud región, como se muestra en el siguiente diagrama:
| Casos de uso |
|
|---|---|
| Consideraciones del diseño |
|
| Más información | Consulta las siguientes secciones: |
Multirregional
Tu aplicación se ejecuta de forma independiente en varias zonas de dos o más Google Cloud regiones. Puedes usar las políticas de enrutamiento de DNS para enrutar el tráfico entrante a los balanceadores de cargas regionales. Luego, los balanceadores de cargas regionales distribuyen el tráfico a las réplicas zonales de la aplicación, como se muestra en el siguiente diagrama:
| Casos de uso |
|
|---|---|
| Consideraciones del diseño |
|
| Más información | Consulta las siguientes secciones: |
Global
Tu aplicación se ejecuta en Google Cloud regiones de todo el mundo, ya sea como una pila distribuida de forma global (sin reconocimiento de la ubicación) o como pilas aisladas de forma regional. Un balanceador de cargas de anycast global distribuye el tráfico a la región más cercana al usuario. Otros componentes de la pila de aplicaciones también pueden ser globales, como la base de datos, la caché y el almacén de objetos.
En el siguiente diagrama, se muestra la variante distribuida de forma global del arquetipo de implementación global. Un balanceador de cargas de anycast global reenvía las solicitudes a una pila de aplicaciones que se distribuye en varias regiones y que usa una base de datos replicada de forma global.
En el siguiente diagrama, se muestra una variante del arquetipo de implementación global con pilas de aplicaciones aisladas de forma regional. Un balanceador de cargas de anycast global reenvía las solicitudes a una pila de aplicaciones en una de las regiones. Todas las pilas de aplicaciones usan una sola base de datos replicada de forma global.
| Casos de uso |
|
|---|---|
| Consideraciones del diseño | Costos de la transferencia de datos y la replicación de datos entre regiones |
| Más información | Consulta las siguientes secciones: |
Híbrido
Ciertas partes de tu aplicación se implementan en Google Cloud, mientras que otras se ejecutan de forma local, como se muestra en el siguiente diagrama. La topología en Google Cloud puede usar el arquetipo de implementación zonal, regional, multirregional o global.
| Casos de uso |
|
|---|---|
| Consideraciones del diseño |
|
| Más información | Consulta las siguientes secciones: |
Múltiples nubes
Algunas partes de tu aplicación se implementan en Google Cloud, y otras partes se implementan en otras plataformas de nube, como se muestra en el siguiente diagrama. La topología en cada plataforma de nube puede usar el arquetipo de implementación zonal, regional, multirregional o global.
| Casos de uso |
|
|---|---|
| Consideraciones del diseño |
|
| Más información | Consulta las siguientes secciones: |
Colaboradores
Autor: Kumar Dhanagopal | Desarrollador de soluciones entre productos
Otros colaboradores:
- Anna Berenberg | Socio de Ingeniería
- Anshu Kak | Ingeniero distinguido
- Jeff Welsch | Director, Administración de productos
- Marwan Al Shawi | Ingeniero de Atención al Cliente para Socios
- Sekou Page | Gerente de Productos Salientes
- Steve McGhee | Defensor de Confiabilidad
- Victor Moreno | Gerente de producto, Herramientas de redes de Cloud
-
Kat Berenberg y Brad Calder, Arquetipos de implementación para aplicaciones en la nube, Encuestas de computación de ACM, volumen 55, problema 3, artículo n°: 61, pp 1-48 ↩