Identificar as opções de tecnologia

Concluído

Não tem muito tempo para integrar devidamente processos de negócio entre o seu sistema de aluguer de bicicletas existente e o sistema em utilização no segundo campus. Gostaria de aproveitar ao máximo os seus conhecimentos do Azure e já leu que o Azure inclui várias tecnologias que pode utilizar para resolver problemas como este.

Nesta unidade, vamos explorar as opções de tecnologia do Azure que estão disponíveis para automatizar e integrar os seus processos empresariais.

Problemas comerciais comuns

Nos negócios, uma maneira de garantir produtos e serviços de alta qualidade aos clientes é projetar e implementar processos de negócios rigorosos. Esses processos podem envolver várias etapas, pessoas e pacotes de software. Cada processo pode ser executado numa linha simples de atividades que os trabalhadores executam uma após a outra ou podem ser ramificadas ou executadas em ciclo. Cada processo também pode ser executado rapidamente ou demorar dias ou semanas a ser concluído.

Uma empresa frequentemente enfrenta problemas quando se funde com uma segunda empresa ou se integra a uma organização parceira. Como podem os administradores integrar os processos separados utilizados em ambas as organizações, que podem ter sido implementados com software diferente?

Os processos de negócio modelados em software são muitas vezes denominados fluxos de trabalho. O Azure inclui quatro tecnologias diferentes que pode utilizar para criar e implementar fluxos de trabalho que integram múltiplos sistemas:

  • Logic Apps
  • Microsoft Power Automate
  • WebJobs
  • Funções do Azure

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

  • Todas aceitam entradas. Uma entrada é uma parte dos dados ou um ficheiro fornecido para o fluxo de trabalho.
  • Todas executam ações. Uma ação é uma operação simples que o fluxo de trabalho executa e muitas vezes pode modificar dados ou fazer com que outra ação seja executada.
  • Todas incluem condições. Uma condição é um teste, geralmente executado contra uma entrada, que pode decidir qual ação executar em seguida.
  • Todas produzem saídas. Uma saída é uma parte dos dados ou um ficheiro criado pelo fluxo de trabalho.

Além disso, os fluxos de trabalho criados com estas tecnologias podem ser iniciados com base numa agenda ou acionados por um evento externo.

Tecnologias baseadas em design

Quando os analistas empresariais debatem e planeiam um processo empresarial, podem criar um diagrama de fluxos em papel. Com o Logic Apps e o Microsoft Power Automate, pode adotar uma abordagem semelhante à criação de um fluxo de trabalho. Ambos incluem interfaces de usuário onde você pode desenhar o fluxo de trabalho. Esta abordagem é denominada baseada em design.

Logic Apps

Os Aplicativos Lógicos são um serviço dentro do Azure para automatizar, orquestrar e integrar componentes diferentes de um aplicativo distribuído. Ao utilizar a abordagem baseada em design no Logic Apps, pode desenhar fluxos de trabalho complexos que modelam processos de negócio complexos. A captura de ecrã seguinte mostra o estruturador e a tela de design do Logic Apps que utiliza para definir o seu fluxo de trabalho.

Screenshot of the Logic Apps workflow designer in the Azure portal.

Em alternativa, se preferir trabalhar em código, pode criar ou editar um fluxo de trabalho na notação em JSON com a vista de código, conforme ilustrado na captura de ecrã seguinte.

Screenshot of the Logic Apps code editor in the Azure portal.

Um motivo pelo qual o Logic Apps é tão bom em integração é estarem incluídos mais de 200 conectores. Um conector é um componente do Logic Apps que fornece uma interface para um serviço externo. Por exemplo, o conector X permite-lhe enviar e recuperar mensagens curtas, enquanto o conector do Office 365 Outlook permite-lhe gerir o seu e-mail, calendário e contactos. O Logic Apps fornece centenas de conectores pré-criados que pode utilizar para criar as suas aplicações. Se você tiver um sistema incomum ou exclusivo que deseja chamar de Aplicativos Lógicos, poderá criar seu próprio conector se o sistema expor 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 profissional de TI. Pode criar fluxos de trabalho que integram e orquestram vários componentes diferentes através do site ou da aplicação móvel Microsoft Power Automate.

Existem quatro tipos diferentes de fluxo que pode criar:

  • Automatizado: Começa por um gatilho de algum evento. Por exemplo, o evento pode ser a chegada de um novo post curto ou um novo arquivo sendo carregado.
  • Botão: Executa uma tarefa repetitiva com um único clique a partir do seu dispositivo móvel.
  • Programado: Funciona regularmente. Por exemplo, uma vez por semana, em uma data específica ou após 10 horas.
  • Processo comercial: modela um processo comercial, como o processo de pedido de estoque ou o procedimento de reclamações. O processo de fluxo pode ter: notificações às pessoas necessárias; com a sua aprovação registada; datas do calendário para as etapas; e registrou o tempo das etapas de fluxo.

O Microsoft Power Automate fornece uma superfície de projeto fácil de usar para criar esses tipos de fluxos. Como ilustra a captura de tela a seguir, o designer de fluxo facilita o design e o layout do seu processo.

Screenshot of the Microsoft Power Automate designer showing a workflow with a file trigger, an Office action to get a user's profile and an Outlook action to send an email.

O Microsoft Power Automate é baseado no Logic Apps. Este facto significa que o Power Automate suporta a mesma gama de conectores e ações que as Aplicações Lógicas. Também pode utilizar conectores personalizados no Microsoft Power Automate.

Comparação de tecnologias baseadas em design

Como pode ver na tabela seguinte, o Microsoft Power Automate é mais adequado para utilização por parte de uma equipa não técnica. Se seus designers de fluxo de trabalho são profissionais de TI, desenvolvedores ou profissionais de DevOps, os Aplicativos Lógicos geralmente são mais adequados:

Microsoft Power Automate Logic Apps
Utilizadores a que se destina Trabalhadores de escritório e analistas de negócio Programadores e profissionais de TI
Cenários a que se destina Criação de fluxos de trabalho self-service Projetos de integração avançada
Ferramentas de design Apenas GUI. Browser e aplicação móvel Designer de browser e do Visual Studio. Edição de código possível
Gestão do Ciclo de Vida das Aplicações O Power Automate inclui ambientes de teste e produção O código fonte do Logic Apps pode ser incluído no Azure DevOps e em sistemas de gestão de código fonte

Tecnologias baseadas em código

Os programadores na sua equipa provavelmente irão preferir escrever código quando quiserem orquestrar e integrar diferentes aplicações empresariais num único fluxo de trabalho. É o caso quando precisa de mais controlo sobre o desempenho do fluxo de trabalho ou tem de escrever código personalizado como parte do processo de negócio. Para essas pessoas, o Azure inclui WebJobs e Funções.

WebJobs e o SDK de WebJobs

O Serviço de Aplicações do Azure é um serviço de alojamento com base na cloud para aplicações Web, back-ends móveis e APIs RESTful. Muitas vezes, estas aplicações precisam de realizar algum tipo de tarefa em segundo plano. Por exemplo, no seu sistema de aluguer de bicicletas, quando um utilizador carrega uma fotografia de uma bicicleta, poderá ter de gerar uma fotografia em miniatura.

Os WebJobs fazem parte do Serviço de Aplicações do Azure que pode utilizar para executar automaticamente um programa ou script. Existem dois tipos de WebJob:

  • Contínuo. Inicia imediatamente quando o WebJob é criado e executado em um loop contínuo. Por exemplo, pode utilizar um WebJob contínuo para verificar uma pasta partilhada para uma nova fotografia.
  • Acionado. Inicia com base em um evento de vinculação, em uma agenda ou quando você o aciona manualmente (sob demanda).

Para determinar quais ações seu WebJob realiza, você pode escrever código em vários idiomas diferentes. Por exemplo, pode criar um script para o WebJob ao escrever código num Script de Shell (Windows, PowerShell, Bash). Como alternativa, você pode escrever um programa em PHP, Python, Java ou JavaScript.

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

O SDK de WebJobs suporta apenas C# e o gestor de pacotes NuGet.

Funções do Azure

Uma Função do Azure é uma forma simples de executar pequenas partes de código na cloud sem ter de se preocupar com a infraestrutura necessária para alojar esse código. Pode escrever a Função em C#, Java, JavaScript, PowerShell, Python ou qualquer uma das linguagens indicadas no artigo Linguagens suportadas nas Funções do Azure. Além disso, com a opção de plano de consumo, só paga pelo tempo de execução do código. O Azure dimensiona automaticamente a sua função em resposta à procura dos utilizadores.

Quando cria uma Função do Azure, pode começar por escrever o código no portal. Em alternativa, se precisar de gestão de código fonte, pode utilizar o GitHub ou o Azure DevOps Services.

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

  • Gatilho HTTP. Quando você deseja que o código seja executado em resposta a uma solicitação enviada através do protocolo HTTP.
  • Acionador de temporizador. Quando você deseja que o código seja executado de acordo com uma programação.
  • Gatilho de armazenamento de Blob. Quando você deseja que o código seja executado quando um novo blob é adicionado a uma conta de Armazenamento do Azure.
  • Gatilho do Cosmos DB. Quando você deseja que o código seja executado em resposta a documentos novos ou atualizados em um banco de dados NoSQL.

As Funções do Azure podem ser integradas em vários serviços diferentes no Azure e a partir de terceiros. Estes serviços podem acionar a função, enviar uma entrada de dados para a função ou receber uma saída de dados da função.

Comparação de tecnologias baseadas em código

Na maioria dos casos, a administração simples e um modelo de codificação mais flexível fornecidos pelas Funções do Azure podem levá-lo a escolher esta solução em vez do WebJobs. No entanto, você pode escolher WebJobs pelos seguintes motivos:

  • Quer que o código faça parte de uma aplicação do Serviço de Aplicações existente e seja gerido como parte dessa aplicação, por exemplo, no mesmo ambiente do Azure DevOps.
  • Precisa de ter mais controlo sobre o objeto que escuta eventos que acionam o código. Este objeto em questão é a classe JobHost e terá mais flexibilidade para modificar o respetivo comportamento no WebJobs.
WebJobs do Azure Funções do Azure
Idiomas suportados C# se você estiver usando o SDK WebJobs C#, Java, JavaScript, PowerShell e muito mais
Dimensionamento automático Não Sim
Desenvolvimento e teste em navegador Não Sim
Preços com pagamento por utilização Não Sim
Integração com Logic Apps Não Sim
Gerenciadores de pacotes NuGet se você estiver usando o SDK 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)
Proporciona um controlo apertado de JobHost Sim No

Agora que sabe que as tecnologias baseadas em design e código estão disponíveis para si, como pode limitar as opções? Vamos analisar esta questão na unidade seguinte.