Elección de los servicios de integración y automatización adecuados en AzureChoose the right integration and automation services in Azure

En este artículo se comparan los siguientes servicios en la nube de Microsoft:This article compares the following Microsoft cloud services:

Todos estos servicios pueden solucionar problemas de integración y automatizar procesos empresariales.All of these services can solve integration problems and automate business processes. Todos pueden definir entradas, acciones, condiciones y salidas.They can all define input, actions, conditions, and output. Todos se pueden ejecutar según una programación o un desencadenador.You can run each of them on a schedule or trigger. Cada servicio tiene unas ventajas únicas y este artículo explica las diferencias.Each service has unique advantages, and this article explains the differences.

Si está buscando una comparación más general entre Azure Functions y las demás opciones de proceso de Azure, consulte Criterios para elegir un servicio de proceso de Azure y Elección de una opción de proceso de Azure para microservicios.If you're looking for a more general comparison between Azure Functions and other Azure compute options, see Criteria for choosing an Azure compute service and Choosing an Azure compute option for microservices.

Comparación entre Microsoft Power Automate y Azure Logic AppsCompare Microsoft Power Automate and Azure Logic Apps

Microsoft Flow y Logic Apps son servicios de integración orientados al diseñador que pueden crear flujos de trabajo.Power Automate and Logic Apps are both designer-first integration services that can create workflows. Ambos servicios se integran con varias aplicaciones SaaS y empresariales.Both services integrate with various SaaS and enterprise applications.

Power Automate se compila a partir de Logic Apps.Power Automate is built on top of Logic Apps. Comparten el mismo diseñador de flujos de trabajo y los mismos conectores.They share the same workflow designer and the same connectors.

Power Automate permite a los trabajadores de oficina realizar integraciones sencillas (por ejemplo, un proceso de aprobación en una biblioteca de documentos de SharePoint) sin pasar por los desarrolladores o el departamento de TI.Power Automate empowers any office worker to perform simple integrations (for example, an approval process on a SharePoint Document Library) without going through developers or IT. Logic Apps también puede permitir integraciones avanzadas (por ejemplo, procesos B2B) donde se requieren procedimientos Azure DevOps y de seguridad de nivel empresarial.Logic Apps can also enable advanced integrations (for example, B2B processes) where enterprise-level Azure DevOps and security practices are required. Lo normal es que la complejidad de un flujo de trabajo empresarial aumente con el tiempo.It's typical for a business workflow to grow in complexity over time. En consecuencia, puede comenzar con un flujo al principio y convertirlo en una aplicación lógica cuando sea necesario.Accordingly, you can start with a flow at first, and then convert it to a logic app as needed.

La tabla siguiente le ayuda a determinar qué es lo mejor para una integración específica, si Power Automate o Logic Apps:The following table helps you determine whether Power Automate or Logic Apps is best for a particular integration:

Power AutomatePower Automate Logic AppsLogic Apps
UsuariosUsers Administrativos, usuarios empresariales, administradores de SharePointOffice workers, business users, SharePoint administrators Integradores profesionales y desarrolladores, profesionales de TIPro integrators and developers, IT pros
EscenariosScenarios AutoservicioSelf-service Integraciones avanzadasAdvanced integrations
Herramienta de diseñoDesign tool En el explorador y aplicación móvil, solo UIIn-browser and mobile app, UI only En el explorador y Visual Studio, visualización del código disponibleIn-browser and Visual Studio, Code view available
Administración del ciclo de vida de las aplicaciones (ALM)Application lifecycle management (ALM) Diseño y pruebas en entornos no destinados a producción, paso a producción cuando procedaDesign and test in non-production environments, promote to production when ready Azure DevOps: control de código fuente, pruebas, soporte técnico, automatización y capacidad de administración en Azure Resource ManagerAzure DevOps: source control, testing, support, automation, and manageability in Azure Resource Manager
Experiencia del administradorAdmin experience Administración de directivas de prevención de pérdida de datos (DLP) y entornos de flujo de Power Automate, seguimiento de licencias: Centro de administraciónManage Power Automate environments and data loss prevention (DLP) policies, track licensing: Admin center Administración de grupos de recursos, conexiones, administración de acceso y registro: Azure PortalManage resource groups, connections, access management, and logging: Azure portal
SeguridadSecurity Registros de auditoría de seguridad de Microsoft 365, DLP, cifrado en reposo para datos confidencialesMicrosoft 365 security audit logs, DLP, encryption at rest for sensitive data Garantía de seguridad de Azure: Seguridad de Azure, Azure Security Center, registros de auditoríaSecurity assurance of Azure: Azure security, Azure Security Center, audit logs

Comparativa entre Azure Functions y Azure Logic AppsCompare Azure Functions and Azure Logic Apps

Functions y Logic Apps son servicios de Azure que posibilitan las cargas de trabajo sin servidor.Functions and Logic Apps are Azure services that enable serverless workloads. Azure Functions es un servicio de proceso sin servidor, mientras que Azure Logic Apps proporciona flujos de trabajo sin servidor.Azure Functions is a serverless compute service, whereas Azure Logic Apps provides serverless workflows. Ambos pueden crear orquestaciones complejas.Both can create complex orchestrations. Una orquestación es una colección de funciones o pasos, llamados acciones en Logic Apps, que se ejecutan para realizar una tarea compleja.An orchestration is a collection of functions or steps, called actions in Logic Apps, that are executed to accomplish a complex task. Por ejemplo, para procesar un lote de pedidos podría ejecutar varias instancias de una función en paralelo, esperar a que todas las instancias terminen y, a continuación, ejecutar una función que calcula un resultado sobre el agregado.For example, to process a batch of orders, you might execute many instances of a function in parallel, wait for all instances to finish, and then execute a function that computes a result on the aggregate.

En Azure Functions, las orquestaciones se desarrollan mediante la escritura de código y el uso de la extensión Durable Functions.For Azure Functions, you develop orchestrations by writing code and using the Durable Functions extension. En Logic Apps, las orquestaciones se crean mediante una GUI o editando archivos de configuración.For Logic Apps, you create orchestrations by using a GUI or editing configuration files.

Puede mezclar y combinar servicios cuando crea una orquestación, puede llamar a las funciones desde las aplicaciones lógicas y llamar a las aplicaciones lógicas desde las funciones.You can mix and match services when you build an orchestration, calling functions from logic apps and calling logic apps from functions. Elija cómo crear cada orquestación según las funcionalidades de los servicios o sus preferencias personales.Choose how to build each orchestration based on the services' capabilities or your personal preference. En la tabla siguiente se enumeran algunas de las principales diferencias entre:The following table lists some of the key differences between these:

Funciones duraderasDurable Functions Logic AppsLogic Apps
DesarrolloDevelopment Orientado a código (imperativo)Code-first (imperative) Orientado al diseñador (declarativo)Designer-first (declarative)
ConectividadConnectivity Con una docena de tipos de enlaces integrados, puede escribir código para los enlaces personalizadosAbout a dozen built-in binding types, write code for custom bindings Gran colección de conectores, Enterprise Integration Pack para escenarios B2B, creación de conectores personalizadosLarge collection of connectors, Enterprise Integration Pack for B2B scenarios, build custom connectors
AccionesActions Cada actividad es una función de Azure; puede escribir código para las funciones de actividadEach activity is an Azure function; write code for activity functions Gran colección de acciones listas para usarLarge collection of ready-made actions
SupervisiónMonitoring Azure Application InsightsAzure Application Insights Azure Portal, registros de Azure MonitorAzure portal, Azure Monitor logs
AdministraciónManagement API REST, Visual StudioREST API, Visual Studio Azure Portal, API REST, PowerShell, Visual StudioAzure portal, REST API, PowerShell, Visual Studio
Contexto de ejecuciónExecution context Se puede ejecutar localmente o en la nubeCan run locally or in the cloud Solo se ejecuta en la nubeRuns only in the cloud

Comparativa entre Functions y WebJobsCompare Functions and WebJobs

Al igual que Azure Functions, Azure App Service WebJobs con el SDK de WebJobs es un servicio de integración de tipo código primero que está diseñado para desarrolladores.Like Azure Functions, Azure App Service WebJobs with the WebJobs SDK is a code-first integration service that is designed for developers. Ambos se basan en Azure App Service y admiten características como la integración del control de código fuente, la autenticación y la supervisión con integración de Application Insights.Both are built on Azure App Service and support features such as source control integration, authentication, and monitoring with Application Insights integration.

WebJobs y el SDK de WebJobsWebJobs and the WebJobs SDK

Puede usar la característica WebJobs de App Service para ejecutar un script o código en el contexto de una aplicación web de App Service.You can use the WebJobs feature of App Service to run a script or code in the context of an App Service web app. El SDK de WebJobs es un marco diseñado para WebJobs que simplifica el código que se escribe para responder a eventos en los servicios de Azure.The WebJobs SDK is a framework designed for WebJobs that simplifies the code you write to respond to events in Azure services. Por ejemplo, podría responder a la creación de un blob de imágenes en Azure Storage mediante la creación de una imagen en miniatura.For example, you might respond to the creation of an image blob in Azure Storage by creating a thumbnail image. El SDK de WebJobs se ejecuta como una aplicación de consola .NET que se puede implementar en un WebJob.The WebJobs SDK runs as a .NET console application, which you can deploy to a WebJob.

Tanto WebJobs como el SDK de WebJobs funcionan mejor conjuntamente, pero WebJobs se puede usar sin el SDK de WebJobs, y viceversa.WebJobs and the WebJobs SDK work best together, but you can use WebJobs without the WebJobs SDK and vice versa. Un WebJob puede ejecutar cualquier programa o script que se ejecute en el espacio aislado de App Service.A WebJob can run any program or script that runs in the App Service sandbox. Una aplicación de consola del SDK de WebJobs se puede ejecutar en cualquier lugar en el que se puedan ejecutar aplicaciones de consola, como los servidores locales.A WebJobs SDK console application can run anywhere console applications run, such as on-premises servers.

Tabla de comparaciónComparison table

Azure Functions se basa en el SDK de WebJobs, por lo que comparte muchos desencadenadores de eventos y conexiones con otros servicios de Azure.Azure Functions is built on the WebJobs SDK, so it shares many of the same event triggers and connections to other Azure services. Estos son algunos de los factores que se deben tener en cuenta al elegir entre Azure Functions y WebJobs con el SDK de WebJobs:Here are some factors to consider when you're choosing between Azure Functions and WebJobs with the WebJobs SDK:

FunctionsFunctions WebJobs con el SDK de WebJobsWebJobs with WebJobs SDK
Modelo de aplicaciones sin servidor con escalado automáticoServerless app model with automatic scaling
Desarrollo y pruebas en el exploradorDevelop and test in browser
Precios de pago por usoPay-per-use pricing
Integración con Logic AppsIntegration with Logic Apps
Desencadenar eventosTrigger events TemporizadorTimer
Blobs y colas de Azure StorageAzure Storage queues and blobs
Colas y temas de Azure Service BusAzure Service Bus queues and topics
Azure Cosmos DBAzure Cosmos DB
Azure Event HubsAzure Event Hubs
HTTP/WebHook (GitHub, Slack)HTTP/WebHook (GitHub, Slack)
Azure Event GridAzure Event Grid
TemporizadorTimer
Blobs y colas de Azure StorageAzure Storage queues and blobs
Colas y temas de Azure Service BusAzure Service Bus queues and topics
Azure Cosmos DBAzure Cosmos DB
Azure Event HubsAzure Event Hubs
Sistema de archivosFile system
Idiomas admitidosSupported languages C#C#
F#F#
JavaScriptJavaScript
JavaJava
PythonPython
PowerShellPowerShell
C#1C#1
Administradores de paquetesPackage managers NPM y NuGetNPM and NuGet NuGet2NuGet2

1 WebJobs (sin el SDK de WebJobs) admite C#, Java, JavaScript, Bash, .cmd, .bat, PowerShell, PHP, TypeScript, Python y muchos más.1 WebJobs (without the WebJobs SDK) supports C#, Java, JavaScript, Bash, .cmd, .bat, PowerShell, PHP, TypeScript, Python, and more. Esta lista no es completa.This is not a comprehensive list. Un WebJob puede ejecutar cualquier programa o script que se pueda ejecutar en el espacio aislado de App Service.A WebJob can run any program or script that can run in the App Service sandbox.

2 WebJobs (sin el SDK de WebJobs) admite NPM y NuGet.2 WebJobs (without the WebJobs SDK) supports NPM and NuGet.

ResumenSummary

Azure Functions ofrece más productividad de desarrollo que WebJobs de Azure App Service.Azure Functions offers more developer productivity than Azure App Service WebJobs does. También ofrece más opciones de lenguajes de programación, entornos de desarrollo, integración del servicio Azure y precios.It also offers more options for programming languages, development environments, Azure service integration, and pricing. En la mayoría de los casos, es la mejor opción.For most scenarios, it's the best choice.

Estos son dos de los casos en los que WebJobs puede ser la mejor opción:Here are two scenarios for which WebJobs may be the best choice:

  • Es preciso tener más control sobre el código que realiza escuchas de eventos, el objeto JobHost.You need more control over the code that listens for events, the JobHost object. Functions ofrece un número limitado de formas de personalizar el comportamiento de JobHost en el archivo host.json.Functions offers a limited number of ways to customize JobHost behavior in the host.json file. A veces es preciso hacer cosas que no se pueden especificar mediante una cadena de un archivo JSON.Sometimes you need to do things that can't be specified by a string in a JSON file. Por ejemplo, el SDK de WebJobs es el único que le permite configurar una directiva de reintentos personalizada para Azure Storage.For example, only the WebJobs SDK lets you configure a custom retry policy for Azure Storage.
  • Tiene una aplicación de App Service en la que desea ejecutar fragmentos de código y desea administrarlos conjuntamente en el mismo entorno de Azure DevOps.You have an App Service app for which you want to run code snippets, and you want to manage them together in the same Azure DevOps environment.

Para otros escenarios en los que desee ejecutar fragmentos de código para integrar Azure o servicios de terceros, elija Azure Functions, en lugar de WebJobs con el SDK de WebJobs.For other scenarios where you want to run code snippets for integrating Azure or third-party services, choose Azure Functions over WebJobs with the WebJobs SDK.

Power Automate, Logic Apps, Functions y WebJobs juntosPower Automate, Logic Apps, Functions, and WebJobs together

No tiene por qué elegir solo uno de estos servicios.You don't have to choose just one of these services. Se integran entre sí, así como con servicios externos.They integrate with each other as well as they do with external services.

Un flujo puede llamar a una aplicación lógica.A flow can call a logic app. Una aplicación de lógica puede llamar a una función y una función puede llamar a una aplicación lógica.A logic app can call a function, and a function can call a logic app. Consulte, por ejemplo, Creación de una función que se integre con Azure Logic Apps.See, for example, Create a function that integrates with Azure Logic Apps.

La integración entre Power Automate, Logic Apps y Functions sigue mejorando con el tiempo.The integration between Power Automate, Logic Apps, and Functions continues to improve over time. Puede crear algo en un servicio y usarlo en los otros.You can build something in one service and use it in the other services.

Puede obtener más información acerca de los servicios de integración mediante los siguientes vínculos:You can get more information on integration services by using the following links:

Pasos siguientesNext steps

Para empezar, cree su primer flujo, aplicación lógica o aplicación de función.Get started by creating your first flow, logic app, or function app. Seleccione cualquiera de los siguientes vínculos:Select any of the following links: