Elección de los servicios de integración y automatización adecuados en Azure
En este artículo se comparan los siguientes servicios en la nube de Microsoft:
- Microsoft Power Automate (era Microsoft Flow)
- Azure Logic Apps
- Funciones de Azure
- Azure App Service
Todos estos servicios pueden solucionar problemas de integración y automatizar procesos empresariales. Todos pueden definir entradas, acciones, condiciones y salidas. Todos se pueden ejecutar según una programación o un desencadenador. Cada servicio tiene unas ventajas únicas y este artículo explica las diferencias.
Nota:
Si busca una comparación más general entre Azure Functions y otras opciones de proceso de Azure, consulte los siguientes artículos:
- Criterios para elegir un servicio de proceso de Azure
- Elección de una opción de proceso de Azure para los microservicios
Para ver un resumen y una comparación de las opciones del servicio de automatización en Azure, consulte Elección de los servicios de Automation en Azure.
Comparación Azure Logic Apps y Microsoft Power Automate
Estos servicios son plataformas de integración orientados al diseñador en las que puede compilar y ejecutar flujos de trabajo automatizados. Ambas plataformas se integran con diversas aplicaciones empresariales y de software como servicio (SaaS). Ambas proporcionan diseñadores de flujos de trabajo similares y, aunque sus conectores comparten cierta superposición, cada plataforma también ofrece sus propios conectores únicos.
Power Automate permite a los usuarios empresariales, a los trabajadores de oficina y a los desarrolladores ciudadanos crear integraciones sencillas sin tener que trabajar con TI o desarrolladores ni escribir código. Un ejemplo podría ser un flujo de trabajo de aprobación para una biblioteca de documentos de SharePoint. Azure Logic Apps admite integraciones que van desde escenarios con poco o sin código a complejos flujos de trabajo más avanzados y con código. Algunos ejemplos son los procesos o escenarios B2B que requieren interacciones de nivel empresarial con Azure DevOps. Los flujos de trabajo empresariales también puede pasar de simples a completos con el paso del tiempo.
Para ayudarle a determinar si desea usar Azure Logic Apps o Power Automate para una integración concreta, consulte la tabla de comparación de funcionalidades.
Comparativa entre Azure Functions y Azure Logic Apps
Estos servicios de Azure permiten compilar y ejecutar cargas de trabajo sin servidor. Azure Functions es un servicio de procesos sin servidor, mientras que Azure Logic Apps es una plataforma de integración de flujos de trabajo sin servidor. Ambos pueden crear orquestaciones complejas. Una orquestación es una colección de funciones, a las que se denomina acciones en Azure Logic Apps, que se pueden ejecutar para realizar una tarea compleja. 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.
En Azure Functions, las orquestaciones se desarrollan mediante la escritura de código y el uso de la extensión Durable Functions. En Azure Logic Apps, para crear orquestaciones es preciso usar diseñador visual o editar plantillas de Azure Resource Manager.
Puede combinar y asociar servicios al crear una orquestación. Por ejemplo, puede llamar a funciones desde flujos de trabajo de una aplicación lógica y llamar a flujos de trabajo de una aplicación lógica desde funciones. Elija cómo crear cada orquestación según las funcionalidades de los servicios o sus preferencias personales. En la tabla siguiente se enumeran algunas de las diferencias principales entre estos servicios:
Comparativa entre Functions y 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. 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.
WebJobs y el SDK de WebJobs
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. 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. 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. El SDK de WebJobs se ejecuta como una aplicación de consola .NET que se puede implementar en un WebJob.
Tanto WebJobs como el SDK de WebJobs funcionan mejor conjuntamente, pero WebJobs se puede usar sin el SDK de WebJobs, y viceversa. Un WebJob puede ejecutar cualquier programa o script que se ejecute en el espacio aislado de App Service. 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.
Tabla de comparación
Azure Functions se basa en el SDK de WebJobs, por lo que comparte muchos desencadenadores de eventos y conexiones con otros servicios de Azure. Estos son algunos de los factores que se deben tener en cuenta al elegir entre Azure Functions y WebJobs con el SDK de WebJobs:
Functions | WebJobs con el SDK de WebJobs | |
---|---|---|
Modelo de aplicaciones sin servidor con escalado automático | ✔ | |
Desarrollo y pruebas en el explorador | ✔ | |
Precios de pago por uso | ✔ | |
Integración con Logic Apps | ✔ | |
Desencadenar eventos |
Temporizador Blobs y colas de Azure Storage Colas y temas de Azure Service Bus Azure Cosmos DB Azure Event Hubs HTTP/WebHook (GitHub, Slack) Azure Event Grid |
Temporizador Blobs y colas de Azure Storage Colas y temas de Azure Service Bus Azure Cosmos DB Azure Event Hubs Sistema de archivos |
Idiomas admitidos | C# F# JavaScript Java Python PowerShell |
C#1 |
Administradores de paquetes | npm y NuGet | NuGet2 |
1WebJobs (sin el SDK de WebJobs) admite lenguajes como C#, Java, JavaScript, Bash, .cmd, .bat, PowerShell, PHP, TypeScript, Python y muchos más. Un WebJob puede ejecutar cualquier programa o script que se pueda ejecutar en el espacio aislado de App Service.
2 WebJobs (sin el SDK de WebJobs) admite npm y NuGet.
Resumen
Azure Functions ofrece más productividad de desarrollo que WebJobs de Azure App Service. También ofrece más opciones de lenguajes de programación, entornos de desarrollo, integración del servicio Azure y precios. En la mayoría de los casos, es la mejor opción.
Estos son dos de los casos en los que WebJobs podría ser la mejor opción:
- Es preciso tener más control sobre el código que realiza escuchas de eventos, el objeto
JobHost
. Functions ofrece un número limitado de formas de personalizar el comportamiento deJobHost
en el archivoJobHost
. A veces, es preciso hacer cosas que no se pueden especificar mediante el uso de una cadena en un archivo JSON. Por ejemplo, el SDK de WebJobs es el único que le permite configurar una directiva de reintentos personalizada para 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.
En el caso de otros escenarios en los que desee ejecutar fragmentos de código para integrar Azure o servicios externos, elija Azure Functions, en lugar de WebJobs con el SDK de WebJobs.
Power Automate, Logic Apps, Functions y WebJobs juntos
No tiene por qué elegir solo uno de estos servicios. Se integran entre sí y con servicios externos.
Un flujo de Power Automate puede llamar a un flujo de trabajo de Azure Logic Apps. Un flujo de trabajo de Azure Logic Apps puede llamar a una función en Azure Functions y viceversa. Por ejemplo, consulte Creación de una función que se integre con Azure Logic Apps.
La experiencia de integración entre Power Automate, Azure Logic Apps y Functions continúa mejorando con el tiempo. Puede compilar un componente en un servicio y usarlo en otro.
Para más información sobre los servicios de integración, consulte los siguientes artículos:
- Leveraging Azure Functions & Azure App Service for integration scenarios (Aprovechamiento de Azure Functions y Azure App Service para escenarios de integración) por Christopher Anderson
- Integrations Made Simple
- Webcast en directo acerca de Azure Logic Apps
- Preguntas frecuentes sobre Power Automate
Pasos siguientes
Para empezar, cree su primer flujo, aplicación lógica, flujo de trabajo o aplicación de función. Seleccione cualquiera de los siguientes vínculos: