Patrones de arquitectura distribuidos

Last reviewed 2024-10-29 UTC

Cuando migres de un entorno de computación no híbrido o no multinube a una arquitectura híbrida o de múltiples nubes, primero considera las restricciones de tus aplicaciones existentes y cómo esas restricciones podrían provocar fallas en las aplicaciones. Esta consideración se vuelve más importante cuando tus aplicaciones o componentes de aplicaciones operan de forma distribuida en diferentes entornos. Después de considerar tus limitaciones, desarrolla un plan para evitarlas o superarlas. Asegúrate de considerar las capacidades únicas de cada entorno de computación en una arquitectura distribuida.

Consideraciones del diseño

Las siguientes consideraciones de diseño se aplican a los patrones de implementación distribuidos. Según la solución objetivo y los objetivos comerciales, la prioridad y el efecto de cada consideración pueden variar.

Latencia

En cualquier patrón de arquitectura que distribuya componentes de la aplicación (frontends, backends o microservicios) en diferentes entornos de computación, puede ocurrir latencia de comunicación. Esta latencia está influenciada por la conectividad de red híbrida (Cloud VPN y Cloud Interconnect) y la distancia geográfica entre el sitio local y las regiones de la nube, o entre regiones de la nube en una configuración de múltiples nubes. Por lo tanto, es fundamental evaluar los requisitos de latencia de tus aplicaciones y su sensibilidad a los retrasos de la red. Las aplicaciones que pueden tolerar la latencia son candidatas más adecuadas para la implementación distribuida inicial en un entorno híbrido o de múltiples nubes.

Arquitectura de estado temporal en comparación con la final

Para especificar las expectativas y las posibles implicaciones en el costo, la escala y el rendimiento, es importante analizar qué tipo de arquitectura necesitas y la duración prevista como parte de la etapa de planificación. Por ejemplo, si planeas usar una arquitectura híbrida o multinube durante mucho tiempo o de forma permanente, te recomendamos que uses Cloud Interconnect. Para reducir los costos de transferencia de datos salientes y optimizar el rendimiento de la red de conectividad híbrida, Cloud Interconnect aplica descuentos a los cargos por transferencia de datos salientes que cumplen con las condiciones de la tarifa de transferencia de datos con descuento.

Confiabilidad

La confiabilidad es una consideración importante cuando se diseñan sistemas de TI. La disponibilidad del tiempo de actividad es un aspecto esencial de la confiabilidad del sistema. En Google Cloud, puedes aumentar la resiliencia de una aplicación implementando componentes redundantes de esta en varias zonas de una sola región1 o en varias regiones, con capacidades de conmutación. La redundancia es uno de los elementos clave para mejorar la disponibilidad general de una aplicación. Para las aplicaciones con una configuración distribuida en entornos híbridos y de múltiples nubes, es importante mantener un nivel de disponibilidad coherente.

Para mejorar la disponibilidad de un sistema en un entorno local o en otros entornos de nube, considera qué redundancia de hardware o software (con mecanismos de conmutación por error) necesitas para tus aplicaciones y sus componentes. Idealmente, debes considerar la disponibilidad de un servicio o una aplicación en los diversos componentes y la infraestructura de asistencia (incluida la disponibilidad de conectividad híbrida) en todos los entornos. Este concepto también se conoce como la disponibilidad compuesta de una aplicación o un servicio.

Según las dependencias entre los componentes o servicios, la disponibilidad compuesta de una aplicación puede ser mayor o menor que la de un servicio o componente individual. Para obtener más información, consulta Disponibilidad compuesta: calcula la disponibilidad general de la infraestructura de nube.

Para lograr el nivel de confiabilidad del sistema que deseas, define métricas de confiabilidad claras y diseña aplicaciones que se autoreparen y resistan las interrupciones de manera eficaz en los diferentes entornos. Para ayudarte a definir las formas adecuadas de medir la experiencia del cliente de tus servicios, consulta Define tus objetivos de confiabilidad.

Conectividad híbrida y de múltiples nubes

Los requisitos de la comunicación entre los componentes de las aplicaciones distribuidas deben influir en la selección de una opción de conectividad de red híbrida. Cada opción de conectividad tiene sus ventajas y desventajas, así como factores específicos que se deben tener en cuenta, como el costo, el volumen de tráfico, la seguridad, etc. Para obtener más información, consulta la sección sobre consideraciones de diseño de conectividad.

Administración

Las herramientas de administración y supervisión coherentes y unificadas son esenciales para lograr configuraciones híbridas y de múltiples nubes exitosas (con o sin portabilidad de cargas de trabajo). A corto plazo, estas herramientas pueden aumentar los costos de desarrollo, pruebas y operaciones. Técnicamente, cuanto más proveedores de servicios en la nube uses, más compleja será la administración de tus entornos. La mayoría de los proveedores de servicios en la nube pública no solo tienen características diferentes, sino que también diferentes herramientas, ANS y APIs para administrar los servicios en la nube. Por lo tanto, compara las ventajas estratégicas de la arquitectura que seleccionaste con la posible complejidad a corto plazo en comparación con los beneficios a largo plazo.

Costo

Cada proveedor de servicios en la nube en un entorno multinube tiene sus propias métricas y herramientas de facturación. Para proporcionar una mejor visibilidad y paneles unificados, considera usar herramientas de administración y optimización de costos multinube. Por ejemplo, cuando se compilan soluciones que priorizan la nube en varios entornos de nube, los productos, los precios, los descuentos y las herramientas de administración de cada proveedor pueden crear inconsistencias de costos entre esos entornos.

Te recomendamos que tengas un método único y bien definido para calcular los costos completos de los recursos en la nube y proporcionar visibilidad de los costos. La visibilidad de costos es esencial para la optimización de costos. Por ejemplo, si combinas los datos de facturación de los proveedores de servicios en la nube que usas y el bloque de administración de costos de la nube de Looker de Google Cloud, puedes crear una vista centralizada de tus costos multinube. Esta vista puede ayudarte a proporcionar una vista de informes consolidada de tu inversión en varias nubes. Para obtener más información, consulta La estrategia para optimizar de manera eficaz la administración de costos de la facturación de la nube.

También te recomendamos que uses prácticas de FinOps para que los costos sean visibles. Como parte de una práctica sólida de FinOps, un equipo central puede delegar la toma de decisiones para la optimización de recursos a cualquier otro equipo involucrado en un proyecto para fomentar la responsabilidad individual. En este modelo, el equipo central debe estandarizar el proceso, los informes y las herramientas para la optimización de costos. Para obtener más información sobre los diferentes aspectos y recomendaciones de optimización de costos que debes tener en cuenta, consulta Google Cloud Architecture Framework: Optimización de costos.

Traslado de datos

El movimiento de datos es una consideración importante para la estrategia y la planificación de la arquitectura de las nubes híbridas y múltiples, en especial para los sistemas distribuidos. Las empresas deben identificar sus diferentes casos de uso comerciales, los datos que los potencian y cómo se clasifican los datos (para las industrias reguladas). También deben considerar cómo el almacenamiento, el uso compartido y el acceso a los datos de los sistemas distribuidos en diferentes entornos pueden afectar el rendimiento de la aplicación y la coherencia de los datos. Esos factores pueden influir en la aplicación y la arquitectura de la canalización de datos. El conjunto integral de opciones de movimiento de datos de Google Cloud permite que las empresas satisfagan sus necesidades específicas y adopten arquitecturas híbridas y multinube sin comprometer la simplicidad, la eficiencia ni el rendimiento.

Seguridad

Cuando se migran aplicaciones a la nube, es importante considerar las capacidades de seguridad que priorizan la nube, como la coherencia, la observabilidad y la visibilidad de seguridad unificada. Cada proveedor de servicios en la nube pública tiene su propio enfoque, prácticas recomendadas y capacidades de seguridad. Es importante analizar y alinear estas capacidades para crear una arquitectura de seguridad funcional y estándar. Los controles de IAM sólidos, la encriptación de datos, el análisis de vulnerabilidades y el cumplimiento de las reglamentaciones de la industria también son aspectos importantes de la seguridad en la nube.

Cuando planifiques una estrategia de migración, te recomendamos que analices las consideraciones mencionadas anteriormente. Pueden ayudarte a minimizar las posibilidades de introducir complejidades en la arquitectura a medida que crecen tus aplicaciones o volúmenes de tráfico. Además, diseñar y compilar una zona de destino casi siempre es un requisito para implementar cargas de trabajo empresariales en un entorno de nube. Una zona de destino ayuda a tu empresa a implementar, usar y escalar servicios en la nube de forma más segura en varias áreas y, además, incluye elementos diferentes, como identidades, administración de recursos, seguridad y herramientas de redes. Para obtener más información, consulta Diseño de la zona de destino en Google Cloud.

En los siguientes documentos de esta serie, se describen otros patrones de arquitectura distribuida:


  1. Las regiones de México, Montreal y Osaka tienen tres zonas en uno o dos centros de datos físicos. Estas regiones están en proceso de expansión a, al menos, tres centros de datos físicos. Para obtener más información, consulta Ubicaciones de Cloud y ANS de Google Cloud Platform. Para mejorar la confiabilidad de tus cargas de trabajo, considera una implementación multirregional.