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:

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.

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.

Comparación entre Microsoft Power Automate y Azure Logic Apps

Microsoft Flow y Logic Apps son servicios de integración orientados al diseñador que pueden crear flujos de trabajo. Ambos servicios se integran con varias aplicaciones SaaS y empresariales.

Power Automate se compila a partir de Logic Apps. Comparten el mismo diseñador de flujos de trabajo y los mismos conectores.

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. Logic Apps también puede permitir integraciones avanzadas (por ejemplo, procesos B2B) donde se requieren procedimientos Azure DevOps y de seguridad de nivel empresarial. Lo normal es que la complejidad de un flujo de trabajo empresarial aumente con el tiempo. En consecuencia, puede comenzar con un flujo al principio y convertirlo en una aplicación lógica cuando sea necesario.

La tabla siguiente le ayuda a determinar qué es lo mejor para una integración específica, si Power Automate o Logic Apps:

Power Automate Logic Apps
Usuarios Administrativos, usuarios empresariales, administradores de SharePoint Integradores profesionales y desarrolladores, profesionales de TI
Escenarios Autoservicio Integraciones avanzadas
Herramienta de diseño En el explorador y aplicación móvil, solo UI En el explorador y Visual Studio, visualización del código disponible
Administración del ciclo de vida de las aplicaciones (ALM) Diseño y pruebas en entornos no destinados a producción, paso a producción cuando proceda Azure DevOps: control de código fuente, pruebas, soporte técnico, automatización y capacidad de administración en Azure Resource Manager
Experiencia del administrador 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ón Administración de grupos de recursos, conexiones, administración de acceso y registro: Azure Portal
Seguridad Registros de auditoría de seguridad de Microsoft 365, DLP, cifrado en reposo para datos confidenciales Garantía de seguridad de Azure: Seguridad de Azure, Microsoft Defender para la nube, registros de auditoría.

Comparativa entre Azure Functions y Azure Logic Apps

Functions y Logic Apps son servicios de Azure que posibilitan las cargas de trabajo sin servidor. Azure Functions es un servicio de proceso sin servidor, mientras que Azure Logic Apps proporciona flujos de trabajo sin servidor. Ambos pueden crear orquestaciones complejas. Una orquestación es una colección de funciones o pasos, llamados acciones en Logic Apps, que se ejecutan 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 Logic Apps, las orquestaciones se crean mediante una GUI o editando archivos de configuración.

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. 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 principales diferencias entre:

Funciones duraderas Logic Apps
Desarrollo Orientado a código (imperativo) Orientado al diseñador (declarativo)
Conectividad Con una docena de tipos de enlaces integrados, puede escribir código para los enlaces personalizados Gran colección de conectores, Enterprise Integration Pack para escenarios B2B, creación de conectores personalizados
Acciones Cada actividad es una función de Azure; puede escribir código para las funciones de actividad Gran colección de acciones listas para usar
Supervisión Azure Application Insights Azure Portal, registros de Azure Monitor
Administración API REST, Visual Studio Azure Portal, API REST, PowerShell, Visual Studio
Contexto de ejecución Se puede ejecutar localmente o en la nube Solo se ejecuta en la nube

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

1 WebJobs (sin el SDK de WebJobs) admite C#, Java, JavaScript, Bash, .cmd, .bat, PowerShell, PHP, TypeScript, Python y muchos más. Esta lista no es completa. 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 puede 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 de JobHost en el archivo host.json. A veces es preciso hacer cosas que no se pueden especificar mediante una cadena de 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.

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.

Power Automate, Logic Apps, Functions y WebJobs juntos

No tiene por qué elegir solo uno de estos servicios. Se integran entre sí, así como con servicios externos.

Un flujo puede llamar a una aplicación lógica. Una aplicación de lógica puede llamar a una función y una función puede llamar a una aplicación lógica. Consulte, por ejemplo, Creación de una función que se integre con Azure Logic Apps.

La integración entre Power Automate, Logic Apps y Functions sigue mejorando con el tiempo. Puede crear algo en un servicio y usarlo en los otros.

Puede obtener más información acerca de los servicios de integración mediante los siguientes vínculos:

Pasos siguientes

Para empezar, cree su primer flujo, aplicación lógica o aplicación de función. Seleccione cualquiera de los siguientes vínculos: