Arquitectura de recuperación ante desastres para interrupciones de la infraestructura de nube

Last reviewed 2023-07-25 UTC

Este artículo forma parte de una serie en la que se trata la recuperación ante desastres (DR) en Google Cloud. En esta parte, se analiza el proceso para diseñar la arquitectura de cargas de trabajo mediante Google Cloud y los componentes básicos resilientes a las interrupciones en la infraestructura de nube.

La serie consta de estas partes:

Introducción

A medida que las empresas trasladan las cargas de trabajo a la nube pública, necesitan traducir sus conocimientos de cómo compilar sistemas locales resilientes en la infraestructura de hiperescalamiento de los proveedores de servicios en la nube, como Google Cloud. En este artículo, se asignan conceptos estándar de la industria sobre la recuperación ante desastres, como el RTO (objetivo de tiempo de recuperación) y el RPO (objetivo de punto de recuperación) a la infraestructura de Google Cloud.

La orientación de este documento sigue uno de los principios clave de Google para lograr una disponibilidad de servicio muy alta: planificar la falla. Si bien Google Cloud ofrece un servicio muy confiable, ocurrirán desastres naturales, cortes de fibra y errores complejos de infraestructura; estos pueden causar interrupciones. La planificación para las interrupciones permite que los clientes de Google Cloud compilen aplicaciones que se ejecuten de manera predecibles durante estos eventos inevitables mediante el uso de productos de Google Cloud con mecanismos de DR “integrados”.

La recuperación ante desastres es un tema amplio que cubre mucho más que las fallas de infraestructura, como los errores de software o la corrupción de datos, y debes tener un plan integral de extremo a extremo. Sin embargo, este artículo se centra en una parte de un plan de DR general: cómo diseñar aplicaciones que sean resilientes a las interrupciones de la infraestructura de nube. En concreto, se explica lo siguiente:

  1. La infraestructura de Google Cloud, cómo se manifiestan los eventos de desastre como interrupciones de Google Cloud y cómo Google Cloud está diseñado para minimizar la frecuencia y el alcance de las interrupciones
  2. Una guía de planificación de la arquitectura que proporciona un framework para categorizar y diseñar aplicaciones según los resultados de confiabilidad deseados
  3. Una lista detallada de productos de Google Cloud seleccionados que ofrecen funciones de DR integradas que tal vez quieras usar en tu aplicación

Para obtener más detalles sobre la planificación general de la DR y el uso de Google Cloud como componente de tu estrategia de DR local, consulta la Guía de planificación para la recuperación ante desastres. Aunque la alta disponibilidad es un concepto muy relacionado con la recuperación ante desastres, no se aborda en este artículo. Si deseas obtener más detalles sobre la arquitectura de una alta disponibilidad, consulta el framework de la arquitectura de Google Cloud.

Nota sobre la terminología: Este artículo hace referencia a la disponibilidad cuando se describe la capacidad de un producto de que se acceda a él de manera significativa y se use a lo largo del tiempo, mientras que la confiabilidad se refiere a un conjunto de atributos que incluye la disponibilidad, además de funciones como la durabilidad y la corrección.

Cómo está diseñado Google Cloud para ofrecer resiliencia

Centros de datos de Google

Los centros de datos tradicionales se basan en maximizar la disponibilidad de componentes individuales. En la nube, la escala permite a operadores como Google distribuir servicios en muchos componentes mediante tecnologías de virtualización y, por lo tanto, superar la confiabilidad tradicional de los componentes. Esto significa que puedes dejar de enfocar la mentalidad de la arquitectura de confiabilidad en los innumerables detalles que te preocupaban en las instalaciones locales. En lugar de preocuparte por los distintos modos de falla de los componentes, como el enfriamiento y la entrega de energía, puedes planificar en torno a los productos de Google Cloud y sus métricas de confiabilidad indicadas. Estas métricas reflejan el riesgo de interrupción agregado de toda la infraestructura subyacente. De esta manera, puedes enfocarte mucho más en el diseño, la implementación y las operaciones de la aplicación en lugar de la administración de infraestructura.

Google diseña su infraestructura para cumplir con los objetivos de disponibilidad agresivos en función de nuestra vasta experiencia en el desarrollo y la ejecución de centros de datos modernos. Google es uno de los líderes mundiales en el diseño de centros de datos. Cada tecnología de centro de datos, desde la electricidad hasta el enfriamiento y las redes, tiene sus propias redundancias y mitigaciones, incluidos los planes de FMEA. El diseño de los centros de datos de Google balancea estos riesgos variados y presenta a los clientes un nivel coherente y esperado de disponibilidad para los productos de Google Cloud. Google usa su experiencia para modelar la disponibilidad de la arquitectura general del sistema físico y lógico a fin de garantizar que el diseño del centro de datos cumpla con las expectativas. Los ingenieros de Google hacen grandes esfuerzos operativos para garantizar que se cumplan esas expectativas. Es normal que la disponibilidad real exceda nuestros objetivos de diseño por un margen amplio.

Cuando se extraen todos estos riesgos y mitigaciones de los centros de datos en los productos para los usuarios, Google Cloud te evita esas responsabilidades operativas y de diseño. En cambio, puedes enfocarte en la confiabilidad integrada en el diseño de las regiones y las zonas de Google Cloud.

Regiones y zonas

Los productos de Google Cloud se proporcionan en una gran cantidad de regiones y zonas. Las regiones son áreas geográficas independientes que contienen tres zonas o más. Las zonas representan grupos de recursos de procesamiento físicos dentro de una región que tienen un alto grado de independencia entre sí en términos de infraestructura física y lógica. Proporcionan conexiones de red de latencia baja y ancho de banda alto a otras zonas de la misma región. Por ejemplo, la región asia-northeast1 en Japón contiene tres zonas: asia-northeast1-a, asia-northeast1-b y asia-northeast1-c.

Los productos de Google Cloud se dividen en recursos zonales, regionales y multirregionales.

Los recursos zonales se alojan en una sola zona. Una interrupción del servicio en esa zona puede afectar a todos los recursos de esa zona. Por ejemplo, una instancia de Compute Engine se ejecuta en una zona única y especificada. Si una falla de hardware interrumpe el servicio en esa zona, esa instancia de Compute Engine no estará disponible mientras dure la interrupción.

Los recursos regionales se implementan de forma redundante en varias zonas dentro de una región. Esto les brinda mayor confiabilidad en comparación con los recursos zonales.

Los recursos multirregionales se distribuyen dentro de las regiones y entre ellas. En general, los recursos multirregionales son más confiables que los regionales. Sin embargo, a este nivel, los productos deben optimizar la disponibilidad, el rendimiento y la eficiencia de los recursos. Como resultado, es importante comprender las compensaciones de cada producto multirregional que decidas usar. Estas compensaciones se documentan de forma específica para cada producto más adelante en este documento.

Ejemplos de productos de Google Cloud zonales, regionales y multirregionales

Cómo aprovechar las zonas y las regiones para lograr la confiabilidad

Las SRE de Google administran y escalan productos para usuarios globales de alta confiabilidad, como Gmail y Búsqueda, mediante una variedad de técnicas y tecnologías que aprovechan sin problemas la infraestructura de procesamiento en todo el mundo. Esto incluye el redireccionamiento del tráfico desde ubicaciones no disponibles mediante el balanceo de cargas global, la ejecución de varias réplicas en varias ubicaciones en todo el planeta y la replicación de datos en distintos lugares. Estas mismas capacidades están disponibles para los clientes de Google Cloud a través de productos como Cloud Load Balancing, Google Kubernetes Engine y Cloud Spanner.

En general, Google Cloud diseña productos a fin de entregar los siguientes niveles de disponibilidad para zonas y regiones:

Recurso Ejemplos Objetivo del diseño de disponibilidad Tiempo de inactividad implícito
Zonal Compute Engine, Persistent Disk 99.9% 8.75 horas al año
Regional Cloud Storage regional, Persistent Disk replicado, GKE regional 99.99% 52 minutos al año

Compara los objetivos del diseño de disponibilidad de Google Cloud con el nivel aceptable de tiempo de inactividad para identificar los recursos apropiados de Google Cloud. Si bien los diseños tradicionales se enfocan en mejorar la disponibilidad a nivel del componente para mejorar la disponibilidad resultante de la aplicación, los modelos de la nube se enfocan en la composición de los componentes a fin de lograr este objetivo. Muchos productos dentro de Google Cloud usan esta técnica. Por ejemplo, Cloud Spanner ofrece una base de datos multirregional que compone varias regiones para entregar una disponibilidad del 99.999%.

La composición es importante porque, sin ella, la disponibilidad de la aplicación no puede superar la de los productos de Google Cloud que usas. De hecho, a menos que la aplicación nunca falle, tendrá una disponibilidad menor que los productos de Google Cloud subyacentes. En el resto de esta sección, se muestra cómo puedes usar una composición de productos zonales y regionales para lograr una mayor disponibilidad de la aplicación que la que proporcionan una sola zona o región. En la próxima sección, se proporciona una guía práctica para aplicar estos principios a tus aplicaciones.

Planifica los alcances de interrupción de zonas

Las fallas de infraestructura suelen causar interrupciones del servicio en una sola zona. Dentro de una región, las zonas están diseñadas para minimizar el riesgo de fallas correlacionadas con otras zonas, y una interrupción del servicio en una zona no suele afectar el servicio desde otra zona en la misma región. Una interrupción con alcance a una zona no siempre implica que toda la zona no esté disponible; solo define el límite del incidente. Es posible que una interrupción zonal no tenga ningún efecto tangible en los recursos específicos de esa zona.

Es un caso menos frecuente, pero también es importante tener en cuenta que varias zonas, en algún momento, experimentarán una interrupción correlacionada en una sola región. Cuando dos o más zonas experimentan una interrupción, se aplica la estrategia de alcance de la interrupción regional que aparece a continuación.

Los recursos regionales están diseñados para ser resistentes a las interrupciones zonales mediante la entrega del servicio desde una composición de varias zonas. Si se interrumpe una de las zonas que respaldan un recurso regional, el recurso queda disponible de manera automática desde otra zona. Revisa con cuidado la descripción de la capacidad del producto en el apéndice para obtener más detalles.

Google Cloud solo ofrece algunos recursos zonales, como las máquinas virtuales (VM) de Compute Engine y Persistent Disk. Si planeas usar recursos zonales, tendrás que realizar tu propia composición de recursos mediante el diseño, la compilación y la prueba de la conmutación por error y la recuperación entre recursos zonales ubicados en varias zonas. Estas son algunas de las estrategias:

  • Enrutar con rapidez el tráfico a máquinas virtuales en otra zona mediante Cloud Load Balancing cuando una verificación de estado determina que una zona tiene problemas
  • Usar plantillas de instancias o grupos de instancias administrados de Compute Engine para ejecutar y escalar instancias de VM idénticas en varias zonas
  • Usar Persistent Disk regional para replicar de forma síncrona los datos en otra zona de una región. Consulta Opciones de alta disponibilidad mediante PD regionales para obtener más detalles

Planifica los alcances de interrupción regional

Una interrupción regional es una interrupción del servicio que afecta a más de una zona en una sola región. Estas son interrupciones más grandes y menos frecuentes, y pueden ser consecuencia de desastres naturales o fallas en la infraestructura a gran escala.

Si un producto regional está diseñado para proporcionar una disponibilidad del 99.99%, una interrupción puede traducirse a casi una hora de inactividad para un producto específico cada año. Por lo tanto, es posible que tus aplicaciones esenciales necesiten contar con un plan de DR multirregional si no esta duración de interrupción es inaceptable.

Los recursos multirregionales están diseñados para ser resistentes a las interrupciones regionales mediante la entrega del servicio en varias regiones. Como se describió antes, los productos multirregionales compensan la latencia, la coherencia y el costo. La compensación más común se da entre la replicación de datos síncrona y la replicación asíncrona. La replicación asíncrona ofrece menos latencia al costo de riesgo de pérdida de datos durante una interrupción. Por lo tanto, es importante verificar la descripción de la capacidad del producto en el apéndice para obtener más detalles.

Si quieres usar recursos regionales y seguir siendo resiliente ante las interrupciones regionales, debes diseñar tu propia composición de recursos. Para ello, diseña, compila y prueba la conmutación por error y la recuperación entre los recursos regionales ubicados en varias regiones. Además de las estrategias zonales anteriores, que también puedes aplicar a otras regiones, ten en cuenta lo siguiente:

  • Los recursos regionales deben replicar los datos en una región secundaria, en una opción de almacenamiento multirregional, como Cloud Storage, o en una opción de nube híbrida, como Anthos.
  • Una vez que tengas una mitigación regional ante interrupciones, pruébala con frecuencia. Si hay algo peor que pensar que eres resistente a una interrupción de una sola región, es descubrir que ese no es el caso cuando ocurre de verdad.

Enfoque de disponibilidad y resiliencia de Google Cloud

Google Cloud supera con regularidad sus objetivos de diseño de disponibilidad, pero no debes suponer que este rendimiento anterior sólido es la disponibilidad mínima que puedes diseñar. En cambio, debes seleccionar dependencias de Google Cloud cuyos objetivos para los que se diseñaron superan la confiabilidad prevista de la aplicación, de modo que el tiempo de inactividad de la aplicación más el tiempo de inactividad de Google Cloud entreguen el resultado que buscas.

Un sistema bien diseñado puede responder la pregunta “¿Qué sucede cuando una zona o región tiene una interrupción de 1, 5, 10 o 30 minutos?” Esto se debe tener en cuenta en muchas capas, incluidas las siguientes:

  • ¿Qué experimentarán mis clientes durante una interrupción?
  • ¿Cómo detecto que hay una interrupción en curso?
  • ¿Qué sucede con mi solicitud durante una interrupción?
  • ¿Qué sucede con mis datos durante una interrupción?
  • ¿Qué le sucede a mis otras aplicaciones como consecuencia de una interrupción (debido a las dependencias cruzadas)?
  • ¿Qué debo hacer para recuperarme después de que se resuelve una interrupción? ¿Quién lo hace?
  • ¿A quién debo notificar sobre una interrupción? ¿En qué período?

Guía paso a paso a fin de diseñar la recuperación ante desastres para aplicaciones en Google Cloud

En las secciones anteriores, se explicó cómo Google compila la infraestructura de nube y algunos enfoques para abordar las interrupciones zonales y regionales.

En esta sección, te ayudamos a desarrollar un framework para aplicar el principio de composición a tus aplicaciones en función de los resultados de confiabilidad deseados.

Las aplicaciones de clientes en Google Cloud que se orientan a los objetivos de recuperación ante desastres como RTO y RPO deben diseñarse para que las operaciones críticas del negocio, sujetas a RTO/RPO, solo tengan dependencias en los componentes del plano de datos que sean responsables del procesamiento continuo de las operaciones para el servicio. En otras palabras, estas operaciones fundamentales para el cliente no deben depender de las operaciones del plano de administración, que administran el estado de configuración y la configuración de envío al plano de control y al plano de datos.

Por ejemplo, los clientes de Google Cloud que deseen lograr el RTO para operaciones fundamentales no deben depender de una API de creación de VM o de la actualización de un permiso de IAM.

Paso 1: Reúne los requisitos existentes

El primer paso es definir los requisitos de disponibilidad para tus aplicaciones. La mayoría de las empresas ya tienen algún nivel de orientación de diseño en este espacio, que se puede desarrollar de forma interna o derivar de leyes u otros requisitos legales. En general, esta guía de diseño se codifica en dos métricas clave: el objetivo de tiempo de recuperación (RTO) y el objetivo de punto de recuperación (RPO). En términos comerciales, el RTO se traduce como “cuánto tiempo transcurre después de un desastre hasta que vuelvo a estar activo y listo para ejecutar”. El RPO se traduce como “cuántos datos puedo perder si ocurre un desastre”.

Una escala que muestra el tiempo El evento está en el medio. En el extremo izquierdo, aparece el RPO con las palabras “Se pierden estas escrituras” (These writes are lost). En el extremo derecho, aparece el RTO con las palabras “Se reanuda el servicio normal” (Normal service resumes).

A lo largo de la historia, las empresas definieron los requisitos de RTO y RPO para un rango amplio de eventos de desastres, desde fallas de componentes hasta terremotos. Esto tenía sentido en el mundo local en el que los planificadores debían asignar los requisitos de RTO y RPO a través de toda la pila de software y hardware. En la nube, ya no necesitas definir tus requisitos con tanto detalles porque el proveedor se encarga de eso. En cambio, puedes definir tus requisitos de RTO y RPO en términos del alcance de la pérdida (zonas o regiones completas) sin especificar los motivos subyacentes. Para Google Cloud, esto simplifica la recopilación de requisitos a 3 situaciones: una interrupción zonal, una interrupción regional o la interrupción de varias regiones, que es muy poco probable.

Ya que se reconoce que no todas las aplicaciones tienen la misma importancia, la mayoría de los clientes clasifican sus aplicaciones en niveles de importancia, en los que se puede aplicar un requisito específico de RTO y RPO. Cuando se combinan, el RTO, el RPO y la importancia de la aplicación optimizan el proceso de diseñar la arquitectura de una aplicación determinada y dan respuesta a las siguientes preguntas:

  1. ¿La aplicación debe ejecutarse en varias zonas en la misma región o en varias zonas en varias regiones?
  2. ¿De qué productos de Google Cloud puede depender la aplicación?

Este es un ejemplo del resultado del ejercicio de recopilación de requisitos:

El RTO y el RPO por importancia de la aplicación para la organización de ejemplo:

Importancia de la aplicación % de apps Apps de ejemplo Interrupción zonal Interrupción regional
Nivel 1

(más importante)

5% Por lo general, las aplicaciones globales y externas orientadas al cliente, como los pagos en tiempo real y las vidrieras de comercio electrónico. RTO de cero

RPO de cero

RTO de cero

RPO de cero

Nivel 2 35% Por lo general, las aplicaciones regionales o las aplicaciones internas importantes como CRM o ERP. RTO de 15 min

RPO de 15 min

RTO de 1 h

RPO de 1 h

Nivel 3

(menos importante)

60% Por lo general, las aplicaciones de equipos o departamentos, como la oficina administrativa, las reservas, los viajes internos, la contabilidad y el departamento de RR.HH. RTO de 1 h

RPO de 1 h

RTO de 12 horas

RPO de 12 h

Paso 2: Asignación de capacidades a los productos disponibles

El segundo paso es comprender las capacidades de resiliencia de los productos de Google Cloud que usarán tus aplicaciones. La mayoría de las empresas revisan la información relevante de los productos y, luego, agregan orientación sobre cómo modificar las arquitecturas a fin de adaptarse a las brechas entre las capacidades de los productos y los requisitos de resiliencia. En esta sección, se abarcan algunas áreas comunes y recomendaciones sobre las limitaciones de datos y aplicaciones en este espacio.

Como se mencionó antes, los productos habilitados para DR de Google están pensados, a grandes rasgos, para dos tipos de alcances de interrupción: regional y zonal. Cuando se trata de DR, se debe planificar de la misma manera para las interrupciones parciales y las interrupciones totales. Esto brinda una matriz inicial de alto nivel de qué productos son adecuados para cada situación de forma predeterminada:

Funciones generales de los productos de Google Cloud
(consulta el Apéndice para conocer las funciones específicas de productos)

Todos los productos de Google Cloud Productos regionales de Google Cloud con replicación automática entre zonas Productos multirregionales o globales de Google Cloud con replicación automática en todas las regiones
Error de un componente dentro de una zona Cubierto* Cubierto Cubierto
Interrupción zonal No cubierto Cubierto Cubierto
Interrupción regional No cubierto No cubierto Cubierto

* Todos los productos de Google Cloud son resilientes a la falla de componentes, excepto en los casos específicos que se indican en la documentación del producto. Por lo general, son situaciones en las que el producto ofrece acceso directo o asignación estática a un hardware de especialidad, como la memoria o los discos de estado sólido (SSD).

Cómo el RPO limita las opciones de producto

En la mayoría de las implementaciones de nube, la integridad de los datos es el aspecto más significativo desde el punto de vista arquitectónico para un servicio. Al menos algunas aplicaciones tienen un requisito de RPO de cero, lo que significa que no se deberían perder datos en caso de que ocurra una interrupción. Por lo general, esto requiere que los datos se repliquen de forma síncrona en otra zona o región. La replicación síncrona tiene compensaciones de costo y latencia, por lo que, si bien muchos productos de Google Cloud proporcionan replicación síncrona entre zonas, solo unos pocos la proporcionan en regiones. Esta compensación entre el costo y la complejidad significa que no es inusual que diferentes tipos de datos dentro de una aplicación tengan diferentes valores de RPO.

En los datos con un RPO mayor que cero, las aplicaciones pueden aprovechar la replicación asíncrona. La replicación asíncrona es aceptable cuando los datos perdidos se pueden volver a crear con facilidad o se pueden recuperar de una fuente de datos dorada si es necesario. También puede ser una opción razonable cuando una pequeña pérdida de datos es una compensación aceptable en el contexto de las duraciones previstas para las interrupciones zonales y regionales. También es relevante que, durante una interrupción transitoria, los datos escritos en la ubicación afectada, pero que aún no se replicaron en otra ubicación, por lo general estén disponibles después de que se resuelva la interrupción. Esto significa que el riesgo de pérdida permanente de los datos es menor que el riesgo de perder el acceso a los datos durante una interrupción.

Acciones clave: Determina si realmente necesitas un RPO de cero y, si es así, si puedes hacerlo para un subconjunto de datos; esto aumenta de forma notable el rango de servicios habilitados para DR disponibles. En Google Cloud, alcanzar un RPO de cero implica usar, en su mayoría, productos regionales para la aplicación, que, en la configuración predeterminada, son resilientes a las interrupciones a escala zonal, pero no a escala regional.

Cómo el RTO limita las opciones del producto

Uno de los principales beneficios de la computación en la nube es la capacidad de implementar la infraestructura a pedido. Sin embargo, no es lo mismo que la implementación instantánea. El valor de RTO de tu aplicación debe adaptarse al RTO combinado de los productos de Google Cloud que usa la aplicación y a las acciones que deban realizar los ingenieros o SRE para reiniciar las VM o los componentes de la aplicación. Un RTO medido en minutos significa diseñar una aplicación que se recupere de forma automática de un desastre sin intervención humana o con pasos mínimos, como presionar un botón para una conmutación por error. El costo y la complejidad de este tipo de sistema siempre han sido muy altos, pero los productos de Google Cloud, como los balanceadores de cargas y los grupos de instancias, hacen que este diseño sea mucho más accesible y sencillo. Por lo tanto, debes tener en cuenta la conmutación por error y la recuperación automatizadas para la mayoría de las aplicaciones. Ten en cuenta que diseñar un sistema para este tipo de conmutación por error en caliente en todas las regiones es complicado y costoso; solo una fracción muy pequeña de los servicios importantes justifican esta capacidad.

La mayoría de las aplicaciones tendrá un RTO de entre una hora y un día, lo que permite una conmutación por error cálida en una situación de desastre, con algunos componentes de la aplicación que se ejecutan todo el tiempo en modo de espera, como las bases de datos, mientras que otros se escalan horizontalmente durante un desastre real, como los servidores web. En el caso de estas aplicaciones, debes considerar la automatización para los eventos de escalamiento horizontal. Los servicios con un RTO de más de un día son los de menor importancia y a menudo se pueden recuperarse desde una copia de seguridad o volver a crearse desde cero.

Acciones clave: Determina si en verdad necesitas un RTO de (alrededor de) cero para la conmutación por error regional y, de ser así, si puedes hacerlo para un subconjunto de los servicios. Esto cambia el costo de ejecutar y mantener tu servicio.

Paso 3: Desarrolla tus propias arquitecturas y guías de referencia

El último paso recomendado es compilar tus propios patrones de arquitectura específicos de la empresa para ayudar a tus equipos a estandarizar su enfoque sobre la recuperación ante desastres. La mayoría de los clientes de Google Cloud producen una guía destinada a sus equipos de desarrollo que hace coincidir sus expectativas individuales de resiliencia empresarial con las dos categorías principales de interrupciones en Google Cloud. Esto permite que los equipos clasifiquen con facilidad qué productos habilitados para DR son adecuados en cada nivel de importancia.

Crea lineamientos para productos

La tabla de RTO y RPO de ejemplo anterior es una guía hipotética que detalla qué productos se permitirían de forma predeterminada para cada nivel de importancia. Ten en cuenta que, de forma predeterminada, ciertos productos se identificaron como no adecuados. Siempre puedes agregar tus propios mecanismos de replicación y conmutación por error para habilitar la sincronización entre zonas o regiones, pero este ejercicio está más allá del alcance de este artículo. En las tablas, también encontrarás vínculos a más información sobre cada producto para ayudarte a comprender sus capacidades en relación con la administración de las interrupciones zonales y regionales.

Patrones de arquitectura de muestra para la organización de ejemplo: Resiliencia para las interrupciones zonales:

Producto de Google Cloud ¿El producto cumple con los requisitos de interrupción zonal para la organización de ejemplo (con la configuración adecuada del producto)?
Nivel 1 Nivel 2 Nivel 3
Compute Engine No No No
Dataflow No No No
BigQuery No No
GKE
Cloud Storage
Cloud SQL No
Cloud Spanner
Cloud Load Balancing

Esta tabla es un ejemplo basado solo en los niveles hipotéticos descritos con anterioridad.

Patrones de arquitectura de muestra para la organización de ejemplo: Resiliencia para las interrupciones regionales:

Producto de Google Cloud ¿El producto cumple con los requisitos de interrupción regional para la organización de ejemplo (con la configuración adecuada del producto)?
Nivel 1 Nivel 2 Nivel 3
Compute Engine
Dataflow No No No
BigQuery No No
GKE
Cloud Storage No No No
Cloud SQL
Cloud Spanner
Cloud Load Balancing

Esta tabla es un ejemplo basado solo en los niveles hipotéticos descritos con anterioridad.

A fin de mostrar cómo se usarían estos productos, en las siguientes secciones, se explican algunas arquitecturas de referencia para cada uno de los niveles hipotéticos de importancia de la aplicación. Estas son descripciones de alto nivel hechas de manera deliberada para explicar las decisiones clave de la arquitectura y no representan un diseño de solución completo.

Arquitectura de ejemplo de nivel 3

Importancia de la aplicación Interrupción zonal Interrupción regional
Nivel 3
(menos importante)
RTO de 12 horas
RPO de 24 horas
RTO de 28 días
RPO de 24 horas

Una arquitectura de ejemplo de nivel 3 que usa productos de Google Cloud

(Los íconos en gris muestran la infraestructura que se habilitará para permitir la recuperación)

En esta arquitectura, se describe una aplicación tradicional de cliente y servidor: los usuarios internos se conectan a una aplicación que se ejecuta en una instancia de procesamiento respaldada por una base de datos para el almacenamiento continuo.

Es importante tener en cuenta que esta arquitectura admite valores de RTO y RPO superiores a los necesarios. Sin embargo, también debes considerar quitar pasos manuales adicionales cuando podrían resultar costosos o poco confiables. Por ejemplo, recuperar una base de datos a partir de una copia de seguridad nocturna podría admitir el RPO de 24 horas, pero esto suele requerir una persona capacitada, como un administrador de la base de datos que podría no estar disponible, en especial si varios servicios se vieron afectados al mismo tiempo. Con la infraestructura a pedido de Google Cloud, puedes compilar esta capacidad sin hacer una compensación de costo mayor, por lo que esta arquitectura usa la alta disponibilidad de Cloud SQL en lugar de una copia de seguridad o el restablecimiento manual para interrupciones zonales.

Decisiones clave de arquitectura para la interrupción zonal: RTO de 12 horas y RPO de 24 horas:

  • Un balanceador de cargas interno se usa a fin de proporcionar un punto de acceso escalable para los usuarios, lo que permite la conmutación por error automática a otra zona. Aunque el RTO es de 12 horas, los cambios manuales en las direcciones IP o incluso las actualizaciones del DNS pueden tardar más tiempo del esperado.
  • Un grupo de instancias administrado regional se configura con varias zonas, pero con recursos mínimos. Esto optimiza el costo, pero permite que las máquinas virtuales se escalen horizontalmente con rapidez en la zona de la copia de seguridad.
  • Una configuración de Cloud SQL de alta disponibilidad proporciona conmutación por error automática a otra zona. Las bases de datos son mucho más difíciles de volver a crear y restablecer en comparación con las máquinas virtuales de Compute Engine.

Decisiones clave de arquitectura para la interrupción regional: RTO de 28 días y RPO de 24 horas:

  • Un balanceador de cargas se construiría en la región 2 solo en caso de que se produzca una interrupción regional. Se usa Cloud DNS para proporcionar una capacidad de conmutación por error regional, organizada y manual, ya que la infraestructura en la región 2 solo estará disponible en caso de que se produzca una interrupción regional.
  • Un grupo de instancias administrado nuevo se construiría solo en caso de que se produzca una interrupción regional. Esto optimiza el costo y es poco probable que se invoque debido a la corta duración de la mayoría de las interrupciones regionales. Ten en cuenta que, a fin de simplificar el diagrama, no se muestran ni las herramientas asociadas necesarias para volver a implementar ni la copia de las imágenes de Compute Engine necesarias.
  • Se volvería a crear una instancia de Cloud SQL nueva y se restablecerían los datos desde una copia de seguridad. Una vez más, el riesgo de una interrupción prolongada en una región es muy baja, por lo que esta es otra compensación de optimización de costos.
  • Se usa Cloud Storage multirregional para almacenar estas copias de seguridad. Esto brinda resiliencia zonal y regional automática dentro de RTO y RPO.

Arquitectura de ejemplo de nivel 2

Importancia de la aplicación Interrupción zonal Interrupción regional
Nivel 2 RTO de 4 horas
RPO de cero
RTO de 24 horas
RPO de 4 horas

Una arquitectura de ejemplo de nivel2 que usa productos de Google Cloud

En esta arquitectura, se describe un almacén de datos con usuarios internos que se conectan a una capa de visualización de instancias de procesamiento, y una capa de transformación y transferencia de datos que propaga el almacén de datos de backend.

Algunos componentes individuales de esta arquitectura directamente no admiten el RPO requerido para su nivel. Sin embargo, debido a cómo se usan en conjunto, el servicio general cumple con el RPO. En este caso, como Dataflow es un producto zonal, sigue las recomendaciones para el diseño de alta disponibilidad a fin de evitar la pérdida de datos durante una interrupción. Sin embargo, la capa de Cloud Storage es la fuente dorada de estos datos y admite un RPO de cero. Como resultado, puedes volver a transferir cualquier dato perdido a BigQuery mediante la zona B en caso de una interrupción en la zona A.

Decisiones clave de arquitectura para la interrupción zonal: RTO de 4 horas y RPO de cero:

  • Se usa un balanceador de cargas a fin de proporcionar un punto de acceso escalable para los usuarios, lo que permite la conmutación por error automática a otra zona. Aunque el RTO es de 4 horas, los cambios manuales en las direcciones IP o incluso las actualizaciones del DNS pueden tardar más tiempo del esperado.
  • Se configura un grupo de instancias administrado regional para la capa de procesamiento de visualización de datos con varias zonas, pero con recursos mínimos. Esto optimiza el costo, pero permite que las máquinas virtuales se escalen horizontalmente con rapidez.
  • Se usa Cloud Storage regional como capa de etapa de pruebas para la transferencia inicial de datos, lo que proporciona resiliencia zonal automática.
  • Se usa Dataflow para extraer datos de Cloud Storage y transformarlos antes de cargarlos en BigQuery. En caso de que ocurra una interrupción zonal, este es un proceso sin estado que se puede reiniciar en otra zona.
  • BigQuery proporciona el backend del almacén de datos para el frontend de visualización de datos. Si se produce una interrupción zonal, se volverán a transferir los datos que se hayan perdido desde Cloud Storage.

Decisiones clave de arquitectura para la interrupción regional: RTO de 24 horas y RPO de 4 horas:

  • Se usa un balanceador de cargas en cada región a fin de proporcionar un punto de acceso escalable para los usuarios. Se usa Cloud DNS para proporcionar capacidad de conmutación por error regional, organizada y manual, ya que la infraestructura en la región 2 solo estará disponible en caso de que se produzca una interrupción regional.
  • Se configura un grupo de instancias administrado regional para la capa de procesamiento de visualización de datos con varias zonas, pero con recursos mínimos. No será accesible hasta que se vuelva a configurar el balanceador de cargas. Sin embargo, no se requiere una intervención manual.
  • Se usa Cloud Storage regional como capa de etapa de pruebas para la transferencia inicial de datos. Se carga al mismo tiempo en ambas regiones para cumplir con los requisitos de RPO.
  • Se usa Dataflow para extraer datos de Cloud Storage y transformarlos antes de cargarlos en BigQuery. Si se produce una interrupción regional, BigQuery se propagaría con los datos más recientes de Cloud Storage.
  • BigQuery proporciona el backend del almacén de datos. En las operaciones normales, esto se actualiza de manera intermitente. Si se produce una interrupción regional, se vuelven a transferir los datos más recientes desde Cloud Storage mediante Dataflow.

Arquitectura de ejemplo de nivel 1

Importancia de la aplicación Interrupción zonal Interrupción regional
Nivel 1
(más importante)
RTO de cero
RPO de cero
RTO de 4 horas
RPO de 1 hora

Una arquitectura de ejemplo de nivel 1 que usa productos de Google Cloud

En esta arquitectura, se describe una infraestructura de backend de apps para dispositivos móviles con usuarios externos que se conectan a un conjunto de microservicios que se ejecutan en GKE. Cloud Spanner proporciona la capa de almacenamiento de datos de backend para los datos en tiempo real, y los datos históricos se transmiten a un data lake de BigQuery en cada región.

Otra vez, algunos componentes individuales de esta arquitectura no admiten directamente el RPO requerido para su nivel. Sin embargo, debido a cómo se usan en conjunto, el servicio general sí lo admite. En este caso, BigQuery se usa para consultas analíticas. Cada región recibe datos de forma simultánea desde Cloud Spanner.

Decisiones clave de arquitectura para la interrupción zonal: RTO de cero y RPO de cero:

  • Se usa un balanceador de cargas a fin de proporcionar un punto de acceso escalable para los usuarios, lo que permite la conmutación por error automática a otra zona.
  • Se usa un clúster de GKE regional para la capa de aplicación que se configura con varias zonas. Esto logra el RTO de cero dentro de cada región.
  • Cloud Spanner multirregional se usa como capa de persistencia de datos y proporciona resiliencia automática de los datos de la zona y coherencia en la transacción.
  • BigQuery proporciona la capacidad de crear estadísticas para la aplicación. Cada región recibe datos provenientes de Cloud Spanner de manera independiente y la aplicación accede a ellos de la misma forma.

Decisiones clave de arquitectura para la interrupción regional: RTO de 4 horas y RPO de 1 hora:

  • Se usa un balanceador de cargas a fin de proporcionar un punto de acceso escalable para los usuarios, lo que permite la conmutación por error automática a otra región.
  • Se usa un clúster de GKE regional para la capa de aplicación que se configura con varias zonas. Si se produce una interrupción regional, el clúster en la región alternativa se escala de manera automática para tomar la carga de procesamiento adicional.
  • Se usa Cloud Spanner multirregional como capa de persistencia de datos, lo que proporciona resiliencia automática de los datos de la región y coherencia en la transacción. Este es el componente clave para lograr la RPO de 1 hora.
  • BigQuery proporciona la capacidad de crear estadísticas para la aplicación. Cada región recibe datos provenientes de Cloud Spanner de manera independiente y la aplicación accede a ellos de la misma forma. Esta arquitectura compensa el componente de BigQuery, lo que le permite cumplir con los requisitos generales de la aplicación.

Apéndice: Referencia del producto

En esta sección, se describen la arquitectura y las capacidades de DR de los productos de Google Cloud que más se usan en las aplicaciones del cliente y que se pueden aprovechar con facilidad para cumplir con tus requisitos de DR.

Temas comunes

Muchos productos de Google Cloud ofrecen opciones de configuración regionales o multirregionales. Los productos regionales son resilientes a las interrupciones zonales, mientras que los productos globales y multirregionales son resilientes a las interrupciones regionales. En general, esto significa que, durante una interrupción, la aplicación experimenta interrupciones mínimas. Google logra estos resultados a través de algunos enfoques arquitectónicos comunes, que reflejan la guía de arquitectura anterior.

  • Implementación redundante: Los backends de la aplicación y el almacenamiento de datos se implementan en varias zonas dentro de una región y en varias regiones dentro de una ubicación multirregional.
  • Replicación de datos: Los productos usan la replicación síncrona o asíncrona en las ubicaciones redundantes.

    • La replicación síncrona significa que, cuando tu aplicación realiza una llamada a la API para crear o modificar los datos que almacenó el producto, recibe una respuesta correcta solo una vez que el producto escribió los datos en varias ubicaciones. La replicación síncrona garantiza que no pierdas el acceso a ninguno de tus datos durante una interrupción en la infraestructura de Google Cloud porque todos están disponibles en una de las ubicaciones de backend disponibles.

      Aunque esta técnica proporciona la máxima protección de los datos, puede tener compensaciones en términos de latencia y rendimiento. Los productos multirregionales que usan la replicación síncrona experimentan esta compensación de manera más significativa, por lo general, en décimas o centésimas de milisegundos de latencia adicional.

    • La replicación asíncrona significa que, cuando tu aplicación realiza una llamada a la API para crear o modificar los datos que almacenó el producto, recibe una respuesta correcta una vez que el producto escribió los datos en una sola ubicación. Luego de la solicitud de escritura, el producto replica los datos en ubicaciones adicionales.

      Esta técnica proporciona una latencia menor y una capacidad de procesamiento más alta en la API que la replicación síncrona, pero a expensas de la protección de los datos. Si la ubicación en la que escribiste los datos sufre una interrupción antes de que se complete la replicación, perderás el acceso a esos datos hasta que la interrupción en la ubicación se resuelva.

  • Controla las interrupciones con el balanceo de cargas: Google Cloud usa el balanceo de cargas de software para enrutar las solicitudes a los backends de aplicaciones adecuados. En comparación con otros enfoques como el balanceo de cargas de DNS, este enfoque reduce el tiempo de respuesta del sistema a una interrupción. Cuando se produce una interrupción en una ubicación de Google Cloud, el balanceador de cargas detecta con rapidez que el backend implementado en esa ubicación se encuentra “en mal estado” y dirige todas las solicitudes a un backend en una ubicación alternativa. Esto permite que el producto siga entregando las solicitudes de tu aplicación durante una interrupción en la ubicación. Cuando se resuelve la interrupción en la ubicación, el balanceador de cargas detecta la disponibilidad de los backends del producto en esa ubicación y reanuda el envío de tráfico hacia allí.

Access Context Manager

Access Context Manager permite a las empresas configurar niveles de acceso que se asignan a una política que se define en los atributos de la solicitud. Las políticas se duplican de forma regional.

En el caso de una interrupción zonal, las solicitudes a zonas no disponibles se entregan de forma automática y transparente desde otras zonas disponibles en la región.

En el caso de una interrupción regional, los cálculos de políticas de la región afectada no estarán disponibles hasta que la región vuelva a estar disponible.

AlloyDB para PostgreSQL

AlloyDB para PostgreSQL es un servicio de base de datos completamente administrado y compatible con PostgreSQL. AlloyDB para PostgreSQL ofrece alta disponibilidad en una región a través de los nodos redundantes de su instancia principal que se encuentran en dos zonas diferentes de la región. La instancia principal mantiene la disponibilidad regional mediante la activación de una conmutación por error automática a la zona en espera si la zona activa encuentra un problema. Regional Storage garantiza la durabilidad de los datos en caso de pérdida de una zona.

Como método adicional de recuperación ante desastres, AlloyDB para PostgreSQL usa la replicación entre regiones a fin de proporcionar capacidades de recuperación ante desastres mediante la replicación asíncrona de los datos de tu clúster principal en clústeres secundarios ubicados en regiones diferentes de Google Cloud.

Interrupción zonal: Durante el funcionamiento normal, solo uno de los dos nodos de una instancia principal de alta disponibilidad está activo y entrega todas las escrituras de datos. Este nodo activo almacena los datos en la capa de almacenamiento regional independiente del clúster.

AlloyDB para PostgreSQL detecta de forma automática las fallas a nivel de zona y activa una conmutación por error para restablecer la disponibilidad de la base de datos. Durante la conmutación por error, AlloyDB para PostgreSQL inicia la base de datos en el nodo en espera, que ya está aprovisionada en una zona diferente. Las conexiones de bases de datos nuevas se enrutan de forma automática a esta zona.

Desde la perspectiva de una aplicación cliente, una interrupción zonal se parece a una interrupción temporal de la conectividad de red. Una vez que se completa la conmutación por error, un cliente puede volver a conectarse a la instancia en la misma dirección mediante las mismas credenciales, sin pérdida de datos.

Interrupción regional: La replicación entre regiones usa la replicación asíncrona, que permite que la instancia principal confirme las transacciones antes de que se confirmen en las réplicas. La diferencia de tiempo entre el momento en que una transacción se confirma en la instancia principal y en que se confirma en la réplica se conoce como demora de replicación. La diferencia de tiempo entre el momento en que la instancia principal genera el registro de escritura anticipada (WAL) y el momento en que este llega a la réplica se conoce como demora de vaciado. El retraso de replicación y el retraso de vaciado dependen de la configuración de la instancia de la base de datos y de la carga de trabajo generada por el usuario.

Si se produce una interrupción regional, puedes ascender clústeres secundarios en una región diferente a un clúster principal independiente que admite escritura. Este clúster promocionado ya no replica los datos del clúster principal original con el que estaba asociado antes. Debido al retraso de vaciado, puede que se pierdan datos, ya que podría haber transacciones en la instancia principal original que no se propagaron al clúster secundario.

El RPO de replicación entre regiones se ve afectado por el uso de CPU del clúster principal y la distancia física entre la región del clúster principal y la región del clúster secundario. A fin de optimizar el RPO, recomendamos probar la carga de trabajo con una configuración que incluya una réplica para establecer un límite seguro de transacciones por segundo (TPS), que es el TPS continuo más alto que no acumula demora de vaciado. Si la carga de trabajo excede el límite seguro de TPS, la demora de vaciado se acumula, lo que puede afectar el RPO. Para limitar el retraso de la red, elige pares de regiones dentro del mismo continente.

Para obtener más información sobre la supervisión del retraso de la red y otras métricas de AlloyDB para PostgreSQL, consulta Supervisa instancias.

IA para prevención del lavado de dinero

La IA para la prevención del lavado de dinero (AML AI) proporciona una API para ayudar a las instituciones financieras globales a detectar de manera más eficaz y eficiente el lavado de dinero. La IA para la prevención del lavado de dinero es una oferta regional, lo que significa que los clientes pueden elegir la región, pero no las zonas que la conforman. Las cargas de los datos y el tráfico se balancean de forma automática entre zonas de una región. Las operaciones (por ejemplo, para crear una canalización o ejecutar una predicción) se escalan de forma automática en segundo plano y se balancean las cargas entre las zonas según sea necesario.

Interrupción zonal: AML AI almacena los datos para sus recursos de forma regional, replicados de forma síncrona. Cuando una operación de larga duración finaliza de forma correcta, se puede confiar en los recursos, sin importar las fallas zonales. El procesamiento también se replica entre zonas, pero el objetivo es la replicación en un balanceo de cargas y no una alta disponibilidad, por lo que una falla zonal durante una operación puede provocar un error en la operación. Si eso sucede, reintentar la operación puede solucionar el problema. Durante una interrupción zonal, los tiempos de procesamiento pueden verse afectados.

Interrupción regional: Los clientes eligen la región de Google Cloud en la que desean crear sus recursos de AML AI. Los datos nunca se replican en otras regiones. AML AI nunca enruta el tráfico del cliente a una región diferente. En el caso de una falla regional, Cloud Run volverá a estar disponible en cuanto se resuelva la interrupción.

Claves de API

Las claves de API proporcionan una administración de recursos escalable para las claves de API de un proyecto. Las claves de API son un servicio global, lo que significa que se pueden ver y acceder a ellas desde cualquier ubicación de Google Cloud. Sus datos y metadatos se almacenan de manera redundante en varias zonas y regiones.

Las claves de API son resilientes a las interrupciones zonales y regionales. En el caso de una interrupción zonal o regional, las claves de API continúan entregando solicitudes desde otra zona en la misma región o en región diferente.

Para obtener más información sobre las claves de API, consulta Descripción general de las claves de API.

Apigee

Apigee proporciona una plataforma segura, escalable y confiable para el desarrollo y la administración de API. Apigee ofrece implementaciones de una sola región y multirregionales.

Interrupción zonal: Los datos del entorno de ejecución del cliente se replican en varias zonas de disponibilidad. Por lo tanto, una interrupción de una sola zona no afecta a Apigee.

Interrupción regional: En las instancias de Apigee de una sola región, si una región falla, las instancias de Apigee no están disponibles en esa región y no se pueden restablecer a diferentes regiones. En las instancias de Apigee multirregionales, los datos se replican en todas las regiones de forma asíncrona. Por lo tanto, la falla de una región no reduce el tráfico por completo. Sin embargo, es posible que no puedas acceder a los datos no confirmados en la región con errores. Puedes desviar el tráfico de las regiones en mal estado. Para lograr una conmutación por error automática del tráfico, puedes configurar el enrutamiento de red con grupos de instancias administrados (MIG).

AutoML Translation

AutoML Translation es un servicio de traducción automática que te permite importar tus propios datos (pares de oraciones) a fin de entrenar modelos personalizados para tus necesidades específicas del dominio.

Interrupción zonal: AutoML Translation tiene servidores de procesamiento activos en varias zonas y regiones. También admite la replicación de datos síncrona entre zonas dentro de las regiones. Estas características ayudan a AutoML Translation a lograr una conmutación por error instantánea sin perder datos para las fallas zonales y sin la necesidad de entradas o ajustes de los clientes.

Interrupción regional: En el caso de una falla regional, AutoML Translation no está disponible.

Por lotes

Batch es un servicio completamente administrado que permite poner en cola, programar y ejecutar trabajos por lotes en Google Cloud. La configuración de los lotes se define a nivel de la región. Los clientes deben elegir una región para enviar sus trabajos por lotes, no una zona en una región. Cuando se envía un trabajo, Batch escribe datos