Consideraciones sobre aplicaciones para cargas de trabajo de Azure VMware Solution

En este artículo se describe el área de diseño de la plataforma de aplicaciones de una carga de trabajo de Azure VMware Solution. En esta área se tratan las tareas y responsabilidades específicas asociadas a la implementación, configuración y mantenimiento de aplicaciones que hospeda en un entorno de Azure VMware Solution. Un propietario de la aplicación es responsable de las aplicaciones de un entorno de Azure VMware Solution. Este equipo o individual administra aspectos relacionados con la implementación, la configuración, la supervisión y el mantenimiento de las aplicaciones.

Entre los objetivos clave de una aplicación bien diseñada se incluyen:

  • Diseño para la escala. Controle correctamente las mayores demandas del usuario y las transacciones simultáneas sin degradación o interrupción del servicio.
  • Rendimiento. Ofrezca tiempos de respuesta rápidos y de baja latencia y administre eficazmente el uso de los recursos.
  • Confiabilidad y resistencia. Diseñe patrones redundantes y tolerantes a errores para ayudar a garantizar que la aplicación siga respondiendo y se recupere rápidamente de los errores.

Este artículo tiene como objetivo proporcionar a los desarrolladores, arquitectos y propietarios de aplicaciones procedimientos recomendados específicos de Azure VMware Solution. Estas prácticas pueden ayudarle a crear aplicaciones que permanezcan sólidas, seguras, escalables y fáciles de mantener a lo largo de su ciclo de vida.

Diseño para la escalabilidad y distribución eficaz de recursos

Impacto: Confiabilidad, eficiencia del rendimiento, Seguridad

En esta sección se trata la asignación eficaz y el uso de recursos informáticos en máquinas virtuales (VM) y cargas de trabajo dentro de la nube privada de Azure VMware Solution. Estos recursos pueden incluir recursos de CPU, memoria, almacenamiento y red. En esta sección también se explora la implementación de técnicas de escalado dinámico. Puede usar estas técnicas para adaptar dinámicamente el aprovisionamiento de recursos para dar cabida a las fluctuaciones de la demanda. El objetivo principal es lograr un uso óptimo de los recursos mediante la mitigación de la infrautilización y el sobreaprovisionamiento que pueden dar lugar a ineficiencias y gastos escalados.

Uso de dominios de error

Los dominios de error de Azure VMware Solution representan agrupaciones lógicas de recursos dentro de un clúster extendido. Estos recursos comparten un dominio de error físico común. Los dominios de error ayudan a mejorar la disponibilidad en varios escenarios de error. La organización de recursos en dominios de error ayuda a garantizar que los componentes críticos de una aplicación se reparten entre varios dominios de error.

Al colocar máquinas virtuales y otros recursos en dominios de error independientes, el equipo de la aplicación ayuda a garantizar que una aplicación permanece disponible durante un error de infraestructura o centro de datos. Por ejemplo, puede separar las máquinas virtuales en dominios de error que se distribuyen entre centros de datos distribuidos geográficamente. A continuación, la aplicación puede permanecer operativa si un centro de datos experimenta un error completo.

Los equipos de aplicaciones deben considerar la posibilidad de definir la afinidad de VM-VM y las reglas de antiafinidad que se basan en dominios de error. Las reglas de afinidad de VM-VM colocan máquinas virtuales críticas en el mismo dominio de error para asegurarse de que no se distribuyen entre varios centros de datos. Las reglas de antiafinidad impiden que las máquinas virtuales relacionadas se coloquen juntas dentro del mismo dominio de error. Esta práctica ayuda a garantizar la redundancia.

Uso de directivas de antiafinidad de VM-VM en aplicaciones de tres niveles

En Azure VMware Solution, un caso de uso para las directivas de antiafinidad de VM-VM implica una aplicación de tres niveles. El objetivo es mejorar la alta disponibilidad, la tolerancia a errores y la resistencia de cada nivel de aplicación. Para lograr este objetivo, puede usar directivas de antiafinidad para distribuir los niveles entre distintos hosts dentro de la nube privada de Azure VMware Solution.

Para implementar este caso de uso, cree una arquitectura distribuida y tolerante a errores mediante directivas de antiafinidad de VM-VM en tres niveles. Esta configuración mejora la disponibilidad de toda la aplicación y ayuda a garantizar que el error de un único host no interrumpa todo el nivel o toda la aplicación.

Por ejemplo, en el nivel web de front-end que atiende las solicitudes de usuario, puede aplicar directivas de antiafinidad de VM-VM para distribuir los servidores web en distintos hosts físicos. Este enfoque ayuda a mejorar la alta disponibilidad y la tolerancia a errores. De forma similar, puede usar medidas antiafinidad para ayudar a proteger los servidores de aplicaciones en el nivel empresarial y reforzar la resistencia de los datos dentro de la capa de base de datos.

Diagrama de arquitectura que muestra una aplicación de tres niveles segmentada mediante directivas de afinidad de VM-VM.

Recomendaciones
  • Cree mapas que muestren las interdependencias de máquina virtual, la comunicación y los patrones de uso para asegurarse de que la proximidad es un requisito.
  • Determine si la afinidad de VM-VM de la directiva de selección de ubicación ayuda a cumplir las métricas de rendimiento o los acuerdos de nivel de servicio (SLA).
  • Diseñe la alta disponibilidad mediante la implementación de directivas de antiafinidad de VM-VM de ubicación para protegerse frente a errores de host y distribuir la aplicación entre varios hosts.
  • Para evitar el exceso de aprovisionamiento, distribuya la carga de trabajo entre máquinas virtuales pequeñas en lugar de algunas máquinas virtuales grandes.
  • Supervise, revise y ajuste periódicamente las directivas de afinidad para identificar la posible contención de recursos. Adapte estas directivas con el tiempo según sea necesario.

Uso de directivas de afinidad de host de máquina virtual para el aislamiento de rendimiento

Algunas cargas de trabajo que ejecutan máquinas virtuales en distintos niveles de aplicación funcionan mejor cuando se colocan. Este caso de uso suele producirse cuando las aplicaciones requieren:

  • Aislamiento de rendimiento para cargas de trabajo de proceso de alto rendimiento que consumen muchos recursos.
  • Cumplimiento de los contratos de licencia. Por ejemplo, las especificaciones del sistema pueden requerir una asignación que asocie una máquina virtual a un conjunto específico de núcleos para mantener el cumplimiento con Windows o SQL Server licencias.
  • Cumplimiento normativo e integridad de los datos para asegurarse de que las máquinas virtuales que pertenecen a dominios de seguridad o clasificaciones de datos específicos se limitan a hosts específicos o a un subconjunto de hosts dentro del clúster.
  • Configuración de red simplificada que coloca máquinas virtuales en el mismo host. En este caso, se simplifica la configuración de red entre los niveles. Los niveles comparten la misma conectividad de red y no requieren saltos de red adicionales.

Si es esencial mantener la colocación de los niveles de aplicación, puede optar por las directivas de afinidad de host de máquina virtual para asegurarse de que los niveles se implementan en el mismo host y dentro de la misma zona de disponibilidad.

Diagrama de arquitectura que muestra una aplicación de tres niveles segmentada mediante directivas de afinidad de host de máquina virtual.

Nota:

El equipo de la plataforma es responsable de configurar la selección de ubicación de las máquinas virtuales, las reglas de afinidad de host y la agrupación de recursos. Sin embargo, el equipo de aplicaciones debe comprender los requisitos de rendimiento de cada aplicación para asegurarse de que se cumplen las necesidades de la aplicación.

Los equipos de aplicaciones deben evaluar exhaustivamente la ubicación de las máquinas virtuales y participar en una planeación minuciosa. La colocación de máquinas virtuales puede presentar posibles desafíos, como desequilibrios de recursos y distribución desigual de cargas de trabajo. Estas situaciones pueden provocar efectos adversos en el rendimiento y la optimización de recursos. Además, colocar todas las cargas de trabajo en una zona de disponibilidad puede crear un único punto de error en un desastre. Considere la posibilidad de replicar la configuración en varias zonas de disponibilidad para mejorar la resistencia del centro de datos durante un error.

Recomendaciones
  • Planee cuidadosamente cómo se usan las directivas de afinidad de host de máquina virtual de la directiva de selección de ubicación. Considere las soluciones alternativas siempre que sea posible, como el equilibrio de carga, los grupos de recursos de VMware vSphere, las bases de datos distribuidas, la contenedorización y las zonas de disponibilidad.
  • Supervise periódicamente el uso y el rendimiento de los recursos para identificar los desequilibrios o problemas.
  • Opte por una estrategia de selección de ubicación de máquinas virtuales equilibrada y flexible. Este enfoque le ayuda a maximizar el uso de recursos a la vez que mantiene la alta disponibilidad y garantiza el cumplimiento de los requisitos de licencia.
  • Pruebe y valide las configuraciones de afinidad de host de vm-host de la directiva de selección de ubicación para asegurarse de que se alinean con los requisitos específicos de la aplicación y que no afectan negativamente al rendimiento y la resistencia generales.

Distribuir el tráfico mediante una aplicación o un equilibrador de carga de red

Además del uso de directivas de selección de ubicación, el equilibrio de carga también es un componente fundamental de las aplicaciones modernas para ayudar a garantizar:

  • Distribución eficaz de recursos.
  • Mayor disponibilidad de la aplicación.
  • Rendimiento óptimo de la aplicación.

El equilibrio de carga cumple estos criterios, a la vez que mantiene la flexibilidad para el escalado y la administración de cargas de trabajo.

Después de implementar aplicaciones en máquinas virtuales, considere la posibilidad de usar una herramienta de equilibrio de carga, como Azure Application Gateway para crear grupos de back-end. Application Gateway es un equilibrador de carga de tráfico web administrado y un servicio de entrega de aplicaciones que pueden administrar y optimizar el tráfico HTTP y HTTPS entrantes a las aplicaciones web. Como punto de entrada para el tráfico web, Application Gateway ofrece varios tipos de funcionalidad. Entre los ejemplos se incluyen la terminación TLS/SSL, el enrutamiento basado en direcciones URL, la afinidad de sesión y las funcionalidades de firewall de aplicaciones web.

Diagrama de arquitectura que muestra cómo fluye el tráfico desde un explorador a través de Application Gateway a grupos de back-end.

Una vez disponibles los recursos de los grupos de back-end, cree agentes de escucha para especificar puertos y reglas de enrutamiento para las solicitudes entrantes. A continuación, puede crear sondeos de estado para supervisar el estado de las máquinas virtuales e indicar cuándo quitar recursos back-end incorrectos de la rotación.

Implementación de la terminación TLS/SSL y la administración de certificados

Es necesario aplicar el cifrado TLS/SSL para toda la comunicación entre los exploradores de la aplicación y los usuarios. Este cifrado ayuda a proteger los datos de sesión frente a ataques de interceptación y de tipo "man in the middle". Si la aplicación requiere la terminación TLS/SSL, configure el certificado TLS/SSL necesario en Application Gateway para descargar el procesamiento tls/SSL desde las máquinas virtuales de back-end.

Después de generar certificados TLS/SSL, colóquelos en un servicio como Azure Key Vault que le ayude a almacenarlos y acceder a ellos de forma segura. Use PowerShell, la CLI de Azure o herramientas como Azure Automation para actualizar y renovar certificados.

Administración de API

Azure API Management le ayuda a publicar de forma segura puntos de conexión de API interna y externamente implementados. Un ejemplo de un punto de conexión es una API de back-end que se encuentra en una nube privada Azure VMware Solution detrás de un equilibrador de carga o Application Gateway. API Management le ayuda a administrar los métodos y comportamientos de la API, como la aplicación de directivas de seguridad para aplicar la autenticación y la autorización. API Management también puede enrutar las solicitudes de API a los servicios back-end a través de Application Gateway.

En el diagrama siguiente, el tráfico de los consumidores viaja a un punto de conexión público API Management. A continuación, el tráfico se reenvía a las API de back-end que se ejecutan en Azure VMware Solution.

Diagrama de arquitectura de un centro de datos Azure VMware Solution que está conectado a un centro central. El centro hospeda Application Gateway y API Management.

Recomendaciones
  • Para mejorar la seguridad y el rendimiento de las aplicaciones de Azure VMware Solution, use Application Gateway con Azure VMware Solution back-end para distribuir el tráfico a los puntos de conexión de la aplicación.
  • Asegúrese de que hay conectividad entre los segmentos de back-end que hospedan Azure VMware Solution y la subred que contiene Application Gateway o el equilibrador de carga.
  • Configurar el estado demuestra supervisar el estado de las instancias de back-end.
  • Descargue la terminación TLS/SSL en Application Gateway para reducir la sobrecarga de procesamiento en las máquinas virtuales de back-end.
  • Almacene de forma segura claves TLS/SSL en almacenes.
  • Optimice los procesos mediante la automatización de tareas como actualizaciones y renovaciones de certificados.

Optimización de los clústeres extendidos para reforzar la continuidad empresarial y la preparación de la recuperación ante desastres

Impacto: Confiabilidad

Los clústeres extendidos proporcionan clústeres de VMware con funcionalidades de alta disponibilidad y recuperación ante desastres en varios centros de datos distribuidos geográficamente.

La siguiente configuración admite arquitecturas activas-activas. La red de área de almacenamiento virtual (vSAN) abarca dos centros de datos. Una tercera zona de disponibilidad se asigna a un testigo de vSAN para actuar como cuórum para escenarios de cerebro dividido.

Diagrama de arquitectura que muestra un clúster extendido de vSAN en dos zonas de disponibilidad. Una tercera zona contiene un testigo vSAN.

La distribución de la aplicación entre varias zonas de disponibilidad y regiones ayuda a garantizar la disponibilidad continua durante los errores del centro de datos. Implemente los niveles de aplicación y los niveles de datos en ambos centros de datos y active la replicación sincrónica.

Configurar la tolerancia a errores y los errores para tolerar (FTT) directivas

La capacidad total utilizable de la aplicación depende de varias variables. Algunos ejemplos son la matriz redundante de la configuración de discos independientes (RAID), el valor del failures to tolerate atributo y el error de tolerar (FTT) directivas que controlan el número de errores que puede tolerar el sistema de almacenamiento. Los equipos de aplicaciones deben determinar el nivel de redundancia necesario para la aplicación. También es importante tener en cuenta que los valores de FTT más altos mejoran la resistencia de los datos, pero aumentan la sobrecarga de almacenamiento.

Recomendaciones
  • Implemente la aplicación en el almacenamiento compartido para que los datos de la máquina virtual sean coherentes en el clúster extendido. Active la replicación sincrónica.
  • Configure los dominios de error para definir cómo deben responder los clústeres extendidos en un escenario de error.
  • Implemente la conmutación automática por error y la conmutación por recuperación para minimizar la intervención manual durante la conmutación por error y los eventos de recuperación.

Configuración de directivas de sincronización y almacenamiento de datos

Los métodos de sincronización de datos son importantes cuando la aplicación se basa en datos con estado y bases de datos para garantizar la coherencia y disponibilidad durante un desastre. La sincronización de datos ayuda a proporcionar alta disponibilidad y tolerancia a errores para las máquinas virtuales críticas que ejecutan aplicaciones.

Un propietario de la aplicación puede definir una directiva de almacenamiento para ayudar a garantizar que:

  • Las máquinas virtuales críticas que ejecutan una aplicación reciben el nivel necesario de redundancia y rendimiento de datos.
  • Las máquinas virtuales están posicionadas para aprovechar las funcionalidades de alta disponibilidad del clúster extendido en Azure VMware Solution.

Las directivas de ejemplo pueden implicar los siguientes factores:

  • Configuración de vSAN. Use vSAN de VMware con un clúster extendido entre zonas de disponibilidad.
  • Número de errores que se van a tolerar. Establezca la directiva para tolerar al menos uno o varios errores. Por ejemplo, use un diseño RAID-1.
  • Rendimiento. Configure las opciones relacionadas con el rendimiento para optimizar las IOPS y la latencia de las máquinas virtuales críticas.
  • Reglas de afinidad. Configure reglas de afinidad para ayudar a garantizar que las máquinas virtuales o grupos de máquinas virtuales se colocan en hosts independientes o dominios de error dentro del clúster extendido para maximizar la disponibilidad durante los errores del centro de datos.
  • Copia de seguridad y replicación. Especifique la integración con soluciones de copia de seguridad y replicación para asegurarse de que los datos de máquina virtual se realicen con regularidad y se repliquen en una ubicación secundaria para la protección de datos adicional.
Recomendaciones
  • Defina directivas de almacenamiento de datos en vSAN para especificar la redundancia y el rendimiento necesarios para varios discos de máquina virtual.
  • Configure las aplicaciones para que se ejecuten en una configuración activa-activa o activa-pasiva para que los componentes críticos de la aplicación puedan producir errores durante los errores del centro de datos.
  • Comprenda los requisitos de red de cada aplicación. Las aplicaciones que se ejecutan en zonas de disponibilidad pueden incurrir en una latencia mayor que las aplicaciones con tráfico dentro de una zona de disponibilidad. Diseñe la aplicación para tolerar esta latencia.
  • Ejecute pruebas de rendimiento en las directivas de selección de ubicación para evaluar su impacto en la aplicación.

Pasos siguientes

Ahora que ha examinado la plataforma de aplicaciones, consulte cómo establecer conectividad, crear perímetros para la carga de trabajo e distribuir uniformemente el tráfico a las cargas de trabajo de la aplicación.

Use la herramienta de evaluación para evaluar las opciones de diseño.