Identificar as opções de tecnologia

Concluído

Você não tem muito tempo para integrar os processos de negócios de forma adequada entre seu sistema existente de aluguel de bicicletas e o sistema em uso no segundo campus. Você gostaria de aproveitar ao máximo sua experiência atual no Azure e leu que o Azure inclui diversas tecnologias diferentes que você pode usar para resolver problemas como esse.

Nesta unidade, exploraremos as opções de tecnologia do Azure disponíveis para automatizar e integrar seus processos de negócios.

Problemas empresariais comuns

Nos negócios, uma forma de garantir produtos e serviços de alta qualidade aos usuários é projetar e implementar processos empresariais estritos. Esses processos podem envolver várias etapas, pessoas e pacotes de software. Cada processo pode ser executado em uma linha simples de atividades que os trabalhadores executam uma após a outra ou podem ramificar ou fazer loop. Cada processo pode ser executado rapidamente ou levar dias ou semanas para ser concluído.

Uma empresa frequentemente executa problemas quando se mescla com uma segunda empresa ou se integra a uma organização parceira. Como os administradores podem integrar os processos separados usados nas duas organizações, que podem ter sido implementados usando programas de software diferente?

Os processos empresariais modelados em software geralmente são chamados fluxos de trabalho. O Azure inclui quatro tecnologias diferentes que podem ser usadas para criar e implementar fluxos de trabalho que se integram a vários sistemas:

  • Aplicativos Lógicos do Azure
  • Microsoft Power Automate
  • WebJobs
  • Azure Functions

Essas quatro tecnologias têm algumas semelhanças. Por exemplo:

  • Elas podem aceitar entradas. Uma entrada é um dado ou um arquivo que é fornecido para o fluxo de trabalho.
  • Elas podem executar ações. Uma ação é uma operação simples que o fluxo de trabalho executa e geralmente pode modificar dados ou fazer com que outra ação seja executada.
  • Elas podem incluir condições. Uma condição é um teste, geralmente executado em uma entrada, que pode decidir qual ação será executada em seguida.
  • Elas podem produzir saídas. Uma saída é um dado ou um arquivo que é criado pelo fluxo de trabalho.

Além disso, os fluxos de trabalho criados com essas tecnologias podem ser iniciados com base em um agendamento ou acionados por algum evento externo.

Tecnologias que têm o design como prioridade

Quando analistas de negócios discutem e planejam um processo de negócios, eles podem desenhar um fluxograma no papel. Com os Aplicativos Lógicos do Azure e o Microsoft Power Automate, você pode adotar uma abordagem semelhante para criar um fluxo de trabalho. Ambos incluem interfaces de usuário em que é possível desenhar o fluxo de trabalho. Chamamos isso de uma abordagem que tem o design como prioridade.

Aplicativos Lógicos do Azure

Os Aplicativos Lógicos do Azure são um serviço no Azure para automatizar, orquestrar e integrar componentes diferentes de um aplicativo distribuído. Usando a abordagem design-first nos Aplicativos Lógicos do Azure, você pode desenhar fluxos de trabalho complexos que modelam processos de negócios complexos. A captura de tela a seguir mostra o designer de fluxo de trabalho e a tela de design que você usa para definir o seu fluxo de trabalho.

Captura de tela do designer de fluxo de trabalho dos Aplicativos Lógicos do Azure no portal do Azure.

Como alternativa, caso prefira trabalhar no código, é possível criar ou editar um fluxo de trabalho na notação JSON usando a exibição de código, conforme ilustrado na captura de tela a seguir.

Captura de tela do editor de código dos Aplicativos Lógicos do Azure no portal do Azure.

Um dos motivos pelos quais os Aplicativos Lógicos do Azure são tão bons na integração é que mais de 1.000 conectores estão incluídos. Um conector é um componente de aplicativo lógico que fornece uma interface para um serviço externo. Por exemplo, o conector X permite enviar e recuperar postagens curtas, enquanto o conector do Outlook do Office 365 permite gerenciar seu email, calendário e contatos. Os Aplicativos Lógicos do Azure fornecem centenas de conectores predefinidos que podem ser usados para criar aplicativos. Se você tiver um sistema incomum ou exclusivo que deseja chamar com os Aplicativos Lógicos do Azure, é possível criar o seu próprio conector se o sistema expuser uma API REST.

Microsoft Power Automate

O Microsoft Power Automate é um serviço para criar fluxos de trabalho mesmo quando você não tem experiência em desenvolvimento ou como profissional de TI. Você pode criar fluxos de trabalho que integram e orquestram componentes diferentes usando o site ou o aplicativo móvel do Power Automate.

Há quatro tipos diferentes de fluxos que você pode criar:

  • Automatizado: inicia por um gatilho de algum evento. Por exemplo, o evento pode ser a chegada de uma nova postagem curta ou o upload de um novo arquivo.
  • Botão: Executa uma tarefa repetitiva com um único toque em seu dispositivo móvel.
  • Agendado: é executado regularmente. Por exemplo, uma vez por semana, em uma data específica ou após 10 horas.
  • Processo empresarial: Modela um processo de negócios, como o processo de ordenação de ações ou o procedimento de reclamações. O processo de fluxo pode ter: notificações para as pessoas necessárias; com a aprovação delas registrada; datas do calendário para etapas; e as etapas de tempo de fluxo registradas.

O Microsoft Power Automate oferece uma superfície de design fácil de usar para criar esses tipos de fluxos. Como ilustrado na captura de tela a seguir, o designer de fluxo facilita o projeto e a disposição do seu processo.

Captura de tela do designer do Microsoft Power Automate mostrando um fluxo de trabalho com um gatilho de arquivo, uma ação do Office para obter o perfil de um usuário e uma ação do Outlook para enviar um email.

Em sua estrutura, o Microsoft Power Automate é criado com base nos Aplicativos Lógicos do Azure. Este fato significa que o Power Automate dá suporte ao mesmo intervalo de conectores e ações que os Aplicativos Lógicos do Azure. Você também pode usar conectores personalizados no Microsoft Power Automate.

Comparação de tecnologias que têm o design como prioridade

Como você pode ver na tabela a seguir, o Microsoft Power Automate é mais apropriado para uso por equipes não técnicas. Se os designers de fluxo de trabalho forem profissionais de TI, desenvolvedores ou profissionais do DevOps, os Aplicativos Lógicos do Azure geralmente serão mais adequados.

Microsoft Power Automate Aplicativos Lógicos do Azure
Usuários pretendidos Funcionários administrativos e analistas de negócios Desenvolvedores e profissionais de TI
Cenários pretendidos Criação de fluxo de trabalho de autoatendimento Projetos de integração avançada
Ferramentas de design Somente GUI. Navegador e aplicativo móvel Designer de fluxo de trabalho no navegador, Visual Studio Code e Visual Studio. A edição de código é possível.
Gerenciamento do Ciclo de Vida do Aplicativo O Power Automate inclui ambientes de teste e produção. O código-fonte dos Aplicativos Lógicos do Azure pode ser incluído nos repositórios do Azure DevOps ou em outros sistemas de gerenciamento de código-fonte, como o GitHub.

Tecnologias que têm o código como prioridade

Os desenvolvedores de sua equipe provavelmente vão preferir escrever o código quando desejarem orquestrar diferentes aplicativos de negócios e integrá-los a um único fluxo de trabalho. Esse é o caso quando você precisa ter mais controle sobre o desempenho de seu fluxo de trabalho ou precisa escrever um código personalizado como parte do processo empresarial. Para essas pessoas, o Azure inclui o WebJobs e o Functions.

WebJobs e o SDK do WebJobs

O Serviço de Aplicativo do Azure é um serviço de hospedagem baseado em nuvem para aplicativos Web, back-ends móveis e APIs RESTful. Esses aplicativos geralmente precisam executar algum tipo de tarefa em segundo plano. Por exemplo, no sistema de aluguel de bicicletas, quando um usuário carrega uma foto de uma bicicleta, talvez seja necessário gerar uma fotografia em miniatura menor.

O WebJobs é uma parte do Serviço de Aplicativo do Azure que pode ser usada para executar um programa ou um script automaticamente. Há dois tipos de WebJobs:

  • Contínuo: Começa imediatamente quando o WebJob é criado e executa em um loop contínuo. Por exemplo, você pode usar um WebJobs contínuo para verificar se há uma nova foto em uma pasta compartilhada.
  • Disparado: Começa com base em um evento de associação de acordo com um agendamento ou quando você o dispara manualmente (sob demanda).

Para determinar quais ações o WebJob realiza, você pode escrever o código em várias linguagens diferentes. Por exemplo, você pode gerar o script do WebJobs escrevendo o código em um Script de Shell (Windows, PowerShell, Bash). Como alternativa, você pode escrever um programa em PHP, Python, Node.js ou JavaScript.

Você também pode programar um WebJob usando .NET e uma linguagem .NET, como C# ou VB.NET. Nesse caso, você também pode usar o SDK do WebJobs para facilitar a tarefa. O SDK inclui uma variedade de classes, como JobHostConfiguration e HostBuilder, que reduzem a quantidade de código necessária para interagir com o Serviço de Aplicativo do Azure.

O SDK do WebJobs só dá suporte ao C# e ao gerenciador de pacotes NuGet.

Azure Functions

Um Azure Function é um modo simples de executar pequenos trechos de código na nuvem, sem precisar se preocupar com a infraestrutura necessária para hospedar esse código. Você pode escrever a função em C#, Java, JavaScript, PowerShell, Python ou em uma das linguagens listadas no artigo Linguagens compatíveis com o Azure Functions. Além disso, com a opção de plano de consumo, você só paga pelo tempo em que o código é executado. O Azure dimensiona automaticamente a função em resposta à demanda dos usuários.

Ao criar uma Função do Azure, você pode começar escrevendo o código para ela no portal. Como alternativa, se você precisar de gerenciamento de código-fonte, poderá usar repositórios do GitHub ou do Azure DevOps.

Para criar uma Função do Azure, escolha um entre vários modelos. A seguinte lista é um exemplo de alguns dos modelos disponíveis para você:

  • Gatilho HTTP: Quando desejar que o código seja executado em resposta a uma solicitação enviada por meio do protocolo HTTP.
  • Gatilho de temporizador: Quando desejar que o código seja executado de acordo com uma agenda.
  • Gatilho de armazenamento de blobs: Quando desejar que o código seja executado quando um novo blob for adicionado a uma conta do Armazenamento do Azure.
  • Gatilho do Cosmos DB: Quando desejar que o código seja executado em resposta a documentos novos ou atualizados em um banco de dados NoSQL.

O Azure Functions pode ser integrado a muitos serviços diferentes, tanto dentro do Azure quanto de terceiros. Esses serviços podem disparar sua função, enviar entrada de dados para sua função ou receber saída de dados de sua função.

Comparação de tecnologias que têm o código como prioridade

Na maioria dos casos, a administração simples e o modelo de codificação mais flexível que o Azure Functions fornece podem levar você a escolhê-los em detrimento do WebJobs. Entretanto, você pode escolher WebJobs pelos seguintes motivos:

  • Você quer que o código faça parte de um aplicativo existente do Serviço de Aplicativo e seja gerenciado como parte desse aplicativo, por exemplo, no mesmo ambiente do Azure DevOps.
  • Você precisa ter um controle maior do objeto que escuta eventos que disparam o código. Esse objeto em questão é a classe JobHost, e você tem mais flexibilidade para modificar seu comportamento no WebJobs.
Azure WebJobs Azure Functions
Idiomas com suporte C#, caso você esteja usando o SDK do WebJobs C#, Java, JavaScript, PowerShell e muito mais
Dimensionamento automático Não Sim
Desenvolvimento e teste em um navegador Não Sim
Preço de pagamento por uso Não Sim
Integração com os Aplicativos Lógicos do Azure Não Sim
Gerenciadores de pacotes NuGet caso você esteja usando o SDK do WebJobs NuGet e npm
Pode fazer parte de um aplicativo do Serviço de Aplicativo Sim Sim (hospedado no Plano do Serviço de Aplicativo)
Fornece maior controle de JobHost Sim Não

Agora que você sabe quais tecnologias têm o design e o código como prioridade disponíveis, como restringir suas escolhas? Analisaremos essa questão na próxima unidade.