Servicio de aplicaciones de varios niveles con punto de conexión de servicio

App Service
Virtual Network

Cualquier aplicación web que se desarrolla y distribuye entre más de una capa se conoce como aplicación web de niveles múltiples. Los niveles dividen la aplicación en dos o más componentes que se pueden desarrollar y ejecutar por separado. En pocas palabras, una aplicación web de niveles múltiples es una aplicación web front-end que llama a una o varias aplicaciones de API subyacentes. Esta arquitectura de referencia muestra cómo usar puntos de conexión de servicio para comunicaciones seguras entre App Services en un entorno de niveles múltiples.

Mediante el uso de puntos de conexión de servicio, puede controlar el acceso entrante a la aplicación de API. Puede especificar que todos los descriptores de acceso deben estar en las subredes que seleccione. La restricción se puede establecer en la aplicación de API o en el sitio front-end con reglas de permitir y denegar en los niveles de red virtual y subred.

Nota

Aunque este artículo se centra en el uso de puntos de conexión de servicio, otros aspectos de la arquitectura, como Azure App Service e integración de red virtual, son ampliamente aplicables.

Posibles casos de uso

Esta arquitectura puede adaptarse a estos casos de uso:

  • Soluciones con dos servicios que requieren restricciones de acceso
  • Aplicaciones financieras y sanitarias que requieren conexiones privadas a una aplicación de API de back-end

Arquitectura

Arquitectura de una aplicación de niveles múltiples.

Descargue un archivo Visio de esta arquitectura.

Este es el flujo de tráfico y la configuración básica de la arquitectura:

  1. Las solicitudes se enrutan desde Internet a una aplicación front-end.
  2. La característica de integración de red virtual de App Service enruta todas las comunicaciones salientes desde las aplicaciones front-end a la subred de integración. Para obtener más información sobre el uso de la integración de red virtual, consulte Integración de una aplicación con una red virtual de Azure.
  3. La aplicación de API tiene puntos de conexión de servicio que restringen las comunicaciones entrantes; solo permiten comunicaciones desde aplicaciones front-end en la subred de integración. Para obtener más información sobre los puntos de conexión de servicio, consulte Puntos de conexión de servicio de Virtual Network.
  4. No se puede acceder a la aplicación de API desde la red pública de Internet. Solo los componentes internos o los componentes conectados a la red virtual pueden ponerse en contacto con la aplicación de API.
  5. Un grupo de recursos es un contenedor que almacena los recursos relacionados con una solución de Azure. Los recursos pueden incluir máquinas virtuales, redes virtuales, cuentas de almacenamiento, aplicaciones web, bases de datos y servidores de bases de datos. Puede ser conveniente agrupar recursos que tengan el mismo ciclo de vida para que pueda implementarlos, actualizarlos y eliminarlos fácilmente como un grupo. Para obtener más información, consulte Qué es un grupo de recursos.

Componentes

  • Azure Virtual Network proporciona una red privada segura en la nube. Conecta máquinas virtuales entre sí, a Internet y a redes locales.
  • Azure App Service es un servicio totalmente administrado para compilar, implementar y escalar aplicaciones web. Puede compilar aplicaciones mediante .NET, .NET Core, Node.js, Java, Python o PHP. Las aplicaciones se pueden ejecutar en contenedores o en Windows o Linux. La característica de integración de red virtual de App Service puede proporcionar a la aplicación acceso a los recursos dentro o a través de una red virtual. Para más información, consulte Integración de una aplicación con una red virtual de Azure.
  • Azure Private Link proporciona acceso privado a los servicios hospedados en la plataforma de Azure conservando sus datos en la red de Microsoft.

Alternativas

  • Puede implementar la aplicación front-end y la aplicación de API en la misma instancia de Azure App Service Environment y hacer que la aplicación front-end sea accesible directamente a Internet mediante una puerta de enlace de aplicación. Para obtener información acerca de las instancias de App Service Environment, consulte Introducción a instancias de App Service Environment.

  • Otra técnica consiste en implementar la aplicación front-end en el servicio multiinquilino y la aplicación de API en una instancia de App Service Environment. También puede hospedar la aplicación front-end y de API en el servicio multiinquilino.

  • Hay otras maneras de proteger las aplicaciones web, como:

    • Direcciones asignadas a las aplicaciones
    • Restricciones de acceso
    • Azure Private Link

    Para más información, consulte la Características de red de App Service.

Ventajas

  • Esta arquitectura proporciona una manera de crear una aplicación web de niveles múltiples que tiene un back-end de API seguro. El tráfico a la aplicación de API solo procede de la subred de la aplicación web front-end.
  • Los puntos de conexión de servicio son más asequibles, rápidos y fáciles de configurar en comparación con instancias de App Service Environment. No hay ninguna manera de que una aplicación web de App Service se una a una red virtual sin la instancia de App Service Environment, lo que resulta costoso.
  • Los puntos de conexión de servicio funcionan bien a menor escala, ya que puede habilitar fácilmente puntos de conexión de servicio para la aplicación de API en la subred de integración front-end.
  • El uso de Private Link agrega complejidad porque hay dos subredes. Además, la conexión privada es un recurso de nivel superior que supone una sobrecarga administrativa.

Consideraciones

Los puntos de conexión de servicio protegen las aplicaciones de API para que solo puedan acceder a ellas aplicaciones front-end. Sin embargo, las aplicaciones front-end no están protegidas de otras aplicaciones front-end.

Disponibilidad

  • Un sistema no puede tener alta disponibilidad a menos que sea confiable. Para obtener técnicas para aumentar la confiabilidad, consulte Patrones de confiabilidad.

Escalabilidad

  • La eficiencia del rendimiento es la capacidad que tiene la carga de trabajo para escalar con el fin de satisfacer de manera eficiente las demandas que se hayan realizado sobre ella. Tenga en cuenta los patrones de eficiencia del rendimiento a medida que diseña y compila la aplicación en la nube. Para obtener más información, vea Patrones de eficiencia de rendimiento.
  • Obtenga información sobre el escalado de una aplicación web básica en Escalado de la aplicación de App Service. Revise los demás artículos de la misma sección para obtener información sobre otras arquitecturas.
  • Para obtener más información sobre la eficiencia del rendimiento, consulte Lista de comprobación de eficiencia del rendimiento.

Precios

Puede usar la calculadora de precios de Azure para calcular los costos.

Algunos aspectos que afectan al costo de una implementación son:

  • La escalabilidad de la solución: cómo admite los cambios en la demanda.
  • Si la solución se ejecuta de forma continua o intermitente.
  • Los niveles de servicio elegidos.

Pasos siguientes