Compartir a través de


Confiabilidad en Azure App Service

Azure App Service es un servicio basado en HTTP para hospedar aplicaciones web, API REST y back-end móvil. App Service se integra con Microsoft Azure para proporcionar seguridad, equilibrio de carga, escalado automático y administración automatizada para aplicaciones. Como servicio de Azure, App Service proporciona una variedad de funcionalidades para satisfacer los requisitos de confiabilidad.

Cuando se usa Azure, la confiabilidad es una responsabilidad compartida. Microsoft proporciona una variedad de funcionalidades para admitir resistencia y recuperación. Es responsable de comprender cómo funcionan esas funcionalidades dentro de todos los servicios que usa y de seleccionar las funcionalidades que necesita para cumplir los objetivos empresariales y los objetivos de tiempo de actividad.

En este artículo se describe cómo hacer que App Service sea resistente a una variedad de posibles interrupciones y problemas, incluidos errores transitorios, interrupciones de zona de disponibilidad, interrupciones de regiones y mantenimiento del servicio. También se describe cómo puede usar copias de seguridad para recuperarse de otros tipos de problemas y se resalta cierta información clave sobre el acuerdo de nivel de servicio (SLA) de App Service.

Nota:

Si busca información sobre el soporte de confiabilidad en App Service Environment, consulte Confiabilidad en App Service Environment.

Recomendaciones de implementación de producción

Azure Well-Architected Framework proporciona recomendaciones sobre confiabilidad, rendimiento, seguridad, costo y operaciones. Para comprender cómo estas áreas influyen entre sí y contribuir a una solución confiable de App Service, consulte Procedimientos recomendados de arquitectura para App Service (Web Apps) en Azure Well-Architected Framework.

Introducción a la arquitectura de confiabilidad

Al crear una aplicación web de App Service, se especifica el plan de App Service que ejecuta la aplicación.

Un plan de App Service define un conjunto de recursos de proceso que ejecutan las aplicaciones web. Todas las Web Apps deben ejecutarse dentro de un plan. Puede escalar un plan para ejecutarse en varias instancias de máquina virtual, también denominadas trabajadores. Estas instancias proporcionan los recursos de proceso que ejecutan el código de su aplicación. Un único plan de App Service puede hospedar varias aplicaciones. Todas las aplicaciones se ejecutan en el mismo conjunto compartido de instancias de máquina virtual.

App Service ofrece las siguientes características de redundancia:

  • Distribución entre dominios de error: En el nivel de plataforma, Azure distribuye automáticamente las instancias de máquina virtual del plan de App Service entre dominios de error dentro de la región de Azure. Esta distribución minimiza el riesgo de errores de hardware localizados mediante la agrupación de máquinas virtuales que comparten una fuente de alimentación común y un conmutador de red.

  • Distribución entre zonas de disponibilidad: Si habilita la redundancia de zona en un plan de App Service compatible, Azure distribuye las instancias entre zonas de disponibilidad dentro de la región. Esta configuración proporciona una mayor resistencia si se produce una interrupción de zona. Para obtener más información sobre la redundancia de zonas, consulte Compatibilidad con zonas de disponibilidad.

  • Escalado de aplicaciones: Al configurar el plan de App Service para ejecutar varias instancias de máquina virtual, todas las aplicaciones del plan se ejecutan en todas las instancias de forma predeterminada. Si configura su plan para el escalado automático, todas las aplicaciones se escalarán juntas según la configuración de escalado automático. Sin embargo, puede personalizar el número de instancias de plan que ejecutan una aplicación específica mediante el escalado por aplicación.

  • Unidades de escalado: Internamente, App Service se ejecuta en una infraestructura de plataforma denominada unidades de escalado, también conocida como stamps o espacios web. Una unidad de escalado incluye todos los componentes necesarios para hospedar y ejecutar App Service, incluido el proceso, el almacenamiento, las redes y el equilibrio de carga. Azure administra las unidades de escalado para garantizar una distribución equilibrada de cargas de trabajo, realizar un mantenimiento rutinario y mantener la confiabilidad general de la plataforma.

    Es posible que algunas funcionalidades solo se apliquen a unidades de escalado específicas. Por ejemplo, algunas unidades de escalado de App Service pueden admitir la redundancia de zona, mientras que otras unidades de escala de la misma región no.

Resistencia a errores transitorios

Los errores transitorios son errores breves e intermitentes en los componentes. Se producen con frecuencia en un entorno distribuido como la nube y son una parte normal de las operaciones. Los errores transitorios se corrigen después de un breve período de tiempo. Es importante que sus aplicaciones puedan administrar errores transitorios, generalmente reintentando las solicitudes afectadas.

Todas las aplicaciones hospedadas en la nube deben seguir las instrucciones de control de errores transitorios de Azure cuando se comunican con cualquier API, bases de datos y otros componentes hospedados en la nube. Para obtener más información, consulte Recomendaciones para controlar errores transitorios.

Los SDK proporcionados por Microsoft suelen controlar errores transitorios. Dado que hospeda sus propias aplicaciones en App Service, siga los pasos necesarios para reducir la posibilidad de errores transitorios:

  • Implemente varias instancias en el plan. App Service realiza actualizaciones automatizadas y otras formas de mantenimiento en instancias del plan. Si una instancia se vuelve incorrecta, el servicio puede reemplazar automáticamente esa instancia por una nueva instancia correcta. Durante el proceso de reemplazo, puede haber un breve período cuando la instancia anterior no está disponible y una nueva instancia no está lista para atender el tráfico. Para mitigar estos efectos, implemente varias instancias del plan de App Service.

  • Uso de ranuras de implementación. Las ranuras de implementación de App Service permiten implementaciones sin tiempo de inactividad de las aplicaciones. Use ranuras de implementación para minimizar el efecto de las implementaciones y los cambios de configuración para los usuarios. Las ranuras de implementación también reducen la probabilidad de que se reinicie la aplicación. Reiniciar la aplicación produce un error transitorio.

  • Evite escalar o reducir verticalmente. Estas operaciones modifican la CPU, la memoria y otros recursos asignados a cada instancia, y pueden provocar el reinicio de la aplicación empresarial. En su lugar, seleccione un nivel y un tamaño de instancia que cumplan los requisitos de rendimiento bajo una carga típica. Para escalar y reducir horizontalmente, agregue y elimine instancias de forma dinámica para administrar los cambios en el volumen de tráfico.

Resistencia a errores de zona de disponibilidad

Las zonas de disponibilidad son grupos físicamente independientes de centros de datos dentro de cada región de Azure. Cuando se produce un error en una zona, los servicios pueden conmutar por error a una de las zonas restantes.

En el caso de los niveles Premium v2 a v4, puede configurar App Service como redundante de zona, lo que significa que los recursos se distribuyen entre varias zonas de disponibilidad. La distribución entre varias zonas ayuda a las cargas de trabajo de producción a lograr resistencia y confiabilidad. Al configurar la redundancia de zona en los planes de App Service, todas las aplicaciones que utilizan el plan pasan a ser redundantes en la zona.

Requisitos

Para habilitar la redundancia de zona, debe cumplir los siguientes requisitos:

Distribución de instancias a través de zonas

Al crear un plan de App Service con redundancia de zona, Azure distribuye las instancias del plan entre zonas de disponibilidad de la región. Esta distribución garantiza que sus aplicaciones sigan estando disponibles incluso si una zona sufre una interrupción del servicio.

La distribución de instancias en una implementación con redundancia de zona sigue reglas específicas. Estas reglas también se aplican a medida que la aplicación se escala y se reduce horizontalmente:

  • Instancias mínimas: El plan de App Service debe tener un mínimo de dos instancias para la redundancia de zona.

  • Zonas de disponibilidad máxima compatibles con el plan: Azure determina el número de zonas de disponibilidad que puede usar el plan, lo que se conoce como maximumNumberOfZones. Para ver el número de zonas de disponibilidad que puede usar su plan específico, consulte Comprobar la compatibilidad con la redundancia de zonas para un plan de App Service.

  • Distribución de instancias: Cuando se habilita la redundancia de zona, Azure distribuye instancias de plan entre varias zonas de disponibilidad automáticamente. La distribución se basa en las reglas siguientes:

    • Si el número de instancias supera el maximumNumberOfZones y divide uniformemente, Azure distribuye las instancias uniformemente entre zonas.

    • Si el número de instancias no se divide de manera uniforme, Azure distribuye las instancias restantes entre las zonas restantes.

    • Cuando la plataforma de App Service asigna instancias para un plan de App Service con redundancia de zona, usa el equilibrio de zona de mejor esfuerzo que proporcionan los conjuntos de escalado de máquinas virtuales de Azure subyacentes. Un plan se equilibra si cada zona tiene el mismo número de máquinas virtuales o difiere en una instancia de todas las demás zonas. Para obtener más información, consulte Equilibrio de zona.

  • Ubicación de zona física: Puede ver la zona de disponibilidad física que se usa para cada una de las instancias del plan de App Service. Para más información, consulte Visualización de zonas físicas para un plan de App Service.

Consideraciones

En el caso de los planes Premium v2 a v4, una interrupción de zona de disponibilidad podría afectar a algunos aspectos de Azure App Service, aunque la aplicación siga sirviendo tráfico. Estos comportamientos incluyen el escalado del plan de App Service, la creación de aplicaciones, la configuración de la aplicación y la publicación de aplicaciones.

Al habilitar la redundancia de zona en su plan App Service Premium v2 a v4, también mejora la resistencia durante las actualizaciones de la plataforma. Para obtener más información, consulte Resistencia al mantenimiento del servicio.

En los planes de App Service que no están configurados como redundantes por zona, las instancias de máquina virtual (VM) subyacentes no son resistentes a los errores de la zona de disponibilidad. Pueden experimentar tiempo de inactividad durante una interrupción en cualquier zona de esa región.

Coste

Cuando use los planes Premium v2 a v4 de App Service, habilitar las zonas de disponibilidad no supone ningún coste adicional si tiene dos o más instancias. Los cargos se basan en la SKU de su plan de App Service, la capacidad que especifique y las instancias a las que escale según sus criterios de escalado automático.

Si habilita zonas de disponibilidad pero especifica una capacidad de menos de dos, la plataforma aplica un recuento mínimo de instancias de dos. La plataforma le cobra por esas dos instancias.

Configuración de la compatibilidad con zonas de disponibilidad

Planeamiento y administración de capacidad

Para prepararse para errores de zona de disponibilidad, considere la posibilidad de sobreaprovisionar la capacidad del plan de App Service. Este enfoque permite que la solución tolere cierta pérdida de capacidad y siga funcionando sin que se vea afectado su rendimiento. Para obtener más información, consulte Administración de la capacidad mediante el aprovisionamiento excesivo.

Comportamiento cuando todas las zonas están en buen estado

En la siguiente lista se describe qué esperar cuando los planes de App Service están configurados para la redundancia de zona y todas las zonas de disponibilidad están operativas:

  • Enrutamiento del tráfico entre zonas: Durante el funcionamiento normal, el tráfico se enruta entre todas las instancias disponibles del plan de App Service en todas las zonas de disponibilidad.

  • Replicación de datos entre zonas: Durante las operaciones normales, cualquier estado almacenado en el sistema de archivos de la aplicación se almacena en el almacenamiento con redundancia de zona y se replica sincrónicamente entre zonas de disponibilidad.

Comportamiento durante un fallo de zona

Una interrupción de la zona de disponibilidad puede afectar a algunos aspectos de App Service, aunque la aplicación siga sirviendo al tráfico. Estos comportamientos incluyen el escalado del plan de App Service, la creación de aplicaciones, la configuración de la aplicación y la publicación de aplicaciones.

La siguiente lista describe qué puede ocurrir cuando los planes de App Service están configurados para la redundancia de zona y una o varias zonas de disponibilidad no están disponibles:

  • Detección y respuesta: La plataforma de App Service detecta automáticamente errores en una zona de disponibilidad e inicia una respuesta. No se requiere ninguna intervención manual para iniciar una conmutación por error de zona.
  • Solicitudes activas: Las solicitudes en curso que se conectan a una instancia del plan de App Service en la zona de disponibilidad defectuosa se finalizan. Reintentar esas solicitudes.

  • Enrutamiento del tráfico:App Service detecta las instancias perdidas de esa zona e intenta encontrar nuevas instancias de reemplazo Después de que App Service encuentre reemplazos, distribuye el tráfico entre las nuevas instancias según sea necesario.

    Si se configura el ajuste automático y se determina que se necesitan más instancias, se solicitan instancias a App Service. El comportamiento de escalabilidad automática funciona independientemente del comportamiento de la plataforma de App Service. Por lo tanto, la especificación del número de instancias no tiene por qué ser un múltiplo de dos. Para más información, consulte Escalado vertical de una aplicación en App Service y Información general sobre el escalado automático.

    Importante

    Azure no garantiza que las solicitudes de más instancias se realicen correctamente en un escenario de zona descendente. La plataforma intenta reponer instancias perdidas de forma óptima. Si necesita capacidad garantizada durante un error de zona de disponibilidad, cree y configure sus planes de App Service para tener en cuenta la pérdida de zona mediante el sobreaprovisionamiento de la capacidad.

  • Comportamientos fuera del tiempo de ejecución: Las aplicaciones en un plan de App Service con redundancia de zona continúan ejecutándose y prestando servicio al tráfico incluso si una zona de disponibilidad sufre una interrupción. Sin embargo, los comportamientos que no son de ejecución pueden verse afectados durante una interrupción de la zona de disponibilidad. Estos comportamientos incluyen el escalado del plan de App Service, la creación de aplicaciones, la configuración de la aplicación y la publicación de aplicaciones.

Recuperación de zona

Cuando se recupera la zona de disponibilidad, App Service crea automáticamente instancias en la zona de disponibilidad recuperada, quita las instancias temporales creadas en las otras zonas de disponibilidad y enruta el tráfico entre las instancias como de costumbre.

Prueba de fallos de zona

La plataforma de App Service administra el enrutamiento del tráfico, la conmutación por error y la conmutación por recuperación para planes de App Service con redundancia de zona. Esta característica está totalmente administrada, por lo que no es necesario iniciar ni validar los procesos de error de zona de disponibilidad.

Resistencia a errores en toda la región

App Service es un servicio de una sola región. Si la región deja de estar disponible, la aplicación tampoco está disponible.

Soluciones personalizadas de varias regiones para la resistencia

Para reducir el riesgo de un error de una sola región que afecte a la aplicación, puede implementar planes en varias regiones. Los pasos siguientes ayudan a reforzar la resistencia:

  • Despliegue su aplicación en los planes de cada región.
  • Configure directivas de equilibrio de carga y conmutación por error.
  • Replique los datos entre regiones para que pueda recuperar el último estado de la aplicación.

Considere los siguientes recursos relacionados:

Copias de seguridad y restauración

Cuando use el nivel Básico o superior, puede hacer una copia de seguridad de sus aplicaciones de App Service en un archivo usando las funciones de copia de seguridad y restauración de App Service.

Estas funcionalidades resultan útiles cuando resulta complicado volver a implementar el código o cuando se almacena el estado en el disco. La mayoría de las soluciones no deberían depender exclusivamente de las copias de seguridad. En su lugar, use las otras capacidades de esta guía para satisfacer sus requisitos de resistencia. Sin embargo, las copias de seguridad protegen contra algunos riesgos que otros enfoques no.

Importante

A partir del 31 de marzo de 2028, las copias de seguridad personalizadas de Azure App Service ya no admiten la copia de seguridad de bases de datos vinculadas. Consulte Desuso de copias de seguridad de bases de datos vinculadas para obtener más información.

En su lugar, use las herramientas nativas de copia de seguridad y restauración de la base de datos vinculada. Para más información, consulte Copia de seguridad y restauración de la aplicación en App Service.

Resistencia al mantenimiento del servicio

App Service realiza actualizaciones de servicio periódicas y otras tareas de mantenimiento. Para mantener la capacidad esperada durante una actualización, la plataforma agrega automáticamente instancias adicionales del plan de App Service durante el proceso de actualización.

Habilitación de la redundancia de zona. Al habilitar la redundancia de zona en su plan de App Service, también mejora la resiliencia durante las actualizaciones de la plataforma. Los dominios de actualización constan de colecciones de máquinas virtuales que se desconectan durante una actualización y se asignan a zonas de disponibilidad. La implementación de varias instancias en su plan de App Service y la habilitación de la redundancia de zona para su plan agregan una capa adicional de resistencia en caso de que una instancia o zona sea incorrecta durante una actualización.

Para obtener más información, consulte Mantenimiento planeado rutinario para App Service y Mantenimiento rutinario para App Service, reinicios y tiempo de inactividad.

Acuerdo de nivel de servicio

El contrato de nivel de servicio (SLA) para los servicios de Azure describe la disponibilidad esperada de cada servicio y las condiciones que la solución deberá cumplir para lograr esa expectativa de disponibilidad. Para obtener más información, consulte Acuerdos de Nivel de Servicio para servicios en línea.

Al implementar un plan de App Service con redundancia de zona, aumenta el porcentaje de tiempo de actividad definido en el Acuerdo de Nivel de Servicio.