Azure ofrece muchas maneras de hospedar el código de aplicación. El término proceso hace referencia al modelo de hospedaje de los recursos donde se ejecutan las aplicaciones. Este artículo ayuda a elegir un servicio de proceso para la aplicación.
Elección de un servicio candidato
Use el siguiente diagrama de flujo para seleccionar un servicio de proceso candidato.
Descargue un archivo Visio de este árbol de decisión.
Este diagrama hace referencia a 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. Para más información, consulte el artículo sobre el Centro de modernización y migración de Azure.
- 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 de este diagrama de flujo es el punto de partida. A continuación, evalúe el servicio para ver si satisface sus necesidades.
En este artículo se incluyen varias tablas que pueden ayudarle a elegir un servicio. Es posible que el candidato inicial del diagrama de flujo no sea adecuado para la aplicación o la carga de trabajo. En ese caso, expanda el análisis para incluir otros servicios de proceso.
Si la aplicación consta de varias cargas de trabajo, evalúe cada carga de trabajo por separado. Una solución completa puede incluir dos o más servicios de proceso.
Descripción de las características básicas
Si no está familiarizado con el servicio de Azure seleccionado en la sección anterior, consulte esta documentación de información general:
- Azure Virtual Machines: un servicio en el que se implementan y administran máquinas virtuales (VM) dentro de una red virtual de Azure.
- Azure App Service: un servicio administrado para hospedar aplicaciones web, back-end de aplicaciones móviles, API de RESTful o procesos empresariales automatizados.
- Azure Functions: una función administrada como servicio.
- Azure Kubernetes Service (AKS): un servicio administrado de Kubernetes para ejecutar aplicaciones contenedorizadas.
- Azure Container Apps: un servicio administrado basado en Kubernetes, que simplifica la implementación de aplicaciones en contenedores en un entorno sin servidor.
- Azure Container Instances: este servicio es una manera rápida y sencilla de ejecutar un contenedor en Azure. No tiene que aprovisionar ninguna máquina virtual ni adoptar un servicio de nivel superior.
- Red Hat OpenShift en Azure: un clúster de OpenShift totalmente administrado para ejecutar contenedores en producción con Kubernetes.
- Azure Spring Apps: un servicio administrado diseñado y optimizado para hospedar aplicaciones de Spring Boot.
- Microsoft Azure Service Fabric: una plataforma de sistemas distribuidos que se puede ejecutar en muchos entornos, tanto localmente como en Azure, por ejemplo.
- Azure Batch: un servicio administrado para ejecutar aplicaciones a gran escala en paralelo y de informática de alto rendimiento (HPC).
Descripción de los modelos de hospedaje
En el caso de los modelos de hospedaje, los servicios en la nube se dividen en tres categorías:
Infraestructura como servicio (IaaS): permite aprovisionar máquinas virtuales junto con los componentes de red y almacenamiento asociados. A continuación, puede implementar el software y las aplicaciones que desee en esas máquinas virtuales. Este modelo es lo más parecido a un entorno local tradicional. Microsoft administra la infraestructura. Sigue administrando las máquinas virtuales.
La plataforma como servicio (PaaS): proporciona un entorno de hospedaje administrado, donde puede implementar la aplicación sin necesidad de administrar las máquinas virtuales o los recursos de red. Azure App Service y Azure Container Apps son servicios PaaS.
Funciones como servicio (FaaS): le permite implementar el código en el servicio, que lo ejecuta automáticamente. Azure Functions es un servicio de FaaS.
Nota
Azure Functions es una oferta de proceso sin servidor de Azure. Para ver cómo este servicio se compara con otras ofertas sin servidor de Azure, como Logic Apps, que proporciona flujos de trabajo sin servidor, consulte Elección de los servicios de integración y automatización adecuados en Azure.
Existen varios servicios entre IaaS y PaaS puro. Por ejemplo, las máquinas virtuales de Azure se pueden escalar automáticamente con conjuntos de escalado de máquinas virtuales. Esta funcionalidad no es estrictamente PaaS, pero es el tipo de característica de administración que se encuentra en un servicio PaaS.
En general, existe un equilibrio entre control y facilidad de administración. IaaS proporciona el máximo control, flexibilidad y portabilidad, pero es necesario aprovisionar, configurar y administrar las máquinas virtuales y los componentes de red que cree. Los servicios de FaaS administran automáticamente casi todos los aspectos de la ejecución de una aplicación. PaaS se sitúa en algún punto intermedio.
Servicio | Composición de la aplicación | Densidad | Número mínimo de nodos | Administración de estados | Hospedaje web |
---|---|---|---|---|---|
Azure Virtual Machines | Independiente | Independiente | 1 2 | Con o sin estado | Independiente |
Azure App Service | Aplicaciones, contenedores | Varias aplicaciones por instancia mediante el plan de App Service | 1 | Sin estado | Integrado |
Azure Functions | Funciones, contenedores | Sin servidor 1 | Sin servidor 1 | Sin estado o con estado 6 | No aplicable |
Azure Kubernetes Service | Contenedores | Varios contenedores por nodo | 3 3 | Con o sin estado | Independiente |
Azure Container Apps | Contenedores | Sin servidor | Sin servidor | Con o sin estado | Independiente |
Azure Container Instances | Contenedores | Sin instancias dedicadas | Sin nodos dedicados | Sin estado | Independiente |
Red Hat OpenShift en Azure | Contenedores | Varios contenedores por nodo | 6 5 | Con o sin estado | Independiente |
Azure Spring Apps | Aplicaciones, microservicios | Varias aplicaciones por instancia de servicio | 2 | Sin estado | Integrado |
Azure Service Fabric | Ejecutables de invitado, servicios, contenedores | Varios servicios por VM | 5 3 | Con o sin estado | Independiente |
Azure Batch | Scheduled jobs | Varias aplicaciones por VM | 1 4 | Sin estado | No |
Notas
- Si usa un plan de consumo. En el caso de un plan de App Service, las funciones se ejecutan en las máquinas virtuales asignadas a este. Vea Elección del plan de servicio correcto para Azure Functions.
- Acuerdo de Nivel de Servicio (SLA) superior con dos o más instancias.
- Se recomienda para entornos de producción.
- Se puede reducir verticalmente hasta cero una vez completado el trabajo.
- Tres para nodos principales y tres para nodos de trabajo.
- Al usar Durable Functions.
Redes
Servicio | Integración de la red virtual | Conectividad híbrida |
---|---|---|
Azure Virtual Machines | Compatible | Compatible |
Azure App Service | Compatible 1 | Compatible 2 |
Azure Functions | Compatible 1 | Compatible 3 |
Azure Kubernetes Service | Compatible | Compatible |
Azure Container Apps | Compatible | Compatible |
Azure Container Instances | Compatible | Compatible |
Red Hat OpenShift en Azure | Compatible | Compatible |
Azure Spring Apps | Compatible | Compatible |
Azure Service Fabric | Compatible | Compatible |
Azure Batch | Compatible | Compatible |
Notas
- Requiere App Service Environment.
- Use Hybrid Connections de Azure App Service.
- Requiere un plan de App Service o un plan Premium de Azure Functions.
DevOps
Servicio | Depuración local | Modelo de programación | Actualización de aplicaciones |
---|---|---|---|
Azure Virtual Machines | Independiente | Independiente | Sin compatibilidad integrada |
Azure App Service | IIS Express, otros 1 | Aplicaciones web y API, WebJobs para tareas en segundo plano | Ranuras de implementación |
Azure Functions | Visual Studio o CLI de Azure Functions | Sin servidor, controlado por eventos | Ranuras de implementación |
Azure Kubernetes Service | Minikube, Docker, otros | Independiente | Actualización gradual |
Azure Container Apps | Tiempo de ejecución de contenedor local | Independiente | Administración de revisiones |
Azure Container Instances | Tiempo de ejecución de contenedor local | Independiente | No aplicable |
Red Hat OpenShift en Azure | Minikube, Docker, otros | Independiente | Actualización gradual |
Azure Spring Apps | Visual Studio Code, Intellij, Eclipse | Spring Boot, Steeltoe | Actualización gradual, implementación azul-verde |
Azure Service Fabric | Clúster de nodo local | Invitado ejecutable, modelo de servicio, modelo de actor, contenedores | Actualización (por servicio) gradual |
Azure Batch | No compatible | Aplicación de línea de comandos | No aplicable |
Notas
- Las opciones incluyen: IIS Express para ASP.NET o node.js (iisnode); servidor web PHP; Azure Toolkit for IntelliJ y Azure Toolkit for Eclipse. App Service también admite la depuración remota de una aplicación web implementada.
Escalabilidad
Servicio | Escalado automático | Equilibrador de carga | Límite de escala3 |
---|---|---|---|
Azure Virtual Machines | Conjuntos de escalado de máquinas virtuales | Azure Load Balancer | Imagen de plataforma: 1000 nodos por conjunto de escalado. Imagen personalizada: 600 nodos por conjunto de escalado |
Azure App Service | Servicio integrado | Integrado | 30 instancias, 100 con App Service Environment |
Azure Functions | Servicio integrado | Integrado | 200 instancias por aplicación de funciones |
Azure Kubernetes Service | Escalado automático de pods1, escalado automático de clústeres2 | Azure Load Balancer o Azure Application Gateway | 5000 nodos al usar el Acuerdo de Nivel de Servicio de tiempo de actividad |
Azure Container Apps | Reglas de escalado4 | Integrado | 5 entornos por región, 20 aplicaciones de contenedor por entorno y 30 réplicas por aplicación de contenedor |
Azure Container Instances | No compatible | Sin compatibilidad integrada | 20 grupos de contenedores por suscripción (límite predeterminado) |
Red Hat OpenShift en Azure | Escalado automático de pods, escalado automático del clúster | Azure Load Balancer o Azure Application Gateway | 60 nodos por clúster (límite predeterminado) |
Azure Spring Apps | Servicio integrado | Integrado | 500 instancias de aplicación en el nivel Estándar |
Azure Service Fabric | Conjuntos de escalado de máquinas virtuales | Azure Load Balancer | 100 nodos por conjunto de escalado de máquinas virtuales |
Azure Batch | No aplicable | Azure Load Balancer | Límite de 20 núcleos (límite predeterminado) |
Notas
- Consulte Escalado automático de pods.
- Consulte Escalar automáticamente un clúster para satisfacer las necesidades de la aplicación en Azure Kubernetes Service.
- Consulte Límites, cuotas y restricciones de suscripción y servicios de Azure.
- Vea Establecer reglas de escalado en Azure Container Apps.
Disponibilidad
Servicio | Contrato de nivel de servicio | Conmutación por error de varias regiones |
---|---|---|
Azure Virtual Machines | Contrato de nivel de servicio para Máquinas virtuales | Azure Traffic Manager, Azure Front Door y Azure Load Balancer entre regiones |
Azure App Service | Acuerdo de Nivel de Servicio para App Service | Azure Traffic Manager y Azure Front Door |
Azure Functions | Acuerdo de Nivel de Servicio para Functions | Azure Traffic Manager y Azure Front Door |
Azure Kubernetes Service (AKS) | Acuerdo de Nivel de Servicio para AKS | Azure Traffic Manager, Azure Front Door y clúster de varias regiones |
Azure Container Apps | Acuerdo de nivel de servicio para Container Apps | Azure Traffic Manager y Azure Front Door |
Azure Container Instances | Acuerdo de nivel de servicio para Container Instances | Azure Traffic Manager y Azure Front Door |
Red Hat OpenShift en Azure | Acuerdo de Nivel de Servicio de Red Hat OpenShift en Azure | Azure Traffic Manager y Azure Front Door |
Azure Spring Apps | Acuerdo de Nivel de Servicio de Azure Spring Apps | Azure Traffic Manager, Azure Front Door y clúster de varias regiones |
Azure Service Fabric | Acuerdo de Nivel de Servicio para Service Fabric | Azure Traffic Manager, Azure Front Door y Azure Load Balancer entre regiones |
Azure Batch | Acuerdo de Nivel de Servicio para Batch | No es aplicable |
Para obtener información guiada sobre las garantías de servicio, consulte Principales servicios en la nube: arquitectura de Azure y garantías de servicio.
Seguridad
Revise y comprenda los controles de seguridad disponibles y la visibilidad de cada uno de ellos:
- Máquina virtual Windows de Azure
- Máquina virtual Linux de Azure
- Azure App Service
- Funciones de Azure
- Azure Kubernetes Service
- Azure Container Instances
- Azure Spring Apps
- Azure Service Fabric
- Azure Batch
Otros criterios
Consideraciones sobre los límites y el costo
Junto con las tablas de comparación anteriores, realice una evaluación más detallada de los siguientes aspectos del servicio candidato:
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes colaboradores:
- Ayobami Ayodeji | Jefe de programas sénior
- Jelle Druyts | Ingeniero principal de servicio
- Martin Gjoshevski | Ingeniero principal de servicio
- Phil Huang | Arquitecto sénior de soluciones en la nube
- Julie Ng | Ingeniera sénior de servicios
- Paolo Salvatori | Ingeniero de servicio principal
Para ver los perfiles no públicos de LinkedIn, inicie sesión en LinkedIn.
Pasos siguientes
Servicios principales de Cloud Services: Opciones de proceso de Azure. En este módulo de Learn se explora cómo pueden resolver los servicios de proceso las necesidades empresariales habituales.