Para los clientes de segmentos que están estrechamente regulados y restringidos por el cumplimiento, es importante tener un entorno aislado y dedicado, especialmente para las aplicaciones de línea de negocio. Aunque la seguridad es frontal y central, estas aplicaciones críticas también requieren la capacidad de escalar y tener un desempeño adecuado en escenarios de uso elevado de memoria o de muchas solicitudes por segundo. Esta solución proporciona un ejemplo de cómo puede hospedar aplicaciones de línea de negocio. Puede usar App Service Environment para asegurarse de que tanto la seguridad como el rendimiento se puedan abordar simultáneamente. Al implementar esta solución, tendrá la flexibilidad de usar los recursos existentes en la zona de aterrizaje de Azure, que representa los recursos de la red virtual del concentrador. O bien, puede implementar esta solución como una carga de trabajo independiente.
Nota:
En este artículo se proporciona una arquitectura implementable que se alinea con la guía de Cloud Adoption Framework para App Service en las zonas de aterrizaje de Azure.
Arquitectura
La totalidad de esta imagen está en el ámbito de una suscripción y una zona DNS privada. Se indica mediante un icono de suscripción y un icono de zona de DNS privado de Azure en la esquina superior izquierda. Debajo de estos iconos, hay dos bloques en paralelo. Representan dos redes virtuales, con emparejamiento de red virtual entre ellas. El bloque de la izquierda representa la red virtual del concentrador y el bloque de la derecha representa la red virtual del radio. Dentro del cuadro de la izquierda, hay tres cuadros más pequeños. Cada cuadro indica una subred diferente y su grupo de seguridad de red asociado. Comenzando por la parte superior izquierda, hay una instancia de Azure Bastion dentro de la subred de Azure Bastion, y la parte superior derecha es la máquina virtual del jumpbox, que reside en la subred del jumpbox. En la parte inferior derecha, se encuentra el tercer y último cuadro de la red virtual del concentrador, que contiene el servidor del agente de CI/CD que reside en la subred de CI/CD. El cuadro de la derecha, que representa la red virtual del radio, contiene solo un cuadro más pequeño, la subred de App Service Environment, que contiene la instancia de App Service Environment v3. Un cuadro más pequeño representa la instancia de App Service Environment. El icono de App Service está dentro de ese cuadro. En el centro de la parte inferior de la imagen, hay recursos compartidos que también se implementan como parte del proceso. Comenzando por la izquierda hacia la derecha, los recursos compartidos incluyen Azure Key Vault, el área de trabajo de Azure Log Analytics y Azure Application Insights.
Descargue un archivo Visio de esta arquitectura.
Flujo de trabajo
Hay tres flujos con llamadas en esta arquitectura: Operaciones (naranja), Implementación (verde) y Usuario (púrpura).
Operations
- Los operadores o administradores querrán realizar tareas de administración en el servidor de integración continua y entrega continua (CI/CD) o en el punto de conexión de Kudu de la instancia de App Service Environment. En primer lugar, tendrán que conectarse al host de Azure Bastion.
- Mediante el host de Azure Bastion, el operador o el administrador pueden usar el Protocolo de escritorio remoto (RDP) para acceder al servidor jumpbox.
- Desde el servidor jumpbox, el operador o el administrador pueden conectarse mediante RDP al servidor de CI/CD y realizar las tareas necesarias, como las actualizaciones del agente, las actualizaciones del sistema operativo, etc. El operador o administrador también pueden conectarse desde el servidor jumpbox al punto de conexión de Kudu de la instancia de App Service Environment para realizar tareas administrativas o una solución de problemas avanzada.
Implementación
- La implementación de la solución se realiza mediante el servidor del agente de CI/CD. El agente de DevOps de este servidor se conectará con Azure Pipelines cuando se ejecute una nueva implementación.
- A continuación, los artefactos se implementarán en la instancia de App Service mediante la conexión a App Service Environment con el emparejamiento de red virtual.
Usuario
- Los usuarios pueden conectarse a la instancia de App Service implementada mediante la red de la empresa. Pueden usar Azure ExpressRoute o una VPN si es necesario, o también cualquier emparejamiento de red virtual de Azure aplicable.
Componentes
La solución usa los siguientes servicios de Azure:
Azure App Service Environment v3 (ASEv3) es una característica de Azure App Service y es un servicio de un solo inquilino para los clientes que requieren una gran escala, un uso elevado de memoria, aislamiento de red y seguridad. Las aplicaciones se hospedan en planes de App Service creados en App Service Environment v3, con opciones de uso de diferentes niveles dentro de un plan de servicio aislado de la versión V2. En comparación con una versión anterior de App Service Environment, se han realizado numerosas mejoras, entre las que se incluyen, entre otras, la dependencia de red, el tiempo de escalado y la eliminación de la cuota de stamp. Esta solución usa una instancia de App Service Environment v3 configurada para el acceso interno.
La zona DNS privada de Azure le permite administrar y resolver los nombres de dominio de una red virtual sin necesidad de implementar una solución DNS personalizada. Una zona DNS privada de Azure se puede alinear a una o varias redes virtuales mediante vínculos de red virtual. Debido a la naturaleza interna de App Service Environment v3 que usa esta arquitectura de referencia, se requiere una zona DNS privada para resolver los nombres de dominio de las aplicaciones hospedadas en la instancia de App Service Environment.
Azure Application Insights es una característica de Azure Monitor que ayuda a los desarrolladores a detectar anomalías, diagnosticar problemas y comprender los patrones de uso. Application Insights proporciona una administración y supervisión del rendimiento de las aplicaciones extensible para las aplicaciones web en directo. Se admiten varias plataformas, como .NET, Node.js, Java y Python. Admite aplicaciones hospedadas en Azure, en el entorno local, en un entorno híbrido o en otras nubes públicas. Application Insights se incluye como parte de esta arquitectura de referencia para supervisar los comportamientos de la aplicación implementada.
Azure Log Analytics es una característica de Azure Monitor que permite editar y ejecutar consultas de registro con datos de los registros de Azure Monitor, opcionalmente desde Azure Portal. Los desarrolladores pueden ejecutar consultas sencillas para un conjunto de registros o usar Log Analytics para realizar un análisis avanzado. Después, pueden visualizar los resultados. Log Analytics se configura como parte de esta arquitectura de referencia para agregar todos los registros de supervisión para el análisis y los informes.
Azure Virtual Machines es un recurso de proceso escalable a petición que se puede usar para hospedar varias cargas de trabajo diferentes. En esta arquitectura de referencia, las máquinas virtuales se usan para proporcionar un servidor jumpbox de administración y para proporcionar un host para el agente de DevOps o el ejecutor de GitHub.
Azure Key Vault es un servicio en la nube que almacena y accede de forma segura a los secretos, que van desde claves y contraseñas de API hasta certificados y claves criptográficas. Se implementa una instancia de Azure Key Vault como parte de la infraestructura de esta arquitectura para facilitar la administración de secretos para futuras implementaciones de código.
Azure Bastion es una plataforma como servicio que se aprovisiona dentro de la red virtual del desarrollador. Proporciona conectividad RDP/SSH segura a las máquinas virtuales de los desarrolladores desde Azure Portal mediante TLS. Con Azure Bastion, las máquinas virtuales ya no requieren una dirección IP pública para conectarse mediante RDP/SSH. Esta arquitectura de referencia usa Azure Bastion para acceder al servidor del agente de DevOps o del ejecutor de GitHub, o al servidor jumpbox de administración.
Alternativas
Considere la posibilidad de agregar una instancia de Azure Application Gateway antes de la instancia de App Service para proporcionar la funcionalidad de Web Application Firewall (WAF) para proteger las aplicaciones web frente a vulnerabilidades de seguridad comunes.
Se puede usar un ejecutor de GitHub autohospedado en lugar del agente autohospedado de Azure DevOps.
Consideraciones
Estas consideraciones implementan los pilares del marco de buena arquitectura de Azure, que es un conjunto de principios guía que se pueden usar para mejorar la calidad de una carga de trabajo. Para más información, consulte Marco de buena arquitectura de Microsoft Azure.
Confiabilidad
La confiabilidad garantiza que la aplicación pueda cumplir los compromisos contraídos con los clientes. Para más información, consulte Resumen del pilar de fiabilidad.
- Tenga en cuenta los requisitos de redundancia de zona en esta implementación de referencia, así como las funcionalidades de redundancia de zona de cualquier otro servicio de Azure de la solución. App Service Environment v3 admite la redundancia de zona mediante la distribución de las instancias en las tres zonas de la región de destino. Esta configuración solo se puede establecer en el momento de la creación de la instancia de App Service Environment y es posible que no esté disponible en todas las regiones. Para más información, consulte Compatibilidad de zonas de disponibilidad con App Service Environment. Esta implementación de referencia implementa la redundancia de zona, pero puede clonar este repositorio y establecer la propiedad
zoneRedundant
enfalse
para modificarlo.
Seguridad
La seguridad proporciona garantías contra ataques deliberados y el abuso de datos y sistemas valiosos. Para más información, consulte Introducción al pilar de seguridad.
- Utilice adecuadamente las restricciones de acceso para que el servicio de aplicaciones solo sea accesible desde ubicaciones válidas. Por ejemplo, si el servicio de aplicaciones hospeda las API y está controlado mediante APIM, puede configurar una restricción de acceso para que el servicio de aplicaciones solo sea accesible desde APIM.
- Dado que esta implementación de referencia implementa una instancia de App Service Environment en una red virtual (denominada instancia interna de App Service Environment), todas las aplicaciones implementadas en App Service Environment están inherentemente aisladas de la red, en el ámbito de la red virtual.
- Almacene los secretos de aplicación (credenciales de base de datos, tokens de API y claves privadas) en Azure Key Vault. Configure la aplicación de App Service para que acceda a ellas de forma segura con una identidad administrada. Determine cuándo usar Azure Key Vault en lugar de Azure App Configuration.
Optimización de costos
La optimización de costos trata de buscar formas de reducir los gastos innecesarios y mejorar las eficiencias operativas. Para más información, vea Información general del pilar de optimización de costos.
- Aunque no hay ninguna cuota de stamp para una instancia de App Service Environment v3, hay un cargo que se cobra cuando no se configura ningún plan de App Service dentro de la instancia de App Service Environment v3. Este cargo se aplica a la misma tarifa que una instancia I1v2 con Windows para la región en la que se implementa la instancia de App Service Environment v3.
- Cuando se configura para tener redundancia de zona, el modelo de cargos se ajusta para tener en cuenta la infraestructura subyacente que se implementa en esta configuración. Es posible que sea responsable de cargos por instancias adicionales, según los precios de ASEv3.
- En el caso de los planes de App Service de Azure App Service Environment v3 (conocidos como planes de App Service aislados V2), use Azure Reservations y el plan de ahorro de Azure para el proceso con un contrato de uno o tres años y reciba un ahorro significativo en los precios de pago por uso. Para más información, consulte Cómo se aplican los descuentos de reserva a instancias v2 aisladas.
Excelencia operativa
La excelencia operativa abarca los procesos de las operaciones que implementan una aplicación y la mantienen en ejecución en producción. Para más información, consulte Introducción al pilar de excelencia operativa.
- Utilice Application Insights u otra solución de administración del rendimiento de aplicaciones para supervisar y obtener información sobre cómo se comporta la aplicación en diferentes entornos.
- Hay dos maneras de habilitar Application Insights. Para entornos diferentes, recopile los datos de telemetría en diferentes instancias de Application Insights.
- Si la aplicación tiene varios componentes separados en distintos servicios, es posible que desee examinar su comportamiento en conjunto. Recopile sus datos de telemetría en la misma instancia de Application Insights, pero etiquételos con distintos nombres de rol en la nube.
- Exporte los datos de Application Insights a un área de trabajo de Azure Log Analytics. Se recomienda usar una sola área de trabajo para la organización.
- Incluya paneles operativos en el diseño de las aplicaciones y las características para asegurarse de que la solución se pueda admitir en producción.
- Implemente comprobaciones de estado para los puntos de conexión y después úselas para sondeos de estado, comprobaciones de dependencias y pruebas de disponibilidad.
- Considere la posibilidad de usar prefijos y sufijos con convenciones bien definidas para identificar de forma única cada recurso implementado. Estas convenciones de nomenclatura evitan conflictos al implementar soluciones juntas y mejoran la agilidad y el rendimiento generales del equipo.
- En función de la configuración de red, es posible que App Service no sea accesibles desde la red pública de Internet, y el uso de agentes hospedados públicos no funcionará en las implementaciones. Utilice agentes autohospedados en ese escenario.
Implementación de este escenario
Para empezar a trabajar y comprender mejor los detalles de esta implementación, revise los recursos de implementación de referencia en Guía del usuario para la implementación de la implementación de referencia.
- Se recomienda clonar este repositorio y modificar los recursos de la implementación de referencia para satisfacer sus requisitos y las directrices específicas de la zona de aterrizaje de la organización.
- Antes de la implementación, asegúrese de que la entidad de servicio que se usa para implementar la solución tenga los permisos necesarios para crear los tipos de recursos enumerados anteriormente.
- Tenga en cuenta el servicio CI/CD que usará para implementar la implementación de referencia. Dado que esta implementación de referencia es una instancia interna de App Service Environment, necesitará un agente autohospedado para ejecutar las canalizaciones de implementación. Tiene la opción de usar un agente de DevOps o un ejecutor de GitHub. Consulte la guía del usuario sobre los valores de configuración específicos necesarios.
- Tenga en cuenta las regiones en las que va a implementar esta implementación de referencia. Consulte la lista de regiones de ASEv3 para asegurarse de que las regiones seleccionadas estén habilitadas para la implementación.
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes colaboradores.
Creadores de entidad de seguridad:
- Pete Messina | Arquitecto sénior de soluciones en la nube
- Nabeel Prior | Arquitecto sénior de soluciones en la nube
Para ver los perfiles no públicos de LinkedIn, inicie sesión en LinkedIn.
Pasos siguientes
- Seguridad en Azure App Service
- Características de redes de App Service
- Guía de Cloud Adoption Framework para App Service en zonas de aterrizaje de Azure
Obtenga más información sobre estos servicios clave:
- Información general sobre App Service Environment
- ¿Qué es una zona de Azure DNS privada?
- Azure Application Insights
- Azure Log Analytics
- Introducción a Azure Virtual Machines
- Conceptos básicos de Azure Key Vault
- Azure Bastion
Recursos relacionados
- Implementación empresarial de alta disponibilidad mediante App Services Environment
- Implementación empresarial mediante App Service Environment
- Implementación empresarial de alta disponibilidad mediante App Service Environment
- Sitio web de comercio electrónico que se ejecuta en App Service Environment de forma segura