Choose the right integration and automation services in Azure
This article compares the following Microsoft cloud services:
- Microsoft Power Automate (was Microsoft Flow)
- Azure Logic Apps
- Azure Functions
- Azure App Service WebJobs
All of these services can solve integration problems and automate business processes. They can all define input, actions, conditions, and output. You can run each of them on a schedule or trigger. Each service has unique advantages, and this article explains the differences.
Note
If you're looking for a more general comparison between Azure Functions and other Azure compute options:
For a summary and comparison of automation service options in Azure:
Compare Microsoft Power Automate and Azure Logic Apps
Power Automate and Azure Logic Apps are both designer-first integration services that can create workflows. Both services integrate with various SaaS and enterprise applications.
Power Automate is built on the Azure Logic Apps platform. Both provide similar workflow designers and connectors.
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 can also enable advanced integrations (for example, B2B processes) where enterprise-level Azure DevOps and security practices are required. It's typical for a business workflow to grow in complexity over time.
The following table helps you determine whether Power Automate or Logic Apps is best for a particular integration:
Power Automate | Logic Apps | |
---|---|---|
Users | Office workers, business users, SharePoint administrators | Pro integrators and developers, IT pros |
Scenarios | Self-service | Advanced integrations |
Design tool | In-browser and mobile app, UI only | In-browser, Visual Studio Code, and Visual Studio with code view available |
Application lifecycle management (ALM) | Power Platform provides tools that integrate with DevOps and GitHub Actions to let you build automated pipelines in the ALM cycle. | Azure DevOps: source control, testing, support, automation, and manageability in Azure Resource Manager |
Admin experience | Manage Power Automate environments and data loss prevention (DLP) policies, track licensing: Admin center | Manage resource groups, connections, access management, and logging: Azure portal |
Security | Microsoft 365 security audit logs, DLP, encryption at rest for sensitive data | Security assurance of Azure: Azure security, Microsoft Defender for Cloud, audit logs |
Compare Azure Functions and Azure Logic Apps
Functions and Logic Apps are Azure services that enable serverless workloads. Azure Functions is a serverless compute service, whereas Azure Logic Apps is a serverless workflow integration platform. Both can create complex orchestrations. An orchestration is a collection of functions, or actions in Azure Logic Apps, that you can run to complete a complex task. 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.
For Azure Functions, you develop orchestrations by writing code and using the Durable Functions extension. For Azure Logic Apps, you create orchestrations by using a GUI or editing configuration files.
You can mix and match services when you build an orchestration, such as calling functions from logic app workflows and calling logic app workflows from functions. Choose how to build each orchestration based on the services' capabilities or your personal preference. The following table lists some key differences between these services:
Durable Functions | Azure Logic Apps | |
---|---|---|
Development | Code-first (imperative) | Designer-first (declarative) |
Connectivity | About a dozen built-in binding types, write code for custom bindings | Large collection of connectors, Enterprise Integration Pack for B2B scenarios, build custom connectors |
Actions | Each activity is an Azure function; write code for activity functions | Large collection of ready-made actions |
Monitoring | Azure Application Insights | Azure portal, Azure Monitor Logs, Microsoft Defender for Cloud |
Management | REST API, Visual Studio | Azure portal, REST API, PowerShell, Visual Studio |
Execution context | Can run locally or in the cloud | Runs in Azure, locally, or on premises. For more information, see What is Azure Logic Apps. |
Compare Functions and WebJobs
Like Azure Functions, Azure App Service WebJobs with the WebJobs SDK is a code-first integration service that is designed for developers. Both are built on Azure App Service and support features such as source control integration, authentication, and monitoring with Application Insights integration.
WebJobs and the WebJobs SDK
You can use the WebJobs feature of App Service to run a script or code in the context of an App Service web app. The WebJobs SDK is a framework designed for WebJobs that simplifies the code you write to respond to events in Azure services. For example, you might respond to the creation of an image blob in Azure Storage by creating a thumbnail image. The WebJobs SDK runs as a .NET console application, which you can deploy to a WebJob.
WebJobs and the WebJobs SDK work best together, but you can use WebJobs without the WebJobs SDK and vice versa. A WebJob can run any program or script that runs in the App Service sandbox. A WebJobs SDK console application can run anywhere console applications run, such as on-premises servers.
Comparison table
Azure Functions is built on the WebJobs SDK, so it shares many of the same event triggers and connections to other Azure services. Here are some factors to consider when you're choosing between Azure Functions and WebJobs with the WebJobs SDK:
Functions | WebJobs with WebJobs SDK | |
---|---|---|
Serverless app model with automatic scaling | ✔ | |
Develop and test in browser | ✔ | |
Pay-per-use pricing | ✔ | |
Integration with Logic Apps | ✔ | |
Trigger events | Timer Azure Storage queues and blobs Azure Service Bus queues and topics Azure Cosmos DB Azure Event Hubs HTTP/WebHook (GitHub, Slack) Azure Event Grid |
Timer Azure Storage queues and blobs Azure Service Bus queues and topics Azure Cosmos DB Azure Event Hubs File system |
Supported languages | C# F# JavaScript Java Python PowerShell |
C#1 |
Package managers | npm and NuGet | NuGet2 |
1 WebJobs (without the WebJobs SDK) supports languages such as C#, Java, JavaScript, Bash, .cmd, .bat, PowerShell, PHP, TypeScript, Python, and more. A WebJob can run any program or script that can run in the App Service sandbox.
2 WebJobs (without the WebJobs SDK) supports npm and NuGet.
Summary
Azure Functions offers more developer productivity than Azure App Service WebJobs does. It also offers more options for programming languages, development environments, Azure service integration, and pricing. For most scenarios, it's the best choice.
Here are two scenarios for which WebJobs may be the best choice:
- You need more control over the code that listens for events, the
JobHost
object. Functions offers a limited number of ways to customizeJobHost
behavior in the host.json file. Sometimes you need to do things that can't be specified by a string in a JSON file. For example, only the WebJobs SDK lets you configure a custom retry policy for Azure Storage. - 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.
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, and WebJobs together
You don't have to choose just one of these services. They integrate with each other and with external services.
A Power Automate flow can call an Azure Logic Apps workflow. An Azure Logic Apps workflow can call a function in Azure Functions, and vice versa. For example, see Create a function that integrates with Azure Logic Apps.
Between Power Automate, Logic Apps, and Functions, the integration experience between these services continues to improve over time. You can build a component in one service and use that component in the other services.
You can get more information on integration services by using the following links:
- Leveraging Azure Functions & Azure App Service for integration scenarios by Christopher Anderson
- Integrations Made Simple by Charles Lamanna
- Logic Apps Live webcast
- Power Automate frequently asked questions
Next steps
Get started by creating your first flow, logic app workflow, or function app. Select any of the following links:
Feedback
https://aka.ms/ContentUserFeedback.
Coming soon: Throughout 2024 we will be phasing out GitHub Issues as the feedback mechanism for content and replacing it with a new feedback system. For more information see:Submit and view feedback for