Elija un servicio de proceso de Azure para la aplicaciónChoose an Azure compute service for your application

Azure ofrece una serie de formas de hospedar el código de aplicación.Azure offers a number of ways to host your application code. El término proceso hace referencia al modelo de hospedaje para los recursos informáticos donde se ejecutan las aplicaciones.The term compute refers to the hosting model for the computing resources that your application runs on. El diagrama de flujo siguiente le ayudará a elegir un servicio de proceso para la aplicación.The following flowchart will help you to choose a compute service for your application.

Si la aplicación consta de varias cargas de trabajo, evalúe cada carga de trabajo por separado.If your application consists of multiple workloads, evaluate each workload separately. Una solución completa puede incluir dos o más servicios de proceso.A complete solution may incorporate two or more compute services.

Elija un servicio de candidatoChoose a candidate service

Utilice el siguiente diagrama de flujo para seleccionar un servicio de proceso candidato.Use the following flowchart to select a candidate compute service.

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

Definiciones:Definitions:

  • "Lift and shift" es una estrategia para migrar una carga de trabajo a la nube sin rediseñar la aplicación ni realizar cambios en el código."Lift and shift" is a strategy for migrating a workload to the cloud without redesigning the application or making code changes. También se denomina rehospedaje.Also called rehosting. Para más información, consulte Azure Migration Center.For more information, see Azure migration center.
  • 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.Cloud optimized is a strategy for migrating to the cloud by refactoring an application to take advantage of cloud-native features and capabilities.

La salida de este diagrama de flujo es un punto de partida a tener en cuenta.The output from this flowchart is a starting point for consideration. A continuación, realice una evaluación más detallada del servicio para ver si satisface sus necesidades.Next, perform a more detailed evaluation of the service to see if it meets your needs.

Comprender las características básicasUnderstand the basic features

Si no está familiarizado con el servicio de Azure seleccionado en el paso anterior, lea la documentación de información general para comprender los conceptos básicos del servicio.If you're not familiar with the Azure service selected in the previous step, read the overview documentation to understand the basics of the service.

  • App Service.App Service. Un servicio administrado para hospedar aplicaciones web, back-ends de aplicaciones móviles, API RESTful o procesos empresariales automatizados.A managed service for hosting web apps, mobile app back ends, RESTful APIs, or automated business processes.
  • Azure Kubernetes Service (AKS).Azure Kubernetes Service (AKS). Un servicio Kubernetes administrado para ejecutar aplicaciones en contenedores.A managed Kubernetes service for running containerized applications.
  • Lote.Batch. Un servicio administrado para ejecutar aplicaciones de computación paralela y de alto rendimiento (HPC) a gran escalaA managed service for running large-scale parallel and high-performance computing (HPC) applications
  • Instancias de contenedor.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 tener que adoptar un servicio de nivel superior.The fastest and simplest way to run a container in Azure, without having to provision any virtual machines and without having to adopt a higher-level service.
  • Funciones.Functions. Un servicio FaaS gestionado.A managed FaaS service.
  • Service Fabric.Service Fabric. Una plataforma de sistemas distribuidos que se puede ejecutar en muchos entornos, incluido Azure o local.A distributed systems platform that can run in many environments, including Azure or on premises.
  • Máquinas virtuales.Virtual machines. Implemente y administre máquinas virtuales dentro de una red virtual de Azure.Deploy and manage VMs inside an Azure virtual network.

Comprender los modelos de alojamientoUnderstand the hosting models

Los servicios en la nube, incluidos los servicios de Azure, generalmente se dividen en tres categorías: IaaS, PaaS o FaaS.Cloud services, including Azure services, generally fall into three categories: IaaS, PaaS, or FaaS. (También hay SaaS, software como servicio, que está fuera del alcance de este artículo.) Es útil entender las diferencias.(There is also SaaS, software-as-a-service, which is out of scope for this article.) It's useful to understand the differences.

La infraestructura como servicio (IaaS) le permite aprovisionar máquinas virtuales individuales junto con los componentes de red y almacenamiento asociados.Infrastructure-as-a-Service (IaaS) lets you provision individual VMs along with the associated networking and storage components. A continuación, puede implementar el software y las aplicaciones que desee en esas máquinas virtuales.Then you deploy whatever software and applications you want onto those VMs. Este modelo es lo más parecido a un entorno local tradicional, salvo que Microsoft administra la infraestructura.This model is the closest to a traditional on-premises environment, except that Microsoft manages the infrastructure. Aunque el usuario administra las máquinas virtuales.You still manage the individual VMs.

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.Platform-as-a-Service (PaaS) provides a managed hosting environment, where you can deploy your application without needing to manage VMs or networking resources. Azure App Service es un servicio PaaS.Azure App Service is a PaaS service.

Las funciones como servicio (FaaS) van más allá al eliminar la necesidad de preocuparse por el entorno de hospedaje.Functions-as-a-Service (FaaS) goes even further in removing the need to worry about the hosting environment. En un modelo de FaaS, simplemente implementa el código y el servicio lo ejecuta automáticamente.In a FaaS model, you simply deploy your code and the service automatically runs it. Azure Functions es un servicio de FaaS.Azure Functions are a FaaS service.

Existen varios servicios desde IaaS hasta el PaaS más puro.There is a spectrum from IaaS to pure PaaS. Por ejemplo, las máquinas virtuales de Azure pueden escalar automáticamente mediante conjuntos de escalado de máquinas virtuales.For example, Azure VMs can autoscale by using virtual machine scale sets. Esta capacidad de escalado automático no es estrictamente PaaS, pero es el tipo de característica de administración que se encuentra en los servicios de PaaS.This automatic scaling capability isn't strictly PaaS, but it's the type of management feature found in PaaS services.

En general, existe un equilibrio entre el control y la facilidad de gestión.In general, there is a tradeoff between control and ease of management. IaaS proporciona el mayor control, flexibilidad y portabilidad, pero debe aprovisionar, configurar y administrar las máquinas virtuales y los componentes de red que cree.IaaS gives the most control, flexibility, and portability, but you have to provision, configure and manage the VMs and network components you create. Los servicios FaaS administran automáticamente casi todos los aspectos de la ejecución de una aplicación.FaaS services automatically manage nearly all aspects of running an application. Los servicios de PaaS caen en algún lugar intermedio.PaaS services fall somewhere in between.

Considere los límites y el costoConsider limits and cost

A continuación, realice una evaluación más detallada, examinando los siguientes aspectos del servicio:Next, perform a more detailed evaluation, looking at the following aspects of the service:

En función de este análisis, puede encontrar que el candidato inicial no es adecuado para su aplicación o carga de trabajo en particular.Based on this analysis, you may find that the initial candidate isn't suitable for your particular application or workload. En ese caso, expanda el análisis para incluir otros servicios informáticos.In that case, expand your analysis to include other compute services.

Las tablas siguientes contienen puntos de comparación adicionales, que pueden ser útiles al elegir.The following tables contain additional comparison points, which may be useful when choosing.

Modelo de alojamientoHosting model

CriteriosCriteria Virtual MachinesVirtual Machines App ServiceApp Service Service FabricService Fabric Azure FunctionsAzure Functions Azure Kubernetes ServiceAzure Kubernetes Service Azure Container InstancesContainer Instances Azure BatchAzure Batch
Composición de la aplicaciónApplication composition IndependienteAgnostic Aplicaciones, contenedoresApplications, containers Ejecutables de invitado, servicios, contenedoresServices, guest executables, containers FunctionsFunctions ContenedoresContainers ContenedoresContainers Scheduled jobsScheduled jobs
DensidadDensity IndependienteAgnostic Varias aplicaciones por instancia a través de planes de App ServiceMultiple apps per instance via app service plans Varios servicios por VMMultiple services per VM Sin servidor 1Serverless 1 Varios contenedores por nodoMultiple containers per node Sin instancias dedicadasNo dedicated instances Varias aplicaciones por VMMultiple apps per VM
Número mínimo de nodosMinimum number of nodes 1 21 2 11 5 35 3 Sin servidor 1Serverless 1 3 33 3 Sin nodos dedicadosNo dedicated nodes 1 41 4
Administración de estadoState management Con o sin estadoStateless or Stateful Sin estadoStateless Con o sin estadoStateless or stateful Sin estadoStateless Con o sin estadoStateless or Stateful Sin estadoStateless Sin estadoStateless
Hospedaje webWeb hosting IndependienteAgnostic IntegradoBuilt in IndependienteAgnostic No aplicableNot applicable IndependienteAgnostic IndependienteAgnostic NoNo
¿Se puede implementar en una red virtual dedicada?Can be deployed to dedicated VNet? CompatibleSupported Compatible5Supported5 CompatibleSupported Compatible 5Supported 5 CompatibleSupported No compatibleNot supported CompatibleSupported
Conectividad híbridaHybrid connectivity CompatibleSupported Compatible 6Supported 6 CompatibleSupported Compatible 7Supported 7 CompatibleSupported No compatibleNot supported CompatibleSupported

NotasNotes

  1. Si utiliza el plan de consumo. Si usa el plan de App Service, las funciones se ejecutan en las máquinas virtuales asignadas para el plan de App Service. Consulte Elegir el plan de servicio correcto para Azure Functions.If using Consumption plan. If using App Service plan, functions run on the VMs allocated for your App Service plan. See Choose the correct service plan for Azure Functions.
  2. Acuerdo de Nivel de Servicio superior con dos o más instancias.Higher SLA with two or more instances.
  3. Se recomienda para entornos de producción.Recommended for production environments.
  4. Se puede reducir verticalmente hasta cero una vez completado el trabajo.Can scale down to zero after job completes.
  5. Requiere App Service Environment.Requires App Service Environment (ASE).
  6. Use Hybrid Connections de Azure App Service.Use Azure App Service Hybrid Connections.
  7. Requiere un plan de App Service.Requires App Service plan.

DevOpsDevOps

CriteriosCriteria Virtual MachinesVirtual Machines App ServiceApp Service Service FabricService Fabric Azure FunctionsAzure Functions Azure Kubernetes ServiceAzure Kubernetes Service Azure Container InstancesContainer Instances Azure BatchAzure Batch
Depuración localLocal debugging IndependienteAgnostic IIS Express, otros 1IIS Express, others 1 Clúster de nodo localLocal node cluster Visual Studio o CLI de Azure FunctionsVisual Studio or Azure Functions CLI Minikube, otrosMinikube, others Tiempo de ejecución de contenedor localLocal container runtime No compatibleNot supported
Modelo de programaciónProgramming model IndependienteAgnostic Aplicaciones web y API, WebJobs para tareas en segundo planoWeb and API applications, WebJobs for background tasks Invitado ejecutable, modelo de servicio, modelo de actor, contenedoresGuest executable, Service model, Actor model, Containers Functions con desencadenadoresFunctions with triggers IndependienteAgnostic IndependienteAgnostic Aplicación de línea de comandosCommand line application
Actualización de aplicacionesApplication update Sin compatibilidad integradaNo built-in support Ranuras de implementaciónDeployment slots Actualización (por servicio) gradualRolling upgrade (per service) Ranuras de implementaciónDeployment slots Actualización gradualRolling update No aplicableNot applicable

NotasNotes

  1. Las opciones incluyen IIS Express para ASP.NET o node.js (iisnode); Servidor web PHP; Azure Toolkit for IntelliJ, Azure Toolkit for Eclipse. App Service también admite la depuración remota de la aplicación web implementada.Options include IIS Express for ASP.NET or node.js (iisnode); PHP web server; Azure Toolkit for IntelliJ, Azure Toolkit for Eclipse. App Service also supports remote debugging of deployed web app.
  2. Vea Proveedores, regiones, versiones de API y esquemas de Resource Manager.See Resource Manager providers, regions, API versions and schemas.

EscalabilidadScalability

CriteriosCriteria Virtual MachinesVirtual Machines App ServiceApp Service Service FabricService Fabric Azure FunctionsAzure Functions Azure Kubernetes ServiceAzure Kubernetes Service Azure Container InstancesContainer Instances Azure BatchAzure Batch
Escalado automáticoAutoscaling Conjuntos de escalado de máquinas virtualesVirtual machine scale sets Servicio integradoBuilt-in service Conjuntos de escalado de máquinas virtualesVirtual machine scale sets Servicio integradoBuilt-in service Escalado automáticodepod1 ,escalado automático del clúster 2Pod auto-scaling1, cluster auto-scaling2 No compatibleNot supported N/DN/A
Equilibrador de cargaLoad balancer Azure Load BalancerAzure Load Balancer IntegradoIntegrated Azure Load BalancerAzure Load Balancer IntegradoIntegrated Azure Load Balancer o Application GatewayAzure Load Balancer or Application Gateway Sin compatibilidad integradaNo built-in support Azure Load BalancerAzure Load Balancer
Límite de escala3Scale limit3 Imagen de plataforma: 1000 nodos por conjunto de escalado, imagen personalizada: 600 nodos por conjunto de escaladoPlatform image: 1000 nodes per scale set, Custom image: 600 nodes per scale set 20 instancias, 100 con App Service Environment20 instances, 100 with App Service Environment 100 nodos por conjunto de escalado100 nodes per scale set 200 instancias por aplicación Function200 instances per Function app 100 nodos por clúster (límite predeterminado)100 nodes per cluster (default limit) 20 grupos de contenedores por suscripción (límite predeterminado).20 container groups per subscription (default limit). 20 núcleos (límite predeterminado).20 core limit (default limit).

NotasNotes

  1. Consulte Escalado automático de pods.See Autoscale pods.
  2. Consulte Escalado automático de un clúster para satisfacer las demandas de aplicaciones en Azure Kubernetes Service (AKS).See Automatically scale a cluster to meet application demands on Azure Kubernetes Service (AKS).
  3. Consulte Límites, cuotas y restriccionesde suscripción y servicio de Azure.See Azure subscription and service limits, quotas, and constraints.

DisponibilidadAvailability

CriteriosCriteria Virtual MachinesVirtual Machines App ServiceApp Service Service FabricService Fabric Azure FunctionsAzure Functions Azure Kubernetes ServiceAzure Kubernetes Service Azure Container InstancesContainer Instances Azure BatchAzure Batch
Contrato de nivel de servicioSLA Contrato de nivel de servicio para Máquinas virtualesSLA for Virtual Machines Acuerdo de Nivel de Servicio para App ServiceSLA for App Service Acuerdo de Nivel de Servicio para Service FabricSLA for Service Fabric Acuerdo de Nivel de Servicio para FunctionsSLA for Functions SLA para AKSSLA for AKS Acuerdo de nivel de servicio para Container InstancesSLA for Container Instances Acuerdo de Nivel de Servicio para Azure BatchSLA for Azure Batch
Conmutación por error de múltiples regionesMulti region failover Traffic ManagerTraffic manager Traffic ManagerTraffic manager Traffic Manager, clúster de varias regionesTraffic manager, Multi-Region Cluster No compatibleNot supported Traffic ManagerTraffic manager No compatibleNot supported No compatibleNot Supported

Para obtener información guiada sobre las garantías de servicio, consulte Core Cloud Services - Azure architecture and service guarantees.For guided learning on Service Guarantees, review Core Cloud Services - Azure architecture and service guarantees.

Otros criteriosOther criteria

CriteriosCriteria Virtual MachinesVirtual Machines App ServiceApp Service Service FabricService Fabric Azure FunctionsAzure Functions Azure Kubernetes ServiceAzure Kubernetes Service Azure Container InstancesContainer Instances Azure BatchAzure Batch
SSLSSL Configurado en VMConfigured in VM CompatibleSupported CompatibleSupported CompatibleSupported Controlador de entradaIngress controller Uso de contenedores sidecarUse sidecar container CompatibleSupported
CosteCost Windows, LinuxWindows, Linux Precios de App ServiceApp Service pricing Precios de Service FabricService Fabric pricing Precios de Azure FunctionsAzure Functions pricing Precios de AKSAKS pricing Precios de Container InstancesContainer Instances pricing Precios de Azure BatchAzure Batch pricing
Estilos de arquitectura idóneosSuitable architecture styles N-Tier, Big Compute (HPC)N-Tier, Big compute (HPC) Web-Cola-Trabajo, N nivelesWeb-Queue-Worker, N-Tier Microservicios, arquitectura orientada a eventosMicroservices, Event-driven architecture Microservicios, arquitectura orientada a eventosMicroservices, Event-driven architecture Microservicios, arquitectura orientada a eventosMicroservices, Event-driven architecture Microservicios, automatización de tareas, trabajos por lotesMicroservices, task automation, batch jobs Big Compute (HPC)Big compute (HPC)

La salida de este diagrama de flujo es un punto de partida a tener en cuenta.The output from this flowchart is a starting point for consideration. A continuación, realice una evaluación más detallada del servicio para ver si satisface sus necesidades.Next, perform a more detailed evaluation of the service to see if it meets your needs.

Comprender las características básicasUnderstand the basic features

Si no está familiarizado con el servicio de Azure seleccionado en el paso anterior, lea uno de los siguientes artículos de información general:If you're not familiar with the Azure service selected in the previous step, read one of the following overview articles:

Considere los límites y el costoConsider limits and cost

A continuación, realice una evaluación más detallada, examinando los siguientes aspectos del servicio:Next, perform a more detailed evaluation, looking at the following aspects of the service:

En función de este análisis, puede encontrar que el candidato inicial no es adecuado para su aplicación o carga de trabajo en particular.Based on this analysis, you may find that the initial candidate isn't suitable for your particular application or workload. En ese caso, expanda el análisis para incluir otros servicios informáticos.In that case, expand your analysis to include other compute services.

Pasos siguientesNext steps