Las aplicaciones de Internet pueden experimentar fluctuaciones extremas en el uso. Aunque la mayoría de las aplicaciones empresariales no se enfrentan a este problema, muchas empresas deben gestionar otro tipo de cargas de trabajo irregulares: los trabajos por lotes o de CI/CD.
Este patrón de arquitectura se basa en una implementación redundante de aplicaciones en varios entornos informáticos. El objetivo es aumentar la capacidad, la resiliencia o ambas.
Aunque puede dar cabida a cargas de trabajo irregulares en un entorno informático basado en un centro de datos aprovisionando recursos en exceso, este enfoque puede no ser rentable. Con los trabajos por lotes, puedes optimizar el uso prolongando su ejecución durante periodos más largos, aunque no es práctico retrasar los trabajos si son sensibles al tiempo.
La idea del patrón de bursting en la nube es usar un entorno de computación privado para la carga de referencia y pasar a la nube temporalmente cuando necesites capacidad adicional.
En el diagrama anterior, cuando la capacidad de datos alcanza su límite en un entorno privado local, el sistema puede obtener capacidad adicional de un entorno de nube pública cuando sea necesario.Google Cloud
Los principales factores de este patrón son ahorrar dinero y reducir el tiempo y el esfuerzo necesarios para responder a los cambios en los requisitos de escalado. Con este enfoque, solo pagas por los recursos utilizados al gestionar cargas adicionales. Esto significa que no tienes que aprovisionar en exceso tu infraestructura. En su lugar, puedes aprovechar los recursos en la nube bajo demanda y escalarlos para que se adapten a la demanda y a las métricas predefinidas. De esta forma, tu empresa puede evitar interrupciones del servicio durante los periodos de máxima demanda.
Un requisito potencial para los escenarios de bursting en la nube es la portabilidad de las cargas de trabajo. Cuando permites que las cargas de trabajo se implementen en varios entornos, debes abstraer las diferencias entre ellos. Por ejemplo, Kubernetes te permite lograr la coherencia a nivel de carga de trabajo en diversos entornos que usan diferentes infraestructuras. Para obtener más información, consulta la arquitectura de referencia del entorno híbrido de GKE Enterprise.
Factores del diseño
El patrón de bursting en la nube se aplica a cargas de trabajo interactivas y por lotes. Sin embargo, cuando trabajas con cargas de trabajo interactivas, debes determinar cómo distribuir las solicitudes entre los entornos:
Puede enrutar las solicitudes de los usuarios entrantes a un balanceador de carga que se ejecute en el centro de datos, y, a continuación, hacer que el balanceador de carga distribuya las solicitudes entre los recursos locales y en la nube.
Este enfoque requiere que el balanceador de carga u otro sistema que se ejecute en el centro de datos actual también monitorice los recursos que se asignan en la nube. El balanceador de carga u otro sistema también deben iniciar el escalado vertical automático de los recursos. Con este enfoque, puedes retirar todos los recursos de la nube durante los periodos de poca actividad. Sin embargo, implementar mecanismos para monitorizar los recursos puede superar las capacidades de tus soluciones de balanceo de carga y, por lo tanto, aumentar la complejidad general.
En lugar de implementar mecanismos para monitorizar los recursos, puedes usar Cloud Load Balancing con un backend de grupo de puntos finales de red (NEG) de conectividad híbrida. Este balanceador de carga se usa para enrutar solicitudes de clientes internos u externos a backends que se encuentran tanto en las instalaciones como enGoogle Cloud y que se basan en diferentes métricas, como la división del tráfico basada en el peso. También puedes escalar los backends en función de la capacidad de servicio del balanceo de carga de las cargas de trabajo de Google Cloud. Para obtener más información, consulta la descripción general de la gestión del tráfico del balanceador de carga de aplicación externo global.
Este enfoque tiene varias ventajas adicionales, como aprovechar las funciones de protección frente a ataques DDoS de Google Cloud Armor, el cortafuegos de aplicaciones web y el almacenamiento en caché de contenido en el perímetro de la nube mediante Cloud CDN. Sin embargo, debes dimensionar la conectividad de red híbrida para gestionar el tráfico adicional.
Como se destaca en la sección Portabilidad de cargas de trabajo, una aplicación puede ser portátil a otro entorno con cambios mínimos para lograr la coherencia de la carga de trabajo, pero eso no significa que la aplicación funcione igual en ambos entornos. Las diferencias en la computación subyacente, las funciones de seguridad de la infraestructura o la infraestructura de red, junto con la proximidad a los servicios dependientes, suelen determinar el rendimiento. Gracias a las pruebas, puedes tener una visibilidad más precisa y comprender las expectativas de rendimiento.
Puedes usar servicios de infraestructura en la nube para crear un entorno en el que alojar tus aplicaciones sin portabilidad. Usa los siguientes métodos para gestionar las solicitudes de los clientes cuando se redirija el tráfico durante los periodos de máxima demanda:
- Usa herramientas coherentes para monitorizar y gestionar estos dos entornos.
- Asegúrate de que las versiones de las cargas de trabajo sean coherentes y de que tus fuentes de datos estén actualizadas.
- Es posible que tengas que añadir automatización para aprovisionar el entorno de nube y redirigir el tráfico cuando aumente la demanda y se espere que la carga de trabajo en la nube acepte las solicitudes de los clientes de tu aplicación.
Si tienes previsto cerrar todos los recursos durante los periodos de baja demanda, usar políticas de enrutamiento de DNS principalmente para el balanceo de carga del tráfico no siempre será la mejor opción. Google Cloud Esto se debe principalmente a lo siguiente:
- Los recursos pueden tardar un tiempo en inicializarse antes de poder atender a los usuarios.
- Las actualizaciones de DNS suelen propagarse lentamente por Internet.
En este caso, ocurre lo siguiente:
- Es posible que se dirija a los usuarios al entorno de Cloud aunque no haya recursos disponibles para procesar sus solicitudes.
- Es posible que los usuarios sigan dirigiéndose al entorno local temporalmente mientras las actualizaciones de DNS se propagan por Internet.
Con Cloud DNS, puedes elegir la política de DNS y la política de enrutamiento que se adapten a la arquitectura y el comportamiento de tu solución, como las políticas de enrutamiento de DNS por geolocalización. Cloud DNS también admite comprobaciones de estado para el balanceador de carga de red con paso a través interno y el balanceador de carga de aplicaciones interno. En ese caso, podrías incorporarlo a tu configuración de DNS híbrido general basada en este patrón.
En algunos casos, puedes usar Cloud DNS para distribuir solicitudes de clientes con comprobaciones de estado activadas Google Cloud, como cuando usas balanceadores de carga de aplicaciones internos o balanceadores de carga de aplicaciones internos entre regiones. En este caso, Cloud DNS comprueba el estado general del balanceador de carga de aplicaciones interno, que a su vez comprueba el estado de las instancias de backend. Para obtener más información, consulta Gestionar políticas de enrutamiento de DNS y comprobaciones de estado.
También puedes usar horizonte dividido de Cloud DNS. El horizonte dividido de Cloud DNS es un método para configurar respuestas o registros DNS en la ubicación o la red específicas del originador de la consulta DNS para el mismo nombre de dominio. Este enfoque se suele usar para cumplir los requisitos en los que una aplicación está diseñada para ofrecer una experiencia privada y otra pública, cada una con características únicas. Este enfoque también ayuda a distribuir la carga de tráfico entre los entornos.
Teniendo en cuenta estas consideraciones, el cloud bursting suele ser más adecuado para cargas de trabajo por lotes que para cargas de trabajo interactivas.
Ventajas
Estas son algunas de las ventajas clave del patrón de arquitectura de cloud bursting:
- El cloud bursting te permite reutilizar las inversiones que ya has hecho en centros de datos y entornos de computación privados. Esta reutilización puede ser permanente o estar en vigor hasta que sea necesario sustituir el equipo, momento en el que puedes plantearte una migración completa.
- Como ya no tienes que mantener una capacidad excesiva para satisfacer las demandas máximas, puedes aumentar el uso y la rentabilidad de tus entornos de computación privados.
- El reventón en la nube te permite ejecutar tareas por lotes de forma oportuna sin necesidad de aprovisionar en exceso recursos de computación.
Prácticas recomendadas
Cuando implementes el cloud bursting, ten en cuenta las siguientes prácticas recomendadas:
- Para asegurarte de que las cargas de trabajo que se ejecutan en la nube puedan acceder a los recursos de la misma forma que las cargas de trabajo que se ejecutan en un entorno local, usa el patrón de malla con el principio de acceso de seguridad con los mínimos privilegios. Si el diseño de la carga de trabajo lo permite, puedes permitir el acceso solo desde la nube al entorno informático local, pero no al revés.
- Para minimizar la latencia de la comunicación entre entornos, elige una Google Cloud región que esté geográficamente cerca de tu entorno de computación privado. Para obtener más información, consulta las prácticas recomendadas para seleccionar regiones de Compute Engine.
- Si solo usas el cloud bursting para cargas de trabajo por lotes, reduce la superficie de ataque de seguridad manteniendo todos los recursos privados. Google Cloud No permitas el acceso directo desde Internet a estos recursos, aunque uses el Google Cloud balanceo de carga externo para proporcionar el punto de entrada a la carga de trabajo.
Selecciona la política de DNS y la política de enrutamiento que se ajusten a tu patrón de arquitectura y al comportamiento de la solución de destino.
- Como parte de este patrón, puedes aplicar el diseño de tus políticas de DNS de forma permanente o cuando necesites capacidad adicional usando otro entorno durante las horas de máxima demanda.
- Puedes usar políticas de enrutamiento de DNS por geolocalización para tener un endpoint de DNS global para tus balanceadores de carga regionales. Esta táctica tiene muchos casos prácticos para las políticas de enrutamiento de DNS de geolocalización, incluidas las aplicaciones híbridas que usan Google Cloud junto con una implementación local en la que existe la región Google Cloud .
Si necesitas proporcionar registros diferentes para las mismas consultas de DNS, puedes usar DNS de horizonte dividido. Por ejemplo, consultas de clientes internos y externos.
Para obtener más información, consulta las arquitecturas de referencia para DNS híbrido.
Para asegurarte de que los cambios de DNS se propaguen rápidamente, configura tu DNS con un valor de tiempo de vida razonablemente corto para que puedas redirigir a los usuarios a sistemas de reserva cuando necesites capacidad adicional en entornos de nube.
En el caso de las tareas que no son muy urgentes y no almacenan datos de forma local, te recomendamos que uses instancias de VM de acceso puntual, que son considerablemente más baratas que las instancias de VM normales. Sin embargo, es necesario que, si se interrumpe el trabajo de la VM, el sistema pueda reiniciarlo automáticamente.
Usa contenedores para conseguir la portabilidad de las cargas de trabajo cuando sea posible. Además, GKE Enterprise puede ser una tecnología clave para ese diseño. Para obtener más información, consulta la arquitectura de referencia del entorno híbrido de GKE Enterprise.
Monitoriza el tráfico enviado desde Google Cloud a un entorno informático diferente. Este tráfico está sujeto a cargos por transferencia de datos salientes.
Si tienes previsto usar esta arquitectura a largo plazo con un volumen de transferencia de datos salientes elevado, plantéate usar Cloud Interconnect. Cloud Interconnect puede ayudar a optimizar el rendimiento de la conectividad y reducir los cargos por transferencia de datos salientes del tráfico que cumpla determinadas condiciones. Para obtener más información, consulta los precios de Cloud Interconnect.
Cuando se usa Cloud Load Balancing, debes usar sus funciones de optimización de la capacidad de las aplicaciones cuando sea necesario. De esta forma, podrás solucionar algunos de los problemas de capacidad que pueden producirse en aplicaciones distribuidas a nivel mundial.
Autentica a los usuarios de tus sistemas estableciendo una identidad común entre los entornos para que los sistemas puedan autenticarse de forma segura entre los límites de los entornos.
Para proteger la información sensible, es muy recomendable cifrar todas las comunicaciones en tránsito. Si se requiere cifrado en la capa de conectividad, hay varias opciones disponibles en función de la solución de conectividad híbrida seleccionada. Entre estas opciones se incluyen los túneles VPN, la VPN de alta disponibilidad mediante Cloud Interconnect y MACsec para Cloud Interconnect.