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 una instancia de Azure Cache for Redis para mejorar el rendimiento y escalar horizontalmente las bases de datos de 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 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 muy difícil obtener una coherencia fuerte en todo el mundo y no se permite en servicios como Cosmos DB, literalmente debido a la velocidad de la luz.
Coherencia de datos
Echemos un vistazo más detenidamente al problema de la coherencia de los datos.
La coherencia en los sistemas de base de datos hace referencia al requisito de que cualquier transacción de base de datos determinada debe cambiar los datos afectados solo de maneras permitidas. Hay dos modelos de coherencia que se usan en la computación distribuida.
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.
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. Esta definición podría basarse en el rendimiento, la ubicación, turno rotativo, entre otros. Una vez identificado un back-end correcto, los clientes siempre se conectan directamente al back-end.
- Azure Front Door Service es una instancia de Application Delivery Network (ADN) como servicio, que ofrece diversas 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 intermediario de la conexión, puede realizar algunas funciones avanzadas, como ejecutar un firewall de aplicaciones web y la caché de datos, 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.
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.