Ser global
- 3 minutos
En la unidad anterior, describimos el escalado de los recursos de cómputo y cómo hacerlos más disponibles durante el proceso. También se recomienda agregar Azure Managed Redis para mejorar el rendimiento y escalar horizontalmente las bases de datos Azure SQL a través del particionamiento.
El siguiente paso, a medida que crece su negocio, podría ser ir globalmente. Sin embargo, hay algunas cosas que debe tener en cuenta antes de intentar implementar una arquitectura totalmente global.
Preguntas que debe formularse
La primera pregunta es: ¿Realmente necesita ir a nivel global?
Es importante comprender qué dolor tienen nuestros clientes antes de asumir una tarea de este tipo, así que hágase algunas preguntas más:
- ¿Puede acercarse el contenido a los usuarios a través de una red de entrega de contenido?
- ¿Realmente necesita escalar este sistema en particular en dos (o más) zonas geográficas? Por ejemplo, ¿un usuario de la Estados Unidos necesita tener exactamente la misma cuenta en el Reino Unido? ¿Serían más adecuados los sistemas independientes? Este patrón es común en el comercio electrónico.
- Si realmente necesita un sistema distribuido globalmente, ¿qué coherencia necesita para la base de datos? Es difícil lograr una coherencia sólida en todo el mundo. Los servicios como Cosmos DB admiten una fuerte coherencia en configuraciones multirregionales, pero conlleva importantes desventajas, entre ellas una mayor latencia, menor disponibilidad durante las interrupciones regionales y un mayor consumo de RU por operación.
Coherencia de datos
Echemos un vistazo más detenidamente al problema de la coherencia de los datos.
En la informática distribuida, la coherencia hace referencia a cómo up-to-date y uniforme los datos están en todas las réplicas de un sistema. Hay dos modelos de coherencia principales.
La coherencia fuerte ofrece una garantía de linealización. Se garantiza que las lecturas devuelven la versión confirmada más reciente de un elemento.
Y después hay coherencia final, la idea de que una base de datos o un sistema se convertirán finalmente en coherentes con el tiempo. No hay ninguna garantía de ordenación para las operaciones de lectura. En ausencia de más operaciones de escritura, las réplicas finalmente convergen.
Los servicios como Cosmos DB también ofrecen modelos de coherencia intermedios, como obsolescencia limitada, sesión y prefijo coherente, que proporcionan diferentes equilibrios entre el rendimiento y la actualización de datos.
Herramientas para ir a nivel global
Si realmente necesita escalar la aplicación globalmente, hay algunos servicios de Azure que pueden ayudarle a lograrlo. Echemos un vistazo a Azure Traffic Manager y Azure Front Door:
- Azure Traffic Manager es un servicio de equilibrio de carga basado en DNS global. Usa los sondeos de estado y DNS para enrutar a los usuarios al back-end correcto en función de las directivas de enrutamiento que haya definido. Este enrutamiento podría basarse en el rendimiento, la ubicación, el algoritmo 'round robin' u otros métodos. Una vez identificado un back-end correcto, los clientes siempre se conectan directamente al back-end.
- Azure Front Door es una red CDN en la nube moderna y un equilibrador de carga global, que ofrece varias funcionalidades de equilibrio de carga de nivel 7 para las aplicaciones. Proporciona la aceleración de sitios dinámicos (DSA) junto con el equilibrio de carga global con conmutación por error casi en tiempo real. Es un servicio de alta disponibilidad y escalable, totalmente administrado por Azure.
Azure Front Door es básicamente un equilibrador de carga basado en HTTP global. El cliente establece una conexión con Front Door, por lo que Front Door está actuando como proxy de la solicitud de los usuarios. Si el elemento solicitado no está en la memoria caché, se identifica la regla de enrutamiento correcta. A continuación, comprueba el sondeo de estado del back-end pertinente y suponiendo que todo es correcto, reenvía la solicitud del usuario al mejor back-end en función del método de enrutamiento.
Dado que Azure Front Door actúa como proxy de la conexión, puede realizar algunas funciones avanzadas, como ejecutar un Cortafuegos de Aplicaciones Web y realizar caché, lo que resulta útil para el escalado. Ninguna de estas funciones se puede lograr con Traffic Manager.
En el diagrama se muestra cómo puede usar ambos juntos.
Diagrama completo de arquitectura que muestra tanto Azure Front Door como Traffic Manager en la misma arquitectura.
Esta configuración usa Traffic Manager para un equilibrio de carga simple basado en DNS en los recursos estáticos de las cuentas de almacenamiento. También usa Front Door para el enrutamiento basado en rutas de acceso de la aplicación web en App Service y máquinas virtuales.