Hosting de aplicaciones web, API REST y back-ends en Azure

Azure ofrece varios servicios que se pueden usar para hospedar aplicaciones web y sitios web. Para la mayoría de los escenarios, App Service es la mejor opción. En el caso de la arquitectura de microservicios, considere la posibilidad de usar Azure Spring Apps o Service Fabric. Si necesita más control sobre las máquinas virtuales en las que se ejecuta el código, considere la posibilidad de utilizar Azure Virtual Machines.

Azure APP Service

Azure App Service es un servicio basado en HTTP para hospedar aplicaciones web, API REST y back-ends para dispositivos móviles. Las aplicaciones se ejecutan y escalan fácilmente en los entornos basados tanto en Windows como en Linux (Se puede hospedar las aplicaciones Web de forma nativa en Linux para las pilas de aplicaciones admitidas. Además, puede ejecutar contenedores de Linux personalizados también conocidos como Web App for Containers.).
App Service agrega a la aplicación capacidades potentes de Microsoft Azure, como la seguridad mejorada, el equilibrio de carga, el escalado automático y la administración automatizada. También es compatible con las funcionalidades de DevOps, por ejemplo, la implementación continua desde Azure DevOps, GitHub, Docker Hub y otros orígenes, la administración de paquetes, entornos de ensayo, dominio personalizado y certificados TLS/SSL.
Con App Service, se paga por los recursos de proceso de Azure que se utilizan. Los recursos de proceso que usa se determinan mediante el plan de App Service en el que ejecuta las aplicaciones.
Azure App Service es una oferta de plataforma como servicio (PaaS) completamente administrada para desarrolladores. Estas son algunas características clave de App Service:

  • Compatibilidad múltiple lenguaje : App Service tiene soporte de primera clase con ASP.NET, ASP.NET Core, Java, Node.js, PHP y Python. También puede ejecutar PowerShell y otros scripts o ejecutables como servicios en segundo plano.
  • Entorno de producción gestionado: App Service parchea y mantiene los frameworks del sistema operativo y del lenguaje de programación de forma automática.
  • Contenedores y Docker: Aplique Docker a la aplicación y hospede un contenedor de Windows o Linux personalizado en App Service. Ejecute contenedores sidecar de su elección. Migre sus habilidades de Docker directamente a App Service.
  • Optimización con DevOps: Configure la integración y la implementación continuas con Azure DevOps, GitHub, BitBucket, Docker Hub o Azure Container Registry. Promueva actualizaciones a través de entornos de ensayo y prueba. Administre las aplicaciones de App Service mediante Azure PowerShell o la interfaz de la línea de comandos (CLI) multiplataforma.
  • Escala global con alta disponibilidad: escale verticalmente u horizontalmente de forma manual o automática. Hospede las aplicaciones en cualquier parte de la infraestructura del centro de datos global de Microsoft y el Acuerdo de Nivel de Servicio de App Service promete una alta disponibilidad.
  • Conexiones a plataformas SaaS y a datos locales: elija entre cientos de conectores para sistemas empresariales (como SAP), servicios SaaS (como Salesforce) y servicios de Internet (como Facebook). Acceda a los datos locales mediante Conexiones híbridas y Azure Virtual Network.
  • Seguridad y cumplimiento: App Service cumple con ISO, SOC y PCI. Cree restricciones de dirección IP e identidades de servicio administradas.
  • AutenticaciónAutenticar usuarios mediante el componente de autenticación incorporado. Autentique a los usuarios con Microsoft Entra IDGoogleFacebookTwitter o cuentas Microsoft.
  • Plantillas de aplicación: elija entre una amplia lista de plantillas de aplicación en Azure Marketplace, como WordPress, Joomla y Drupal.
  • Integración con Visual Studio y Visual Studio Code : existen herramientas dedicadas en Visual Studio y Visual Studio Code que permiten optimizar las tareas de creación, implementación y depuración.
  • Integración de herramientas de Java: desarrolle e implemente en Azure sin dejar sus herramientas de desarrollo favoritas, como Maven, Gradle, Visual Studio Code, IntelliJ y Eclipse.
  • API y características para móviles: App Service proporciona compatibilidad CORS llave en mano para escenarios de la API RESTful y simplifica los escenarios de aplicaciones móviles al permitir la autenticación, la sincronización de datos sin conexión, las notificaciones push, y mucho más.
  • Código sin servidor: ejecute un fragmento de código o script a petición sin tener que proporcionar explícitamente ni administrar la infraestructura, y pague solo por el tiempo de proceso que el código utiliza realmente.

App Service Environment es una característica de Azure App Service que proporciona un entorno completamente aislado y dedicado para ejecutar de una forma más segura las aplicaciones de App Service a gran escala. A diferencia de la oferta de App Service en la que se comparte la compatibilidad con la infraestructura, con App Service Environment, el proceso se dedica a un solo cliente.

Limitaciones de App Service

  • App Service en Linux no se admite en el plan de tarifa Compartido.
  • Azure Portal solo muestra las características que funcionan actualmente para las aplicaciones Linux. A medida que se habiliten las características, se activarán en el portal.
  • Cuando se implementen en imágenes integradas, el código y el contenido se asignarán a un volumen de almacenamiento para el contenido web, respaldado por Azure Storage. La latencia de disco de este volumen es mayor y más variable que la del sistema de archivos del contenedor. Las aplicaciones que requieran muchos accesos de solo lectura a archivos de contenido pueden beneficiarse de la implementación de contenedores personalizados, que permite colocar los archivos en el sistema de archivos de contenedor en lugar de en el volumen de contenido.

Azure Spring Apps

Azure Spring Apps facilita la implementación de aplicaciones de Spring Boot en Azure sin necesidad de realizar cambios en el código. El servicio administra la infraestructura de las aplicaciones de Spring, con el fin de que los desarrolladores puedan centrarse en el código. Azure Spring Apps proporciona administración del ciclo de vida mediante el uso de una supervisión y un diagnóstico completos, administración de la configuración, detección de servicios, integración de CI/CD e implementaciones blue-green, entre otros.

Razones para usar Azure Spring Apps

Se obtendrá las siguientes ventajas al implementar aplicaciones en Azure Spring Apps:

  • Migrar de forma eficaz las aplicaciones Spring existentes y administrar los costos y el escalado en la nube.
  • Modernizar las aplicaciones con patrones de Spring Cloud para mejorar la agilidad y la velocidad de entrega.
  • Ejecutar Java a escala en la nube e impulsar un mayor uso sin una infraestructura complicada.
  • Desarrollar e implementar rápidamente sin dependencias de la contenedorización.
  • Supervisar las cargas de trabajo de producción de forma eficaz y sin esfuerzo.

Azure Spring Apps es compatible con aplicaciones de Spring Boot para Java y de Steeltoe para ASP.NET Core. Steeltoe se ofrece actualmente como versión preliminar pública. Las ofertas de versión preliminar pública le permiten experimentar con nuevas características antes de su publicación oficial.

Introducción al servicio

Al formar parte del ecosistema de Azure, Azure Spring Apps facilita el enlace con otros servicios de Azure, como almacenamiento, bases de datos, supervisión, etc. Tal y como se muestra en el diagrama siguiente:

Azure Spring Apps proporciona las siguientes capacidades:

  • Un servicio totalmente administrado para aplicaciones de Spring Boot que le permite centrarse en la creación y ejecución de aplicaciones sin la molestia de administrar la infraestructura.
  • La conexión automática de las aplicaciones con el runtime del servicio Spring y el soporte del ciclo de vida de la aplicación integrado al implementar los archivos JAR o el código de la aplicación Spring Boot o archivo ZIP de la aplicación Steeltoe.
  • Facilidad de supervisión. Después de la implementación, puede supervisar el rendimiento de la aplicación, corregir los errores y mejorar rápidamente las aplicaciones.
  • Integración completa con los servicios y ecosistemas de Azure.
  • Preparación empresarial con una infraestructura totalmente administrada y una administración del ciclo de vida integrada.

Azure Service Fabric

Azure Service Fabric es una plataforma de sistemas distribuidos que facilita el empaquetado, la implementación y la administración de microservicios y contenedores escalables y confiables. Service Fabric también aborda los desafíos importantes en el desarrollo y la administración de aplicaciones nativas en la nube.
Un elemento diferenciador clave de Service Fabric es el enfoque prioritario que da a la creación de servicios con estado. Puede usar el modelo de programación de Service Fabric o ejecutar servicios con estado en contenedores escritos en cualquier lenguaje o código. Puede crear clústeres de Service Fabric en cualquier lugar, incluidos Windows Server y Linux en entornos locales y otras nubes públicas, además de Azure.

En la actualidad, Service Fabric se utiliza en muchos servicios Microsoft, como Azure SQL Database, Azure Cosmos DB, Cortana, Microsoft Power BI, Microsoft Intune, Azure Event Hubs, Azure IoT Hub, Dynamics 365, Skype Empresarial y muchos servicios principales de Azure.

Orquestación de contenedores

Service Fabric es el orquestador de contenedores de Microsoft para implementar y administrar microservicios en un clúster de máquinas, que aprovecha las lecciones aprendidas durante la ejecución de servicios de Microsoft a gran escala. Service Fabric puede implementar aplicaciones en cuestión de segundos, con una alta densidad de cientos o miles de aplicaciones o contenedores por máquina. Con Service Fabric, puede mezclar los servicios en procesos y los servicios en contenedores en la misma aplicación.

Microservicios sin estado y con estado

Service Fabric proporciona un entorno de ejecución sofisticado y ligero que admite microservicios con estado y sin él. Un elemento diferenciador clave de Service Fabric es su sólida compatibilidad para crear servicios con estado, ya sea con los modelos de programación integrados o con servicios con estado en contenedores de Service Fabric.

Administración del ciclo de vida de aplicación

Service Fabric ofrece compatibilidad para todo el ciclo de vida de las aplicaciones y el CI/CD de las aplicaciones de nube que incluye los contenedores: desde el desarrollo hasta la implementación, la supervisión diaria, la administración y el mantenimiento y la eventual retirada. Service Fabric se integra con herramientas de CI/CD como Azure PipelinesJenkins y Octopus Deploy, y puede utilizarse con cualquier otra herramienta de CI/CD popular.

Cualquier sistema operativo, cualquier nube

Puede crear clústeres de Service Fabric en muchos entornos, entre los que se incluyen Azure o en entornos locales, en Windows Server o en Linux. Incluso puede crear clústeres en otras nubes públicas. El entorno de desarrollo del SDK de Service Fabric es idéntico al de producción; no se usa ningún emulador. En otras palabras, lo que se ejecuta en el clúster de desarrollo local, es lo que se implementa en los clústeres de otros entornos.
En el caso del desarrollo en Windows, el SDK de .NET de Service Fabric se integra con Visual Studio y PowerShell. En el caso del desarrollo en Linux, el SDK de Java de Service Fabric se integra con Eclipse, y Yeoman se usa para generar plantillas para Java, .NET Core y aplicaciones de contenedor.

Cumplimiento normativo

El proveedor de recursos de Azure Service Fabric está disponible en todas las regiones de Azure y cumple todas las certificaciones de cumplimiento de Azure, entre los que se incluyen: SOC, ISO, PCI DSS, HIPAA y GDPR.

Elección de un tipo de hosting de Azure

El diagrama de abajo hace referencia a la elección de alojamiento de una aplicación, partiendo de una construcción nueva o de una aplicación a migrar en dos estrategias de migración:

  • «Lift-and-shift»: una estrategia de migración de una carga de trabajo a la nube sin volver a diseñar la aplicación ni realizar cambios en el código. También se denomina rehospedaje.
  • Optimizado para la nube: una estrategia de migración a la nube mediante la refactorización de una aplicación para aprovechar las funcionalidades y características nativas de la nube.

La salida del diagrama de flujo es el punto de partida. A continuación, evalúe el servicio para ver si satisface sus necesidades.

Use el siguiente diagrama de flujo para seleccionar un servicio de proceso candidato.