Hospedaje de aplicaciones en Azure
Esta es la tercera parte de una serie de 7 artículos para ayudar a los desarrolladores a empezar a trabajar con Azure.
- Parte 1: Introducción a Azure para desarrolladores
- Parte 2: Servicios de Azure clave para desarrolladores
- Parte 3: Hosting de aplicaciones en Azure
- Parte 4: Conexión de la aplicación a los servicios de Azure
- Parte 5: Cómo crear y administrar recursos en Azure
- Parte 6: Conceptos clave para compilar aplicaciones de Azure
- Parte 7: ¿Cómo se me factura?
Azure proporciona varias maneras diferentes de hospedar la aplicación en función de sus necesidades. En este artículo se sugieren servicios que se ajustan a los requisitos. No es prescriptivo. Puede combinar servicios para satisfacer sus necesidades. La mayoría de los entornos de producción usan una combinación de servicios para satisfacer sus necesidades empresariales y organizativas.
Los servicios que elija a menudo se reducirán a dos consideraciones:
- ¿Prefiere simplificar o controlar?
- ¿Prefiere un enfoque nativo de nube (es decir, contenedores) o nativo de Azure (herramientas e integraciones adaptadas)?
En el vídeo siguiente se explica la primera consideración: simplicidad frente a control:
Simplicidad y control
Los servicios de hospedaje de Azure se proporcionan con dos consideraciones:
- Simplicidad frente a control
- Las plataformas de hospedaje simples requieren menos configuración y administración, pero ofrecen menos control sobre la infraestructura subyacente.
- Las plataformas de hospedaje más complejas requieren más configuración y administración, pero ofrecen más control sobre la infraestructura subyacente.
- Enfoque nativo de nube frente a nativo de Azure
- El enfoque nativo de nube se puede considerar como portátil en la nube mediante cargas de trabajo de código abierto, como contenedores y tecnologías de código abierto, como Dapr. Las aplicaciones que compile se pueden implementar en cualquier proveedor de nube.
- El enfoque nativo de Azure es específico de Azure con una inversión en tecnologías y herramientas específicas de Azure para administrar esa infraestructura. Aunque estos servicios incluyen cargas de trabajo de contenedor, también incluyen herramientas de infraestructura, poco código y código primero específicas de Azure con énfasis en la conexión e integración entre los servicios de Azure.
Hospedaje simplificado
Azure administra completamente las soluciones de hospedaje simplificado. Es responsable de la funcionalidad, como el código y la configuración del entorno. Azure administra el entorno de ejecución y la infraestructura subyacentes, incluidas las actualizaciones y las revisiones. El hospedaje simplificado es el enfoque nativo de Azure.
- Logic Apps: cree y ejecute flujos de trabajo automatizados con poco o nada de código.
- Power Automate: úselo cuando necesite automatizar los procesos y flujos de trabajo empresariales.
- Azure Static Web Apps: implemente aplicaciones web estáticas generadas como Blazor y React.
- Azure Functions Apps: hospedaje de contenedor o código sin servidor.
Hospedaje equilibrado
Las soluciones de hospedaje equilibrado equilibran la necesidad de simplicidad con la de control. Es responsable de la funcionalidad, como el código y la configuración del entorno. Azure administra el entorno de ejecución y la infraestructura subyacentes, incluidas las actualizaciones y las revisiones. También puede traer su propio contenedor al servicio. El hospedaje equilibrado es nativo de Azure y nativo de la nube.
- Azure App Service: hospedaje web de servicio completo, incluidos los entornos de ejecución de lenguaje, los contenedores y las cargas de trabajo de automatización.
- Azure Container Apps: hospedaje de contenedores sin servidor.
- Azure Spring Apps: migre aplicaciones de Spring Boot a la nube de Azure.
Hospedaje controlado
Las soluciones de hospedaje controlado proporcionan control total sobre la infraestructura subyacente. Es responsable de las actualizaciones y revisiones, así como del código, los activos y la configuración del entorno. El hospedaje controlado es el enfoque nativo de la nube.
- Azure Virtual Machines: control total de la máquina virtual.
- Azure Kubernetes Service: control total del clúster de Kubernetes.
Hospedaje de código fuente
Los desarrolladores que no estén familiarizados con Azure y que quieran iniciar un nuevo desarrollo pueden usar el siguiente gráfico para encontrar la solución de hospedaje sugerida.
Poco o nada de código
Azure admite soluciones sin código como parte de su enfoque de nube de Azure.
- Logic Apps: use un diseñador visual con operaciones precompiladas para desarrollar un flujo de trabajo para los escenarios empresariales y de empresa a empresa.
- Power Automate, como Power Apps: úselo cuando necesite automatizar los procesos y flujos de trabajo empresariales dentro de la organización de Microsoft 365.
Código frente a contenedor
Las soluciones de hospedaje con poco código están diseñadas para permitirle incorporar la funcionalidad del código sin tener que administrar la infraestructura de la aplicación.
- Azure Static Web Apps: implemente aplicaciones web estáticas generadas.
- Azure Functions: implemente funciones de código en lenguajes admitidos sin tener que administrar la infraestructura de la aplicación.
Las soluciones de hospedaje de código primero están diseñadas para hospedar código. Puede implementar el código directamente en la solución de hospedaje.
- Azure App Service: hospedaje web de servicio completo.
- Azure Spring Apps: aplicaciones de Spring Boot.
Las soluciones de hospedaje de contenedor primero están diseñadas para hospedar contenedores. El servicio proporciona características y opciones de configuración específicas del contenedor. Es responsable del proceso usado dentro del contenedor. Los servicios que hospedan contenedores pasan del control administrado a la plena responsabilidad, por lo que solo asume la cantidad de administración de contenedores que desee.
El hospedaje de orquestación centrado en Kubernetes incluye:
Service | Foco | Usar |
---|---|---|
Azure Kubernetes Service | Nativo de la nube | Se usa para clústeres de Kubernetes con un enfoque declarativo mediante archivos de configuración y artefactos externos. |
Azure Service Fabric | Nativo de Azure | Use un enfoque imperativo para implementar microservicios en clústeres de máquinas. Proporciona un modelo de programación que permite a los desarrolladores escribir código que describe el estado deseado del sistema y el tiempo de ejecución de Service Fabric se encarga de hacer que el sistema se ajuste a ese estado. |
El hospedaje de contenedores preconfigurado significa que las opciones de orquestación están preconfiguradas automáticamente. La capacidad de comunicarse entre contenedores o clústeres de contenedores podría requerir un servicio adicional, como Dapr.
Service | Usar |
---|---|
Azure App Service | hospedaje web de servicio completo |
Azure Spring Apps | Aplicaciones de Spring Boot |
Azure Container Apps | hospedaje de contenedores sin servidor |
Azure Container Instances | hospedaje simple de un contenedor |
Azure proporciona un registro de contenedor para almacenar y administrar las imágenes de contenedor o puede usar un registro de contenedor de terceros.
Service | Usar |
---|---|
Azure Container Registry | Se usa al compilar y hospedar sus propias imágenes de contenedor, que se pueden desencadenar con confirmaciones de código fuente y actualizaciones de imágenes base. |
Sin servidor
Las soluciones de hospedaje sin servidor están diseñadas para ejecutar código sin estado, que incluye un nivel de precios basado en el consumo que se reduce a cero cuando no se usa.
Service | Usar |
---|---|
Azure Container Apps | Hospedaje de contenedores. |
Funciones de Azure | Hospedaje de código o contenedor. |
Microservicios
Las soluciones de hospedaje de microservicios están diseñadas para ejecutar servicios pequeños e independientes que funcionan juntos para crear una aplicación más grande. Normalmente, los microservicios se implementan como contenedores.
Service | Usar |
---|---|
Azure Container Apps | Se usa para microservicios contenedorizados sin servidor. |
Funciones de Azure | Se usa para microservicios contenedorizados o de código sin servidor. |
Perímetro de nube
Perímetro de nube es un término que se utiliza para indicar si el servicio en la nube beneficia al usuario (cliente) o a la aplicación (servidor).
Proceso cliente
El proceso cliente es el proceso que se ejecuta en el cliente fuera de la nube de Azure. El proceso cliente se usa normalmente para la representación del lado cliente y el procesamiento del lado cliente, como aplicaciones móviles o basadas en explorador.
Service | Usar |
---|---|
Azure Static Web Apps | Se usa para aplicaciones web estáticas que usan la representación del lado cliente, como React, Angular, Svelte, Vue y Blazor. |
Disponibilidad de cliente
Service | Usar |
---|---|
Azure Front Door | Se usa para todas las aplicaciones orientadas a Internet para proporcionar una red global en caché y segura a los activos estáticos y dinámicos, incluida la protección contra DDoS, el cifrado TLS de un extremo a otro, los firewalls de aplicaciones y el filtrado geográfico. |
Proceso de servidor
Los activos de proceso de servidor son archivos que procesa el servidor antes de enviarlos al cliente. Los activos dinámicos se desarrollan mediante el proceso del servidor back-end, que se integra opcionalmente con otros servicios de Azure.
Service | Usar |
---|---|
Azure App Service | Use este servicio para el hospedaje web típico. Esto admite un amplio conjunto de puntos de conexión de API de funcionalidad, aplicaciones de pila completa y tareas en segundo plano. Este servicio incluye muchos entornos de ejecución de lenguaje de programación, así como la capacidad de proporcionar su propia pila, lenguaje o carga de trabajo desde un contenedor. |
Funciones de Azure | Use este servicio para proporcionar su propio código en los lenguajes admitidos para puntos de conexión HTTP o desencadenadores basados en eventos de los servicios de Azure. |
Azure Spring Apps | Se utiliza para implementar aplicaciones de Spring Boot sin cambios de código. |
Azure Container Apps | Se usa para hospedar microservicios administrados y aplicaciones contenedorizadas en una plataforma sin servidor. |
Azure Container Instances | Se usa para escenarios de contenedor simples que no necesitan orquestación de contenedores. |
Azure Kubernetes Service | Use este servicio cuando necesite un clúster de Kubernetes. El plano de control para administrar el clúster se crea y se proporciona sin coste adicional. |
Administración de puntos de conexión de servidor
La administración de puntos de conexión de servidor es la capacidad de administrar el punto de conexión del servidor y su proceso a través de una puerta de enlace. Esta puerta de enlace proporciona funcionalidades como el control de versiones, el almacenamiento en caché, la transformación, las directivas de API y la supervisión.
Service | Usar |
---|---|
Azure API Management | Use este servicio al crear sus API REST, OpenAPI y GraphQL con una puerta de enlace de API, incluidos los límites de cuotas y velocidades, la autenticación y la autorización, la transformación y las respuestas almacenadas en caché. |
Introducción a Puerta de enlace de aplicaciones | Se usa para el equilibrio de carga regional (capa 7 de OSI). Se puede usar para enrutar el tráfico en función de la ruta URL o los encabezados de host, y admite la descarga de SSL, la afinidad de sesión basada en cookies y las funcionalidades de Web Application Firewall (WAF). |
Azure Front Door | Se usa para el equilibrio de carga global (capa 7 de OSI) para proporcionar una red global almacenada en caché y segura a los activos estáticos y dinámicos, incluida la protección contra DDoS, el cifrado TLS de un extremo a otro, los firewalls de aplicaciones y el filtrado geográfico. |
Azure Traffic Manager | Se usa para distribuir el tráfico mediante DNS (capa 7 de OSI) a las aplicaciones orientadas al público en las regiones globales de Azure. Traffic Manager usa DNS para dirigir las solicitudes del cliente al punto de conexión de servicio adecuado en función de un método de enrutamiento del tráfico. Admite varios métodos de enrutamiento de tráfico, como prioridad, rendimiento y enrutamiento geográfico. Es ideal para administrar el tráfico entre varias regiones o centros de datos. |
Proceso automatizado
El proceso automatizado se automatiza mediante un evento como una programación programada u otro servicio de Azure y normalmente se usa para el procesamiento en segundo plano, el procesamiento por lotes o los procesos de larga duración.
Service | Usar |
---|---|
Power Automate | Úselo cuando necesite automatizar los procesos y flujos de trabajo empresariales. |
Funciones de Azure | Úselo cuando necesite ejecutar código en función de una programación programada o en respuesta a eventos de otros servicios de Azure. |
Container services (Azure Container Instances, Azure Kubernetes Service, Azure Container Apps) | Se usa para cargas de trabajo automatizables estándar |
Azure Batch | Úselo cuando necesite automatización de alto rendimiento. |
Nube híbrida
La nube híbrida es un entorno informático que conecta los servicios de nube privada local de una empresa y la nube pública de terceros en una sola infraestructura flexible para ejecutar las aplicaciones y cargas de trabajo de la organización.
Service | Usar |
---|---|
Azure Arc | Úselo cuando necesite administrar todo el entorno, tanto en la nube como en los recursos locales, incluida la seguridad, la gobernanza, el inventario y la administración. |
Si no necesita mantener su propia infraestructura, puede usar Azure Stack HCI para ejecutar máquinas virtuales locales.
Informática de alto rendimiento
La informática de alto rendimiento (HPC) es el uso del procesamiento paralelo para ejecutar programas avanzados de aplicaciones de forma eficaz, confiable y rápida. El término se aplica especialmente a los sistemas que funcionan por encima de un teraflop o 10^12 operaciones de punto flotante por segundo.
Service | Usar |
---|---|
Azure Batch | Azure Batch permite crear y administrar un conjunto de nodos de proceso (máquinas virtuales), instalar las aplicaciones que desea ejecutar y programar trabajos para que se ejecuten en los nodos. Los desarrolladores pueden usar Batch como un servicio de plataforma para compilar aplicaciones SaaS o aplicaciones cliente en las que se requiere una ejecución a gran escala. |
Instancias de Azure BareMetal | Úselo cuando necesite ejecutar en un entorno no virtualizado con acceso de nivel raíz al sistema operativo, el almacenamiento y la red. |
Área de trabajo de Azure Quantum | Úselo cuando necesite desarrollar y experimentar con algoritmos cuánticos. |
Microsoft Genomics | Se usa para el procesamiento genómico compatible con HIPAA y con certificación ISO. |
Más información sobre la Informática de alto rendimiento en Azure.
Proceso basado en eventos
El proceso basado en eventos es el proceso desencadenado por un evento, como una programación programada u otro servicio de Azure. El proceso basado en eventos normalmente se usa para el procesamiento en segundo plano, el procesamiento por lotes o los procesos de larga duración.
Service | Usar |
---|---|
Power Virtual Agents | Úselo cuando necesite crear bots de chat con una interfaz sin código. |
Funciones de Azure | Úselo cuando necesite ejecutar código en función de una programación programada o en respuesta a eventos de otros servicios de Azure. |
Mensajería de Azure Service Bus | Úselo cuando necesite desacoplar aplicaciones y servicios. |
Proceso de CI/CD
El proceso de CI/CD es el proceso que se usa para compilar e implementar la aplicación.
Servicio | Descripción |
---|---|
Azure DevOps | Use Azure DevOps para una integración estrecha con la nube de Azure, incluida la autenticación y la autorización a los agentes hospedados, que compilan e implementan la aplicación. |
Acciones de GitHub | Use GitHub Actions para compilar e implementar sus aplicaciones de repositorio de GitHub. Use la CLI de Azure para acceder de forma segura a Azure dentro de la acción. |
Azure Virtual Machines | Si usa otro sistema de CI/CD, puede usar Azure Virtual Machines para hospedar el sistema de CI/CD. |