Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Esta arquitectura de línea de base se basa en la arquitectura básica de aplicaciones web y proporciona instrucciones detalladas para diseñar una aplicación web segura, con redundancia de zona y de alta disponibilidad en Azure. En esta arquitectura, Azure Application Gateway con Azure Web Application Firewall expone un punto de conexión público y enruta las solicitudes a Azure App Service mediante Azure Private Link. La aplicación App Service usa la integración de red virtual y Private Link para comunicarse de forma segura con soluciones de plataforma como servicio (PaaS) de Azure, como Azure Key Vault y Azure SQL Database.
Importante
Una implementación de ejemplo muestra esta implementación de App Service de línea base en Azure. Utilícelo como base para su solución de producción.
Arquitectura
Descargue un archivo Visio de esta arquitectura.
Componentes
Esta arquitectura comparte muchos componentes con la arquitectura básica de la aplicación web. En la lista siguiente se describen solo los componentes que difieren o amplían la arquitectura básica:
Application Gateway es un equilibrador de carga HTTP y HTTPS de nivel 7 y un administrador de tráfico web. En esta arquitectura, Application Gateway actúa como un único punto de entrada público. Application Gateway finaliza la seguridad de la capa de transporte (TLS) y evalúa las reglas de Azure Web Application Firewall. A continuación, reenvía las solicitudes aprobadas de forma privada a las instancias de App Service entre zonas de disponibilidad.
Azure Web Application Firewall es un servicio nativo en la nube que protege las aplicaciones web frente a vulnerabilidades de seguridad comunes, como la inserción de SQL y el scripting entre sitios (XSS). En esta arquitectura, Azure Web Application Firewall se ejecuta en Application Gateway y bloquea las solicitudes malintencionadas antes de llegar a App Service. Esta configuración mejora la seguridad y ayuda a mantener la disponibilidad.
Key Vault es un servicio que almacena y administra de forma segura secretos, claves de cifrado y certificados. En esta arquitectura, almacena el certificado TLS (X.509) que usa Application Gateway y contiene secretos de aplicación a los que App Service accede de forma privada.
Azure Virtual Network es un servicio que proporciona redes virtuales privadas aisladas y seguras en Azure. En esta arquitectura, la red virtual proporciona puntos de conexión privados, integración de App Service y subredes dedicadas para Application Gateway. Esta configuración aísla el tráfico y permite que App Service se comunique de forma segura con los servicios de Azure dependientes a través de puntos de conexión privados.
Private Link es un servicio de red que proporciona acceso privado a los servicios de Azure a través de la red troncal de Microsoft para eliminar la exposición a la red pública de Internet. En esta arquitectura, Private Link habilita conexiones de entrada privadas a App Service y conexiones salientes privadas de App Service a servicios como Key Vault, SQL Database y Azure Storage.
Azure DNS es un servicio de hospedaje para dominios del sistema de nombres de dominio (DNS). Proporciona resolución de nombres mediante la infraestructura de Microsoft Azure. Las zonas DNS privadas asignan el nombre de dominio completo (FQDN) de un servicio a la dirección IP de un punto de conexión privado. En esta arquitectura, las zonas DNS privadas asignan el dominio predeterminado de App Service y otros dominios de servicio PaaS a sus direcciones de punto de conexión privado para que todo el tráfico permanezca en la red privada.
Redes
La seguridad de red es fundamental para la arquitectura de línea de base de App Service. En un nivel alto, la arquitectura de red proporciona las siguientes funcionalidades:
Un único punto de entrada seguro para el tráfico de clientes
Filtrado del tráfico a través de Azure Web Application Firewall
Cifrado TLS de un extremo a otro para los datos en tránsito
Filtración de datos minimizada a través de Private Link, que mantiene el tráfico dentro de Azure
Agrupación lógica y aislamiento de recursos de red a través de la segmentación de red
Flujos de red
Flujo entrante
En los pasos siguientes se describe el flujo de entrada de Internet a la instancia de App Service:
El usuario emite una solicitud a la dirección IP pública de Application Gateway.
Application Gateway evalúa las reglas de Firewall de aplicaciones web, que protegen contra ataques como XSS e inyección de CÓDIGO SQL. Si una regla detecta una infracción, Application Gateway devuelve un error al solicitante y detiene el procesamiento. De lo contrario, Application Gateway enruta la solicitud al grupo de back-end, que en este caso es el dominio predeterminado de App Service.
La zona
privatelink.azurewebsites.netDNS privada se vincula a la red virtual. La zona DNS contiene un registro A que asigna el dominio predeterminado de App Service a la dirección IP privada del punto de conexión privado de App Service. Azure DNS usa este registro para resolver el dominio predeterminado a la dirección IP del punto de conexión privado.Application Gateway enruta la solicitud a una instancia de App Service a través del punto de conexión privado.
Flujo de salida
En los pasos siguientes se describe el flujo de salida de App Service a los servicios PaaS de Azure:
App Service envía una solicitud al nombre DNS del servicio de Azure necesario, como Key Vault, Storage, SQL Database o cualquier otro servicio de Azure que admita Private Link. La función de integración de red virtual de App Service enruta la solicitud a través de la red virtual.
De forma similar al paso 3 del flujo de entrada, la zona DNS privada vinculada contiene un registro A que asigna el dominio del servicio de Azure a su dirección IP del punto de conexión privado. Azure DNS usa este registro para resolver el dominio en la dirección IP del punto de conexión privado del servicio.
La red virtual enruta la solicitud al servicio a través del punto de conexión privado.
El tráfico saliente que no va a los servicios paaS de Azure sale a través de una dirección IP pública que comparten varios clientes. Por ejemplo, una aplicación web podría llamar a una API pública durante una solicitud HTTP. Para controlar este tipo de tráfico de salida, enrutelo a través de un dispositivo de red como Azure Firewall. Para más información, consulte Control del tráfico saliente mediante Azure Firewall.
Implementación de Application Gateway
Application Gateway es un equilibrador de carga escalable, regional y de nivel 7 que admite la descarga de TLS y el firewall de aplicaciones web de Azure. Al implementar Application Gateway para el tráfico entrante a App Service, tenga en cuenta los siguientes puntos:
Implemente Application Gateway y configure una directiva de Azure Web Application Firewall que use un conjunto de reglas administrado por Microsoft. Use el modo de prevención para bloquear los ataques web antes de llegar a un servicio de origen como App Service.
Implementar encriptación TLS de un extremo a otro.
Use puntos de conexión privados para implementar el acceso privado entrante a App Service.
Implemente el escalado automático para que Application Gateway ajuste la capacidad en función de la demanda de tráfico.
Considere la posibilidad de usar al menos tres instancias e implementar en todas las zonas de disponibilidad que admita la región. Application Gateway es de alta disponibilidad, pero la creación de una nueva instancia después de un error puede tardar hasta siete minutos, incluso para una sola instancia de escalado. Implemente varias instancias en zonas de disponibilidad para asegurarse de que una instancia permanece disponible mientras se inicia una nueva instancia.
Bloquee el acceso a la red pública en App Service para garantizar el aislamiento de red. En Bicep, establezca
publicNetworkAccessenDisableddentro deproperties.
Flujo de App Service a servicios de Azure
Esta arquitectura usa la integración de red virtual para enrutar el tráfico de App Service a los puntos de conexión privados a través de la red virtual. La arquitectura de línea de base no habilita todo el enrutamiento de tráfico, lo que forzaría todo el tráfico saliente a través de la red virtual. En su lugar, enruta solo el tráfico interno enlazado a los puntos de conexión privados.
En el caso de los servicios de Azure que no requieren acceso público a Internet, permita puntos de conexión privados y bloquee los puntos de conexión públicos. Los puntos de conexión privados mejoran la seguridad al permitir que App Service se conecte a los servicios de Private Link directamente desde la red virtual privada sin direcciones IP públicas.
En esta arquitectura, SQL Database, Storage y Key Vault tienen bloqueados los puntos de conexión públicos. Sus firewalls de servicio permiten el tráfico solo desde otros servicios de Azure autorizados. Configure otros servicios de Azure, como Azure Cosmos DB y Azure Managed Redis, con puntos de conexión privados. En esta arquitectura, Azure Monitor no usa un punto de conexión privado, pero puede implementar uno mediante un ámbito de Private Link (AMPLS) de Azure Monitor.
La arquitectura de línea de base implementa una zona DNS privada para cada servicio. Cada zona DNS privada contiene un registro A que asigna el FQDN del servicio a la dirección IP del punto de conexión privado. Las zonas se vinculan a la red virtual. Los grupos de zonas DNS privadas crean y actualizan automáticamente registros DNS para puntos de conexión privados.
Tenga en cuenta los siguientes puntos al implementar la integración de red virtual y los puntos de conexión privados:
Asigne un nombre a las zonas DNS privadas en función de las instrucciones de configuración de la zona DNS de los servicios de Azure.
Configure los firewalls de servicio para permitir conexiones privadas exclusivamente a cuentas de almacenamiento, almacenes de claves, bases de datos SQL y otros componentes de Azure.
Establezca la regla de acceso de red predeterminada de la cuenta de almacenamiento para denegar todo el tráfico que se origina fuera de la red virtual.
Segmentación y seguridad de la red virtual
La red de esta arquitectura tiene subredes independientes para Application Gateway, componentes de integración de App Service y puntos de conexión privados. Un grupo de seguridad de red (NSG) en cada subred solo permite el tráfico entrante y saliente necesario. En la tabla siguiente se describe una selección de reglas de NSG que puede agregar a cada subred.
| Subred | Entrada | Salida |
|---|---|---|
GatewaySubnet |
AppGw.In.Allow.ControlPlane: Permitir el acceso entrante al plano de control. AppGw.In.Allow443.Internet: permite el acceso HTTPS entrante a Internet. |
AppGw.Out.Allow.PrivateEndpoints: permite el acceso saliente a PrivateEndpointsSubnet. AppPlan.Out.Allow.AzureMonitor: permitir el acceso saliente a Azure Monitor. |
PrivateEndpointsSubnet |
Reglas predeterminadas: permitir el acceso entrante desde la red virtual. | Reglas predeterminadas: permitir el acceso saliente a la red virtual. |
AppServiceSubnet |
Reglas predeterminadas: permitir el acceso entrante desde la red virtual. |
AppPlan.Out.Allow.PrivateEndpoints: permite el acceso saliente a PrivateEndpointsSubnet. AppPlan.Out.Allow.AzureMonitor: permitir el acceso saliente a Azure Monitor. |
Tenga en cuenta los siguientes puntos al implementar la segmentación y la seguridad de la red virtual:
Habilite la protección contra DDoS para la red virtual que contiene una subred de puerta de enlace de aplicaciones con una dirección IP pública.
Agregue un NSG (grupo de seguridad de red) a cada subred siempre que sea posible. Use las reglas más estrictas que permitan la funcionalidad completa de la solución.
Use grupos de seguridad de aplicaciones para agrupar recursos lógicamente, lo que simplifica la creación de reglas de NSG en entornos complejos.
En la tabla siguiente se muestra un esquema de red de ejemplo.
| Tipo | Nombre | Intervalo de direcciones |
|---|---|---|
| Red de área virtual | Prefijo de dirección | 10.0.0.0/16 |
| Subred | GatewaySubnet | 10.0.1.0/24 |
| Subred | AppServiceSubnet | 10.0.0.0/24 |
| Subred | PrivateEndpointsSubnet | 10.0.2.0/27 |
| Subred | AgentsSubnet | 10.0.2.32/27 |
Consideraciones
Estas consideraciones implementan los pilares del Azure Well-Architected Framework, que es un conjunto de principios rectores que puede utilizar para mejorar la calidad de una carga de trabajo. Para obtener más información, consulte Marco de buena arquitectura.
Reliability
La confiabilidad ayuda a garantizar que la aplicación pueda cumplir los compromisos contraídos con los clientes. Para obtener más información, vea Lista de comprobación de revisión de diseño para lade confiabilidad.
La arquitectura de App Service de línea base se centra en la redundancia zonal para los servicios regionales clave. Las zonas de disponibilidad son ubicaciones físicamente independientes dentro de una región que proporcionan alta disponibilidad y tolerancia a errores. Al implementar dos o más instancias en zonas de disponibilidad en regiones admitidas, la falla de una zona no afecta a las demás. Este enfoque ayuda a mantener la disponibilidad del servicio.
La arquitectura también garantiza instancias suficientes de los servicios de Azure para satisfacer la demanda. En las secciones siguientes se proporcionan instrucciones de confiabilidad para cada servicio clave de la arquitectura.
Application Gateway
Implemente Application Gateway en una configuración con redundancia de zona con un recuento mínimo de instancias de escalado de tres o más. Varias instancias garantizan que el servicio permanece disponible durante los errores sin esperar el tiempo de inicio de seis minutos a siete minutos necesario para configurar una nueva instancia.
Servicio de Aplicaciones
Implemente un mínimo de dos instancias de App Service que admitan zonas de disponibilidad. Para lograr una mayor resistencia, implemente al menos una instancia para cada zona de disponibilidad de la región, además de instancias adicionales dentro de cada zona para la redundancia.
Implemente puntos de conexión de comprobación de estado en las aplicaciones y configure la característica de comprobación de estado de App Service para volver a enrutar las solicitudes de las instancias incorrectas. Para obtener más información, consulte Controlar instancias de App Service mediante comprobaciones de estado y las comprobaciones de estado en ASP.NET Core.
Capacidad de sobreaprovisionamiento para manejar los fallos de zona.
Almacenamiento de Blobs
Use el almacenamiento con redundancia de zona (ZRS), que replica los datos de forma sincrónica en tres zonas de disponibilidad de la región. Cree cuentas de almacenamiento ZRS estándar o almacenamiento con redundancia geozonal estándar (GZRS) para garantizar la replicación de datos en zonas de disponibilidad.
Cree cuentas de almacenamiento independientes para implementaciones, recursos web y otros datos para administrar y configurar cada cuenta de forma independiente.
SQL Database
Implemente SQL Database en el nivel de uso general, Premium o Crítico empresarial con redundancia de zona activada. Estos niveles admiten la redundancia de zona.
Configure las copias de seguridad de SQL Database para usar ZRS o GZRS.
Seguridad
La seguridad proporciona garantías contra ataques deliberados y el uso indebido de sus valiosos datos y sistemas. Para obtener más información, vea Lista de comprobación de revisión de diseño para security.
La arquitectura de línea de base de App Service se centra en recomendaciones de seguridad esenciales para su aplicación web. Debe comprender cómo funciona el cifrado y la identidad en cada nivel para ayudar a proteger la carga de trabajo.
Servicio de Aplicaciones
Desactive los métodos de autenticación local para las implementaciones de sitio de Protocolo de transferencia de archivos (FTP) y administración de control de código fuente (SCM).
Desactiva la depuración remota.
Use la versión más reciente de TLS que admiten todos los clientes.
Active el plan de Microsoft Defender para App Service.
Use las versiones más recientes de las plataformas compatibles, los lenguajes de programación, los protocolos y los marcos.
Considere Entorno de App Service si necesita un mayor aislamiento o un acceso seguro a la red.
Cifrado
Las aplicaciones web de producción deben cifrar los datos en tránsito mediante HTTPS. HTTPS se basa en TLS y usa claves públicas y privadas para el cifrado. Almacene el certificado TLS (X.509) en Key Vault y conceda permiso a Application Gateway para recuperar la clave privada. Para los datos en reposo, algunos servicios cifran automáticamente los datos y otros le permiten personalizar la configuración.
Datos en tránsito
La arquitectura básica cifra los datos mientras se transfieren del usuario a la aplicación web en App Service.
En el flujo de trabajo siguiente se describe cómo funciona el cifrado en un nivel alto:
El usuario envía una solicitud HTTPS a la aplicación web.
La solicitud HTTPS llega a la puerta de enlace de la aplicación.
La puerta de enlace de aplicaciones utiliza un certificado (X.509) en Key Vault para crear una conexión TLS segura con el navegador web del usuario. La puerta de enlace de aplicaciones descifra la solicitud HTTPS para que el firewall de aplicaciones web pueda inspeccionarla.
La puerta de enlace de aplicaciones crea una conexión TLS a App Service para volver a cifrar la solicitud de usuario. App Service proporciona compatibilidad nativa con HTTPS, por lo que no es necesario agregar un certificado a App Service. La puerta de enlace de aplicaciones envía el tráfico cifrado a App Service. App Service descifra el tráfico y la aplicación Web procesa la solicitud.
Tenga en cuenta las siguientes recomendaciones al configurar el cifrado de datos en tránsito:
Cree o cargue su certificado en Key Vault. El cifrado HTTPS requiere un certificado (X.509). Necesita un certificado de una autoridad de certificación de confianza para su dominio personalizado.
Almacene la clave privada del certificado en Key Vault.
Proporcione acceso a Application Gateway a la clave privada del certificado. Para más información, consulte Concesión de permisos mediante el control de acceso basado en rol de Azure (Azure RBAC) e identidades administradas para recursos de Azure. No utilice directivas de acceso al almacén de claves para proporcionar acceso. Las directivas de acceso permiten conceder solo permisos amplios, no valores específicos.
Active el cifrado de un extremo a otro. App Service es el grupo de back-end para la puerta de enlace de aplicaciones. Al configurar los ajustes del grupo de back-end, use el protocolo HTTPS en el puerto de back-end 443.
Datos en reposo
Use el cifrado de datos transparente para cifrar datos confidenciales en SQL Database. El cifrado de datos transparente cifra toda la base de datos, las copias de seguridad y los archivos de registro de transacciones y no requiere cambios en la aplicación web.
Coloque datos confidenciales en su propia base de datos y active el cifrado solo para esa base de datos. Este enfoque minimiza la latencia de cifrado de base de datos.
Comprende el soporte de cifrado integrado. Azure Storage cifra automáticamente los datos en reposo a través del cifrado del lado servidor (Estándar de cifrado avanzado de 256 bits [AES]). Azure Monitor cifra automáticamente los datos en reposo mediante claves administradas por Microsoft.
Gobernanza
Azure Policy ayuda a aplicar decisiones de arquitectura y seguridad para aplicaciones web. Puede impedir que los recursos no conformes se implementen (modo de denegación) o marcarlos para su revisión (modo de auditoría). Este enfoque ayuda a detectar el desfase de configuración de la arquitectura prevista, tanto si el desfase se produce a través de implementaciones de infraestructura como código (IaC) como cambios manuales en Azure Portal.
Coloque todos los recursos en su arquitectura bajo la gobernanza de Azure Policy. Use directivas integradas o iniciativas de directiva siempre que sea posible para aplicar la topología de red esencial, las características de servicio, la seguridad y las decisiones de supervisión. Tenga en cuenta las siguientes políticas integradas.
- App Service debe deshabilitar el acceso a la red pública.
- App Service debe usar la integración de red virtual.
- App Service debe usar Private Link para conectarse a los servicios paaS.
- App Service debe tener deshabilitados los métodos de autenticación local para las implementaciones de sitio FTP y SCM.
- App Service debe tener desactivada la depuración remota.
- Las aplicaciones de App Service deben usar la versión más reciente de TLS.
- Defender para App Service debe estar habilitado.
- Azure Web Application Firewall debe estar habilitado para Application Gateway.
Consulte más directivas integradas para servicios clave, como Application Gateway y componentes de red, App Service, Key Vault y componentes de supervisión. Puede crear directivas personalizadas o usar directivas de comunidad, como directivas de zonas de aterrizaje de Azure, si las directivas integradas no satisfacen sus necesidades. Se prefieren directivas integradas siempre que sea posible.
Administración de identidades y acceso
La arquitectura de línea de base de App Service configura la autenticación y autorización para las identidades de usuario (usuarios) y las identidades de carga de trabajo (recursos de Azure). Implementa el principio de privilegios mínimos.
Identidades de usuarios
Use el mecanismo de autenticación integrado para App Service, también denominado EasyAuth. EasyAuth simplifica la integración del proveedor de identidades con la aplicación web. Gestiona la autenticación fuera de su aplicación web, por lo que no tiene que realizar cambios significativos en el código.
Configura la URL de respuesta para el dominio personalizado. Establezca la dirección URL de redireccionamiento en
https://<application-gateway-endpoint>/.auth/login/<provider>/callback.Reemplace por
<application-gateway-endpoint>la dirección IP pública o el nombre de dominio personalizado de la puerta de enlace de aplicaciones. Reemplace<provider>con su proveedor de autenticación, comoaadpara Microsoft Entra ID.Para obtener instrucciones de configuración, consulte Consideraciones de Azure Front Door o Configuración de Application Gateway.
Identidades de cargas de trabajo
Use identidades administradas para las identidades de carga de trabajo. Las identidades administradas eliminan la necesidad de que los desarrolladores administren las credenciales de autenticación.
Utiliza identidades gestionadas asignadas por el usuario. Las identidades asignadas por el sistema pueden provocar errores en las implementaciones de IaC en función de las condiciones de paralelismo y el orden de las operaciones. Las identidades administradas asignadas por el usuario evitan algunos de estos escenarios de error de implementación. Para más información, consulte Identidades administradas.
Excelencia operativa
La excelencia operativa abarca los procesos de operaciones que implementan una aplicación y lo mantienen en ejecución en producción. Para obtener más información, vea Lista de comprobación de revisión de diseño para la excelencia operativa.
La implementación de la aplicación de App Service de línea base sigue las instrucciones de arquitectura de Azure Pipelines. Dado que la arquitectura de línea base deniega el acceso público a App Service y protege la cuenta de almacenamiento de implementación dentro de la red virtual, no se puede implementar desde fuera de la red virtual. Para solucionar esta restricción, la arquitectura usa agentes de implementación autohospedados que se ejecutan dentro de la red virtual. La siguiente guía de implementación se centra en la implementación del código de la aplicación, no en los cambios en la infraestructura ni en la base de datos.
Flujo de implementación
El pipeline de publicación envía una solicitud de trabajo a la cola de trabajos para los agentes autohospedados. El trabajo indica al agente que cargue el artefacto de compilación del archivo ZIP de publicación en una cuenta de almacenamiento.
Un agente de implementación autohospedado sondea la cola, recoge la solicitud de trabajo y descarga la tarea y el artefacto de construcción.
El agente de implementación autohospedado carga el archivo zip en la cuenta de almacenamiento mediante el punto de conexión privado de la cuenta de almacenamiento.
La canalización continúa y un agente administrado recoge un trabajo posterior. El agente administrado realiza una llamada de interfaz de línea de comandos (CLI) para actualizar la configuración de la aplicación WEBSITE_RUN_FROM_PACKAGE y referenciar el nuevo archivo ZIP de publicación para el slot de ensayo.
az webapp config appsettings set -g MyResourceGroupName -n MyUniqueApp --slot staging --settings WEBSITE_RUN_FROM_PACKAGE=UriToNewZipApp Service extrae el nuevo archivo ZIP de publicación del almacenamiento a través del punto de conexión privado de la cuenta de almacenamiento. Reinicia la instancia de almacenamiento provisional con el nuevo paquete porque
WEBSITE_RUN_FROM_PACKAGEse estableció en un nombre de archivo diferente.La canalización reanuda y ejecuta pruebas de humo o espera la aprobación manual. Después de pruebas o aprobaciones exitosas, la canalización intercambia los espacios de ensayo y producción.
Guía para la implementación
Aplique las siguientes instrucciones de implementación para la arquitectura de línea base:
Ejecute la implementación directamente desde un paquete de App Service para evitar conflictos de implementación. Este enfoque monta el paquete ZIP directamente como directorio wwwroot de solo lectura en lugar de copiar archivos. Elimina los conflictos de bloqueo de archivos entre la implementación y el tiempo de ejecución y garantiza que solo se ejecuten aplicaciones totalmente implementadas.
Incluya números de versión en los nombres de archivo ZIP del paquete implementado. Al actualizar la configuración de la
WEBSITE_RUN_FROM_PACKAGEaplicación para hacer referencia al paquete de implementación que tiene un nombre de archivo diferente, App Service extrae automáticamente el nuevo paquete y se reinicia.Use ranuras de implementación para implementaciones de código resistentes.
Considere la posibilidad de usar agentes administrados y autohospedados.
Use agentes autohospedados para cargar archivos ZIP de paquetes en la cuenta de almacenamiento a través del punto de conexión privado. Los agentes inician la comunicación con la canalización a través del sondeo, por lo que no es necesario abrir la red para las llamadas entrantes.
Use agentes administrados para otros trabajos de canalización.
Use IaC para automatizar las implementaciones de infraestructura.
Valide el rendimiento y la resistencia de la carga de trabajo continuamente mediante el uso de servicios como Azure Load Testing y Azure Chaos Studio.
Configuración
Las aplicaciones requieren tanto valores de configuración como secretos. Use las instrucciones siguientes para la configuración y la administración de secretos:
Nunca almacene secretos como contraseñas o claves de acceso en el control de código fuente. Almacene secretos en Key Vault.
Almacenar la configuración de la aplicación en la configuración de App Service. Si necesita compatibilidad con la configuración externa o el indicador de características, use Azure App Configuration.
Utilice referencias a Key Vault en la configuración de App Service para exponer secretos de forma segura en su aplicación.
Configura los ajustes de la aplicación específicos del slot si los slots de producción y preparación necesitan valores diferentes. De forma predeterminada, la configuración de la aplicación se intercambia con la ranura durante la implementación.
Use variables de entorno locales o características específicas de la plataforma para el desarrollo local. La configuración de App Service expone la configuración de la aplicación como variables de entorno. Las herramientas de desarrollo como Visual Studio permiten establecer variables de entorno en perfiles de inicio y proporcionar almacenamiento seguro para la configuración local a través de secretos de usuario.
Supervisión
La supervisión recopila y analiza los datos de los sistemas de tecnología de la información (TI) para proporcionar observabilidad. En esta arquitectura, la supervisión realiza un seguimiento del estado y la seguridad de las aplicaciones web en varias capas, lo que ayuda a mantener operaciones confiables.
Supervise tres capas clave:
Código de aplicación: Realice un seguimiento de la telemetría específica de la aplicación y las métricas personalizadas.
Infraestructura (tiempo de ejecución): Supervise el entorno de tiempo de ejecución de App Service.
Plataforma (recursos de Azure): Recopile métricas y registros de servicios de Azure como Application Gateway, SQL Database y Key Vault.
Para más información, consulte Registro de actividad de Azure, registros de recursos de Azure y registro de aplicaciones de App Service.
Supervisar la plataforma
La supervisión de la plataforma recopila datos de los servicios de Azure en la arquitectura.
Añada una configuración de diagnóstico para cada recurso Azure. Cada servicio de Azure tiene un conjunto diferente de registros y métricas que puede capturar. Use la tabla siguiente para averiguar qué métricas y registros se van a recopilar.
Recurso de Azure Descripciones de métricas y registros Application Gateway Descripciones de métricas y registros de Application Gateway Firewall de aplicaciones web de Azure Descripciones de registros y métricas de Azure Web Application Firewall Servicio de Aplicaciones Descripciones de métricas y registros de App Service SQL Database Descripción de las métricas y registros de SQL Database Azure Cosmos DB (la base de datos de Azure Cosmos) Descripciones de métricas y registros de Azure Cosmos DB Bóveda de claves Descripciones de métricas y registros de Key Vault Almacenamiento de Blobs Descripciones de registros y métricas de Blob Storage Application Insights Métricas y registros de Application Insights descripciones Dirección IP pública Direcciones IP públicas métricas y registros descripciones Equilibre las necesidades de observabilidad con el costo. Cuantos más datos recopile, mayor será el costo. Para más información, consulte Cálculos de costes y opciones de Log Analytics y Precios del área de trabajo de Log Analytics.
Cree alertas para todos los recursos de Azure en la arquitectura. Configure acciones automatizadas para corregir problemas cuando se desencadenen alertas. Comience con reglas de alerta recomendadas comunes y, a continuación, afinarlas con el tiempo. Para obtener más información, consulte los siguientes recursos:
Application Gateway
Application Gateway supervisa la salud del grupo de back-end mediante sondeos de salud predeterminados. Use los registros de acceso de Application Gateway para recopilar información como marcas de tiempo, códigos de respuesta HTTP y rutas de acceso url. Para obtener más información, consulte Registros de estado y diagnóstico de back-end.
Servicio de Aplicaciones
App Service proporciona capacidades de monitoreo incorporadas e integradas para mejorar la observabilidad. Si la aplicación web ya tiene características de telemetría y supervisión, como la instrumentación en proceso, esas características siguen funcionando en App Service.
Active la instrumentación automática para ampliar la instrumentación sin cambios en el código. Esta característica proporciona visibilidad de la supervisión del rendimiento de la aplicación (APM). Para más información, consulte Supervisión del rendimiento de App Service.
Active el seguimiento distribuido para realizar un seguimiento de las solicitudes en varios servicios y dependencias. Puede supervisar los sistemas en la nube distribuidos mediante el seguimiento distribuido y un generador de perfiles de rendimiento.
Utilice instrumentación basada en código para telemetría personalizada. Application Insights también admite la instrumentación basada en código para la telemetría de aplicaciones personalizada. Añada el SDK de Application Insights a su código y utilice la API de Application Insights.
Active los registros de App Service para los diagnósticos de nivel de plataforma. App Service proporciona cuatro tipos de registro para solucionar problemas: registros de aplicaciones, registros de servidor web, mensajes de error detallados y seguimiento de solicitudes con errores.
Utilice registros estructurados. Añada una biblioteca de registro estructurado al código de su aplicación. Actualice el código para usar pares clave-valor y active los registros de aplicación en App Service para almacenarlos en el área de trabajo de Log Analytics.
Active la característica de comprobación de estado de App Service para mantener la disponibilidad. Las comprobaciones de estado detectan instancias no saludables, redireccionan el tráfico lejos de ellas y las reemplazan automáticamente. Esta característica requiere dos o más instancias de App Service.
Base de datos
Active la supervisión de la base de datos para SQL Database. Use Database Watcher, que es una solución de supervisión administrada para los servicios de base de datos de la familia de Azure SQL. Para más información, consulte Supervisión de SQL Database mediante Azure Monitor.
No habilite ni configure nada para usar La información de Azure Cosmos DB si la arquitectura incluye Azure Cosmos DB.
Eficiencia del rendimiento
La eficiencia del rendimiento hace referencia a la capacidad de escalado de la carga de trabajo para satisfacer las demandas de los usuarios de forma eficaz. Para obtener más información, vea Lista de comprobación de revisión de diseño para la eficiencia del rendimiento.
Application Gateway
Implemente el escalado automático para Application Gateway escalar o reducir horizontalmente para satisfacer la demanda.
Establezca el recuento máximo de instancias en un número superior a sus necesidades previstas. Solo paga por las unidades de capacidad que use.
Establezca un número mínimo de instancias que pueda gestionar pequeños picos de tráfico. Puede usar el uso medio de la unidad de proceso para calcular el recuento mínimo de instancias.
Siga las instrucciones sobre cómo cambiar el tamaño de la subred de Application Gateway.
Servicio de Aplicaciones
Use planes estándar o superiores que incluyan tres o más instancias de trabajo para lograr una alta disponibilidad.
Activa la escalabilidad automática para asegurarte de que puedes aumentar y disminuir los recursos según la demanda.
Considere abrir un ticket de soporte para aumentar el número máximo de trabajadores al doble del número de instancias si su App Service utiliza constantemente la mitad del número máximo de instancias. El número máximo de instancias es predeterminado hasta 30 para un plan Premium App Service y 10 para un plan Standard.
Considere implementar varias instancias de la aplicación cuando App Service empiece a alcanzar los límites superiores.
Elija el plan de App Service adecuado que cumpla los requisitos de la carga de trabajo.
Agregue Azure Content Delivery Network a App Service para almacenar en caché y entregar recursos estáticos como imágenes y archivos de JavaScript desde ubicaciones perimetrales más cercanas a los usuarios.
Considere la posibilidad de usar App Service Environment para evitar problemas ruidosos de vecinos.
SQL Database
El escalado de bases de datos implica muchas consideraciones más allá del ámbito de esta arquitectura. Para obtener más información sobre el escalado de SQL Database, consulte los siguientes recursos:
- Escalado dinámico de recursos de base de datos con tiempo de inactividad mínimo
- Escalar horizontalmente mediante SQL Database
- Uso de réplicas de solo lectura para descargar cargas de trabajo de consulta de solo lectura
Otros consejos sobre escalabilidad
Revise los límites y las cuotas de la suscripción para garantizar que los servicios se adapten a la demanda.
Considere la posibilidad de almacenar en caché los siguientes tipos de datos para aumentar el rendimiento y la escalabilidad:
- Datos de transacciones semiestáticas
- Estado de sesión
- Salida HTML compleja