O que são o Microsoft Flow, os Aplicativos Lógicos, o Functions e o WebJobs?What are Microsoft Flow, Logic Apps, Functions, and WebJobs?

Este artigo compara os seguintes serviços em nuvem da Microsoft:This article compares the following Microsoft cloud services:

Todos esses serviços podem resolver problemas de integração e automatizar processos empresariais.All of these services can solve integration problems and automate business processes. Todos eles definem entrada e saída, condições e ações.They can all define input, actions, conditions, and output. Você pode executar cada um em um cronograma ou gatilho.You can run each of them on a schedule or trigger. Cada serviço traz vantagens exclusivas e este artigo explica as diferenças.Each service has unique advantages, and this article explains the differences.

Comparar o Microsoft Flow e os Aplicativos Lógicos do AzureCompare Microsoft Flow and Azure Logic Apps

O Microsoft Flow e os Aplicativos Lógicos são serviços de integração centrados no designer que podem criar fluxos de trabalho.Microsoft Flow and Logic Apps are both designer-first integration services that can create workflows. Ambos os serviços se integram a vários aplicativos SaaS e empresariais.Both services integrate with various SaaS and enterprise applications.

O Microsoft Flow se baseia nos Aplicativos Lógicos.Microsoft Flow is built on top of Logic Apps. Eles compartilham o mesmo designer de fluxo de trabalho e os mesmos conectores.They share the same workflow designer and the same connectors.

O Microsoft Flow capacita qualquer trabalhador a realizar integrações simples (por exemplo, um processo de aprovação em uma biblioteca de documentos do SharePoint) sem passar pelos desenvolvedores nem pelo departamento de TI.Microsoft Flow empowers any office worker to perform simple integrations (for example, an approval process on a SharePoint Document Library) without going through developers or IT. Os Aplicativos Lógicos também podem permitir integrações avançadas (por exemplo, processos B2B), em que o Azure DevOps de nível empresarial e práticas de segurança são necessárias.Logic Apps can also enable advanced integrations (for example, B2B processes) where enterprise-level Azure DevOps and security practices are required. É comum que um fluxo de trabalho de negócios aumente de complexidade ao longo do tempo.It's typical for a business workflow to grow in complexity over time. Da mesma forma, você pode começar com um fluxo e, em seguida, convertê-lo em um aplicativo lógico, conforme necessário.Accordingly, you can start with a flow at first, and then convert it to a logic app as needed.

A seguinte tabela ajuda você a determinar a melhor opção para uma integração específica, o Microsoft Flow ou os Aplicativos Lógicos:The following table helps you determine whether Microsoft Flow or Logic Apps is best for a particular integration:

Microsoft FlowMicrosoft Flow Aplicativos LógicosLogic Apps
UsuáriosUsers Funcionários do escritório, usuários de negócios, administradores do SharePointOffice workers, business users, SharePoint administrators Integradores profissionais e desenvolvedores, profissionais de TIPro integrators and developers, IT pros
CenáriosScenarios AutoatendimentoSelf-service Integrações avançadasAdvanced integrations
Ferramenta de designDesign tool Aplicativo do navegador e móvel, somente interface do usuárioIn-browser and mobile app, UI only No navegador e no Visual Studio, Exibição de código disponívelIn-browser and Visual Studio, Code view available
ALM (Gerenciamento do Ciclo de Vida do Aplicativo)Application lifecycle management (ALM) Design e teste em ambientes de não produção; promoção para produção quando prontoDesign and test in non-production environments, promote to production when ready Azure DevOps: controle do código-fonte, teste, suporte, automação e capacidade de gerenciamento no Azure Resource ManagerAzure DevOps: source control, testing, support, automation, and manageability in Azure Resource Manager
Experiência de adminAdmin experience Gerenciar ambientes do Microsoft Flow e políticas DLP (prevenção contra perda de dados), acompanhamento do licenciamento: Centro de Administração do Microsoft FlowManage Microsoft Flow environments and data loss prevention (DLP) policies, track licensing: Microsoft Flow Admin Center Gerenciar grupos de recursos, conexões, gerenciamento de acesso e log: Portal do AzureManage resource groups, connections, access management, and logging: Azure portal
SegurançaSecurity Logs de auditoria de Segurança e Conformidade do Office 365, DLP e criptografia em repouso para dados confidenciaisOffice 365 Security and Compliance audit logs, DLP, encryption at rest for sensitive data Garantia de segurança do Azure: Segurança do Azure, Central de Segurança do Azure e logs de auditoriaSecurity assurance of Azure: Azure security, Azure Security Center, audit logs

Comparar o Azure Functions e os Aplicativos Lógicos do AzureCompare Azure Functions and Azure Logic Apps

O Functions e os Aplicativos Lógicos são os serviços do Azure que permitem as cargas de trabalho sem servidor.Functions and Logic Apps are Azure services that enable serverless workloads. O Azure Functions é um serviço de computação sem servidor, enquanto os Aplicativos Lógicos do Azure fornecem fluxos de trabalho sem servidor.Azure Functions is a serverless compute service, whereas Azure Logic Apps provides serverless workflows. Ambos podem criar orquestrações complexas.Both can create complex orchestrations. Uma orquestração é uma coleção de funções ou etapas, chamadas ações nos Aplicativos Lógicos, que são executadas para realizar uma tarefa complexa.An orchestration is a collection of functions or steps, called actions in Logic Apps, that are executed to accomplish a complex task. Por exemplo, para processar um lote de pedidos, você pode executar várias instâncias de uma função em paralelo, aguardar a conclusão de todas as instâncias e, em seguida, executar uma função que calcula um resultado na agregação.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.

Para o Azure Functions, você desenvolve orquestrações escrevendo o código e usando a extensão Durable Functions.For Azure Functions, you develop orchestrations by writing code and using the Durable Functions extension. Para os Aplicativos Lógicos, você pode criar orquestrações usando uma GUI ou editando arquivos de configuração.For Logic Apps, you create orchestrations by using a GUI or editing configuration files.

Você pode misturar e fazer a correspondência de serviços quando você compila uma orquestração, chamando funções de aplicativos lógicos e chamando aplicativos lógicos de funções.You can mix and match services when you build an orchestration, calling functions from logic apps and calling logic apps from functions. Escolha como criar cada orquestração com base em recursos dos serviços ou de sua preferência pessoal.Choose how to build each orchestration based on the services' capabilities or your personal preference. A tabela a seguir lista algumas das principais diferenças entre esses serviços:The following table lists some of the key differences between these services:

Funções duráveisDurable Functions Aplicativos LógicosLogic Apps
DesenvolvimentoDevelopment Primeiro o código (obrigatória)Code-first (imperative) Primeiro o designer (declarativa)Designer-first (declarative)
ConectividadeConnectivity Vários tipos de associação integradas, escrever código para associações personalizadasAbout a dozen built-in binding types, write code for custom bindings Grande coleção de conectores, Enterprise Integration Pack para cenários de B2B, criar conectores personalizadosLarge collection of connectors, Enterprise Integration Pack for B2B scenarios, build custom connectors
AçõesActions Cada atividade é uma função do Azure. Escrever código para funções de atividadeEach activity is an Azure function; write code for activity functions Grande coleção de ações predefinidasLarge collection of ready-made actions
MonitoramentoMonitoring Azure Application InsightsAzure Application Insights Portal do Azure, Logs do Azure MonitorAzure portal, Azure Monitor logs
GerenciamentoManagement API REST, Visual StudioREST API, Visual Studio Portal do Azure, API REST, PowerShell, Visual StudioAzure portal, REST API, PowerShell, Visual Studio
Contexto de execuçãoExecution context Pode ser executado localmente ou na nuvemCan run locally or in the cloud É executado somente na nuvemRuns only in the cloud

Comparar Functions e WebJobsCompare Functions and WebJobs

Como no Azure Functions, o WebJobs do Serviço de Aplicativo do Azure com o SDK do WebJobs é um serviço de integração com prioridade de código que foi projetado para desenvolvedores.Like Azure Functions, Azure App Service WebJobs with the WebJobs SDK is a code-first integration service that is designed for developers. Ambos são criados no Serviço de Aplicativo do Azure e dão suporte a recursos como integração de controle de origem, autenticação e monitoramento com integração do 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 e SDK do WebJobsWebJobs and the WebJobs SDK

Use o recurso WebJobs do Serviço de Aplicativo para executar um script ou um código no contexto de um aplicativo Web do Serviço de Aplicativo.You can use the WebJobs feature of App Service to run a script or code in the context of an App Service web app. O SDK do WebJobs é uma estrutura projetada para WebJobs que simplifica o código que você cria para responder a eventos nos serviços do Azure.The WebJobs SDK is a framework designed for WebJobs that simplifies the code you write to respond to events in Azure services. Por exemplo, você pode responder à criação de um blob de imagem no Armazenamento do Azure criando uma imagem em miniatura.For example, you might respond to the creation of an image blob in Azure Storage by creating a thumbnail image. O SDK do WebJobs é executado como um aplicativo de console do .NET, que você pode implantar em um WebJob.The WebJobs SDK runs as a .NET console application, which you can deploy to a WebJob.

O WebJobs e o SDK do WebJobs funcionam melhor em conjunto, mas você pode usar o WebJobs sem o SDK do WebJobs e vice-versa.WebJobs and the WebJobs SDK work best together, but you can use WebJobs without the WebJobs SDK and vice versa. Um WebJob pode executar qualquer programa ou script que possa ser executado na área restrita do Serviço de Aplicativo.A WebJob can run any program or script that runs in the App Service sandbox. Um aplicativo de console do SDK do WebJobs pode ser executado em qualquer lugar que execute aplicativos de console, como servidores locais.A WebJobs SDK console application can run anywhere console applications run, such as on-premises servers.

Tabela de comparaçãoComparison table

O Azure Functions se baseia no SDK do WebJobs e, portanto, compartilha muitos dos mesmos gatilhos de evento e conexões com outros serviços do Azure.Azure Functions is built on the WebJobs SDK, so it shares many of the same event triggers and connections to other Azure services. Estes são alguns fatores a serem considerados quando você escolher entre o Azure Functions e o WebJobs com o SDK do WebJobs:Here are some factors to consider when you're choosing between Azure Functions and WebJobs with the WebJobs SDK:

FunçõesFunctions WebJobs com o SDK do WebJobsWebJobs with WebJobs SDK
Modelo de aplicativo sem servidor com dimensionamento automáticoServerless app model with automatic scaling
Desenvolver e testar no navegadorDevelop and test in browser
Preço de pagamento por usoPay-per-use pricing
Integração com os Aplicativos LógicosIntegration with Logic Apps
Eventos de gatilhoTrigger events TimerTimer
Blobs e filas do Armazenamento do AzureAzure Storage queues and blobs
Filas e tópicos do Barramento de Serviço do AzureAzure Service Bus queues and topics
Azure Cosmos DBAzure Cosmos DB
Hubs de eventos do AzureAzure Event Hubs
HTTP/WebHook (GitHub, Slack)HTTP/WebHook (GitHub, Slack)
Grade de Eventos do AzureAzure Event Grid
TimerTimer
Blobs e filas do Armazenamento do AzureAzure Storage queues and blobs
Filas e tópicos do Barramento de Serviço do AzureAzure Service Bus queues and topics
Azure Cosmos DBAzure Cosmos DB
Hubs de eventos do AzureAzure Event Hubs
Sistema de ArquivosFile system
Idiomas com suporteSupported languages C#C#
F#F#
JavaScriptJavaScript
JavaJava
Python (versão prévia)Python (preview)
C#1C#1
Gerenciador de pacotesPackage managers NPM e NuGetNPM and NuGet NuGet2NuGet2

1 O WebJobs (sem o SDK do WebJobs) é compatível com C#, Java, JavaScript, Bash, .cmd, .bat, PowerShell, PHP, TypeScript, Python, entre outros.1 WebJobs (without the WebJobs SDK) supports C#, Java, JavaScript, Bash, .cmd, .bat, PowerShell, PHP, TypeScript, Python, and more. Essa não é uma lista completa.This is not a comprehensive list. Um WebJob pode executar qualquer programa ou script que possa ser executado na área restrita do Serviço de Aplicativo.A WebJob can run any program or script that can run in the App Service sandbox.

2 O WebJobs (sem o SDK do WebJobs) dá suporte ao NPM e ao NuGet.2 WebJobs (without the WebJobs SDK) supports NPM and NuGet.

ResumoSummary

O Azure Functions oferece mais produtividade para o desenvolvedor do que o WebJobs do Serviço de Aplicativo do Azure.Azure Functions offers more developer productivity than Azure App Service WebJobs does. Também oferece mais opções de linguagens de programação, ambientes de desenvolvimento, integração de serviços do Azure e preços.It also offers more options for programming languages, development environments, Azure service integration, and pricing. Na maioria dos cenários, é a melhor opção.For most scenarios, it's the best choice.

Aqui estão dois cenários para os quais o WebJobs pode ser a melhor opção:Here are two scenarios for which WebJobs may be the best choice:

  • Você precisa de mais controle sobre o código que escuta eventos, o objeto JobHost.You need more control over the code that listens for events, the JobHost object. O Functions oferece um número limitado de maneiras de personalizar o comportamento do JobHost no arquivo host.json.Functions offers a limited number of ways to customize JobHost behavior in the host.json file. Às vezes, você precisa fazer coisas que não podem ser especificadas por uma cadeia de caracteres em um arquivo JSON.Sometimes you need to do things that can't be specified by a string in a JSON file. Por exemplo, somente o SDK do WebJobs permite configurar uma política de repetição personalizada para o Armazenamento do Azure.For example, only the WebJobs SDK lets you configure a custom retry policy for Azure Storage.
  • Você tem um aplicativo do Serviço de Aplicativo para o qual deseja executar snippets de código e deseja gerenciá-los juntos no mesmo ambiente do 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 outros cenários em que você deseja executar snippets de código para integrar o Azure ou serviços de terceiros, escolha o Azure Functions em vez do WebJobs com o SDK do 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.

Microsoft Flow, Aplicativos Lógicos, Functions e WebJobs juntosMicrosoft Flow, Logic Apps, Functions, and WebJobs together

Você não precisa escolher apenas um desses serviços.You don't have to choose just one of these services. Eles se integram entre si e a serviços externos.They integrate with each other as well as they do with external services.

Um fluxo pode chamar um aplicativo lógico.A flow can call a logic app. Um lógica de aplicativo pode chamar uma função e uma função pode chamar um aplicativo lógico.A logic app can call a function, and a function can call a logic app. Consulte, por exemplo, Criar uma função que se integra aos Aplicativos Lógicos do Azure.See, for example, Create a function that integrates with Azure Logic Apps.

A integração entre o Microsoft Flow, os Aplicativos Lógicos e o Functions continua melhorando com o tempo.The integration between Microsoft Flow, Logic Apps, and Functions continues to improve over time. Você pode criar algo em um serviço e usá-lo em outros serviços.You can build something in one service and use it in the other services.

Obtenha mais informações sobre os serviços de integração usando os seguintes links:You can get more information on integration services by using the following links:

Próximas etapasNext steps

Comece criando seu primeiro fluxo, aplicativo lógico ou aplicativo de funções.Get started by creating your first flow, logic app, or function app. Selecione um dos seguintes links:Select any of the following links: