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:
- Criterios para elegir un servicio de proceso de Azure
- Elección de una opción de proceso de Azure para los microservicios
Para obtener un resumen y comparación de las opciones de servicio de automatización en Azure:
Comparación entre Microsoft Power Automate y Azure Logic Apps
Power Automate y Azure 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 basa en la plataforma Azure Logic Apps. Ambos proporcionan conectores y diseñadores de flujos de trabajo similares.
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.
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, Visual Studio Code y Visual Studio con la visualización del código disponible. |
Administración del ciclo de vida de las aplicaciones (ALM) | Power Platform proporciona herramientas que se integran con DevOps y Acciones de GitHub para permitirle crear canalizaciones automatizadas en el ciclo de ALM. | 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 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 o 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, las orquestaciones se crean mediante una GUI o editando archivos de configuración.
Puede mezclar y combinar servicios cuando crea una orquestación, como llamar a las funciones desde las flujos de trabajo de aplicaciones lógicas y llamar a los flujos de trabajo de 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 diferencias principales entre estos servicios:
Funciones duraderas | Azure 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, Microsoft Defender for Cloud |
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 | Se ejecuta en Azure localmente. Para más información, consulte ¿Qué es Azure Logic Apps? |
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 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 deJobHost
en el archivoJobHost
. 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í 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, Logic Apps y Functions continúa mejorando con el tiempo. Puede compilar un componente en un servicio y usarlo en otro.
Puede obtener más información acerca de los servicios de integración mediante los siguientes vínculos:
- 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 sobre 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: