Elección de un servicio de proceso de Azure para la aplicación

Azure ofrece una serie de formas de hospedar el código de aplicación. El término proceso hace referencia al modelo de hospedaje para los recursos informáticos donde se ejecutan las aplicaciones. El diagrama de flujo siguiente le ayudará a elegir un servicio de proceso para la aplicación.

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.

Elección de un servicio candidato

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

Árbol de decisión para los servicios de proceso de Azure

Definiciones:

  • "Lift-and-shift" es 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 es 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 un punto de inicio para tenerlo en consideración. A continuación, realice una evaluación más detallada del servicio para ver si satisface sus necesidades.

En este artículo se incluyen varias tablas que pueden ayudarle a tomar estas decisiones de compensación. En función de este análisis, es posible que el candidato inicial no sea adecuado para su aplicación o carga de trabajo en particular. En ese caso, expanda el análisis para incluir otros servicios de proceso.

Nota

Consulte más información sobre cómo revisar los requisitos de proceso para la adopción de la nube en Revisión de las opciones de proceso.

Descripción de las características básicas

Si no está familiarizado con el servicio de Azure seleccionado en el paso anterior, consulte la documentación de información general para comprender los aspectos básicos del servicio.

  • App Service. Un servicio administrado para hospedar aplicaciones web, back-end de aplicaciones móviles, API RESTful o procesos empresariales automatizados.
  • Azure Spring Cloud. Un servicio administrado diseñado y optimizado para hospedar aplicaciones de Spring Boot.
  • Azure Kubernetes Service (AKS). Un servicio administrado de Kubernetes para ejecutar aplicaciones en contenedor.
  • Batch. Un servicio administrado para ejecutar aplicaciones a gran escala en paralelo y de informática de alto rendimiento (HPC).
  • Container Instances. La forma más rápida y sencilla de ejecutar un contenedor en Azure, sin tener que aprovisionar ninguna máquina virtual y sin necesidad de adoptar un servicio de nivel superior.
  • Funciones. Un servicio FaaS administrado.
  • Service Fabric. Una plataforma de sistemas distribuidos que se puede ejecutar en muchos entornos, incluidos Azure y el entorno local.
  • Máquinas virtuales. Implemente y administre máquinas virtuales dentro de una red virtual de Azure.

Descripción de los modelos de hospedaje

Los servicios en la nube, incluidos los servicios de Azure, generalmente se dividen en tres categorías: IaaS, PaaS o FaaS. (También existe SaaS, software como servicio, que está fuera del ámbito de este artículo). Resulta útil comprender las diferencias.

Infraestructura como servicio (IaaS) permite aprovisionar máquinas virtuales individuales 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, salvo que Microsoft administra la infraestructura. Aunque el usuario administra 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 es servicio de PaaS.

Las funciones como servicio (FaaS) van más allá al eliminar la necesidad de preocuparse por el entorno de hospedaje. En un modelo de FaaS, solo tiene que implementar el código y el servicio lo ejecuta automáticamente. Azure Functions es un servicio de FaaS.

Nota

Azure Functions es una oferta de proceso sin servidor de Azure. Para saber cómo se compara este servicio con otras ofertas sin servidor de Azure, como Logic Apps que proporciona flujos de trabajo sin servidor, puede leer Elección de los servicios de integración y automatización adecuados en Azure.

Existen varios servicios desde IaaS hasta el PaaS más puro. Por ejemplo, las máquinas virtuales de Azure se pueden escalar automáticamente con conjuntos de escalado de máquinas virtuales. Esta funcionalidad de escalado automático no es estrictamente PaaS, pero es el tipo de característica de administración que se encuentra en un servicio de PaaS.

En general, existe un equilibrio entre el control y la 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. Los servicios de PaaS se encuentran en un lugar intermedio.

Criterios Virtual Machines App Service Azure Spring Cloud Service Fabric Azure Functions Azure Kubernetes Service Azure Container Instances Azure Batch
Composición de la aplicación Independiente Aplicaciones, contenedores Aplicaciones, microservicios Ejecutables de invitado, servicios, contenedores Functions Contenedores Contenedores Scheduled jobs
Densidad Independiente Varias aplicaciones por instancia a través de planes de App Service Varias aplicaciones por instancia de servicio Varios servicios por VM Sin servidor 1 Varios contenedores por nodo Sin instancias dedicadas Varias aplicaciones por VM
Número mínimo de nodos 1 2 1 2 5 3 Sin servidor 1 3 3 Sin nodos dedicados 1 4
Administración de estados Con o sin estado Sin estado Sin estado Con o sin estado Sin estado Con o sin estado Sin estado Sin estado
Hospedaje web Independiente Integrado Integrado Independiente No aplicable Independiente Independiente No
¿Se puede implementar en una red virtual dedicada? Compatible Compatible5 Compatible Compatible Compatible 5 Compatible Compatible Compatible
Conectividad híbrida Compatible Compatible 6 Compatible Compatible Compatible 7 Compatible No compatible Compatible

Notas

  1. Si usa un plan de consumo. Si usa un plan de App Service, las funciones se ejecutan en las VM asignadas al plan de App Service. Consulte Elección del plan de servicio correcto para Azure Functions.
  2. Acuerdo de Nivel de Servicio 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. Requiere App Service Environment.
  6. Use Hybrid Connections de Azure App Service.
  7. Requiere un plan de App Service o un plan Premium de Azure Functions.

DevOps

Criterios Virtual Machines App Service Azure Spring Cloud Service Fabric Azure Functions Azure Kubernetes Service Azure Container Instances Azure Batch
Depuración local Independiente IIS Express, otros 1 Visual Studio Code, Intellij, Eclipse Clúster de nodo local Visual Studio o CLI de Azure Functions Minikube, otros Tiempo de ejecución de contenedor local No compatible
Modelo de programación Independiente Aplicaciones web y API, WebJobs para tareas en segundo plano Spring Boot, Steeltoe Invitado ejecutable, modelo de servicio, modelo de actor, contenedores Functions con desencadenadores Independiente Independiente Aplicación de línea de comandos
Actualización de aplicaciones Sin compatibilidad integrada Ranuras de implementación Actualización gradual, implementación azul-verde Actualización (por servicio) gradual Ranuras de implementación Actualización gradual No aplicable

Notas

  1. Las opciones incluyen IIS Express para ASP.NET o node.js (iisnode); servidor web PHP; kit de herramientas de Azure para IntelliJ, kit de herramientas de Azure para Eclipse. App Service también admite la depuración remota de una aplicación web implementada.
  2. Consulte Proveedores, regiones, versiones de API y esquemas de Resource Manager.

Escalabilidad

Criterios Virtual Machines App Service Azure Spring Cloud Service Fabric Azure Functions Azure Kubernetes Service Azure Container Instances Azure Batch
Escalado automático Conjuntos de escalado de máquinas virtuales Servicio integrado Servicio integrado Conjuntos de escalado de máquinas virtuales Servicio integrado Escalado automático de pods1, escalado automático de clústeres2 No compatible N/D
Equilibrador de carga Azure Load Balancer Integrado Integrado Azure Load Balancer Integrado Azure Load Balancer o Application Gateway Sin compatibilidad integrada Azure Load Balancer
Límite de escala3 Imagen de plataforma: 1000 nodos por conjunto de escalado. Imagen personalizada: 600 nodos por conjunto de escalado 30 instancias, 100 con App Service Environment 500 instancias de aplicación en el nivel Estándar 100 nodos por conjunto de escalado 200 instancias por aplicación Function 100 nodos por clúster (límite predeterminado) 20 grupos de contenedores por suscripción (límite predeterminado). 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 (AKS).
  3. Consulte Límites, cuotas y restricciones de suscripción y servicios de Azure.

Disponibilidad

Criterios Virtual Machines App Service Azure Spring Cloud Service Fabric Azure Functions Azure Kubernetes Service Azure Container Instances Azure Batch
Contrato de nivel de servicio Contrato de nivel de servicio para Máquinas virtuales Acuerdo de Nivel de Servicio para App Service Acuerdo de Nivel de Servicio para Azure Spring Cloud Acuerdo de Nivel de Servicio para Service Fabric Acuerdo de Nivel de Servicio para Functions Acuerdo de Nivel de Servicio para AKS Acuerdo de nivel de servicio para Container Instances Acuerdo de Nivel de Servicio para Azure Batch
Conmutación por error de múltiples regiones Traffic Manager Traffic Manager Traffic Manager, clúster de varias regiones Azure Front Door Traffic Manager No compatible No compatible

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

Examine los controles de seguridad disponibles y la visibilidad de cada uno de ellos

Otros criterios

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

La salida de este diagrama de flujo es un punto de inicio para tenerlo en consideración. A continuación, realice una evaluación más detallada del servicio para ver si satisface sus necesidades.

Consideraciones sobre los límites y el costo

Realice una evaluación más detallada y examine los siguientes aspectos del servicio:

Pasos siguientes