Elección de un servicio de proceso de Azure

Azure App Service
Azure Kubernetes Service (AKS)

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.

Diagram that shows a decision tree for Azure compute services.

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

  1. 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.
  2. Acuerdo de Nivel de Servicio (SLA) superior con dos o más instancias.
  3. Se recomienda para entornos de producción.
  4. Se puede reducir verticalmente hasta cero una vez completado el trabajo.
  5. Tres para nodos principales y tres para nodos de trabajo.
  6. 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

  1. Requiere App Service Environment.
  2. Use Hybrid Connections de Azure App Service.
  3. 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

  1. 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

  1. Consulte Escalado automático de pods.
  2. Consulte Escalar automáticamente un clúster para satisfacer las necesidades de la aplicación en Azure Kubernetes Service.
  3. Consulte Límites, cuotas y restricciones de suscripción y servicios de Azure.
  4. 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 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:

Otros criterios

Servicio TLS Coste Estilos de arquitectura idóneos
Azure Virtual Machines Configurado en VM Windows, Linux De n niveles, Big Compute (HPC)
Azure App Service Compatible Precios de Servicio de aplicaciones Web-cola-trabajo
Azure Functions Compatible Precios de Functions Microservicios, Arquitectura basada en eventos
Azure Kubernetes Service Controlador de entrada Precios de AKS Microservicios, Arquitectura basada en eventos
Azure Container Apps Controlador de entrada Precios de Container Apps Microservicios, Arquitectura basada en eventos
Azure Container Instances Uso de contenedores sidecar Precios de Container Instances Microservicios, automatización de tareas, trabajos por lotes
Red Hat OpenShift en Azure Compatible Precios de Red Hat OpenShift en Azure Microservicios, Arquitectura basada en eventos
Azure Spring Apps Compatible Precios de Azure Spring Apps Spring Boot, Microservicios
Azure Service Fabric Compatible Precios de Service Fabric Microservicios, Arquitectura basada en eventos
Azure Batch Compatible Precios de Batch Big Compute (HPC)

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:

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.