Quando escolher o Azure Functions para executar sua lógica de negócios

Concluído

Agora, analisaremos outro processo de uma empresa de aluguel de bicicletas e decidiremos qual tecnologia melhor atende às nossas necessidades. Consideraremos os aspectos técnicos do processo, o público-alvo e a maneira como o processo precisa evoluir.

Cenário

Atualmente, os mecânicos de bicicleta usam uma planilha para registrar as ações executadas no reparo e na manutenção de cada bicicleta. Há dificuldades quando é necessário o uso de peças de reposição, pois a equipe não tem meios de saber quando uma bicicleta está aguardando reparos ou peças. Esse problema fez com que fossem alugadas aos clientes bicicletas com freio desgastados, pneus furados e com outros defeitos que poderiam prejudicar a reputação da marca da empresa de aluguel de bicicletas de alta qualidade.

Você deseja criar um sistema que controle o processo de manutenção e reparo e permita que todos encontrem respostas para as perguntas a seguir:

  • Quais trabalhos foram realizados em uma bicicleta?
  • Quais trabalhos ainda precisam ser concluídos antes que a bicicleta possa ser alugada novamente?
  • Quais bicicletas estão disponíveis para aluguel no momento?
  • Quais bicicletas não estão disponíveis para aluguel no momento?
  • Para cada bicicleta que não está disponível:
    • Por que não podemos alugá-la?
    • Estamos aguardando o recebimento de peças. Quais são essas peças?
    • Quando a bicicleta provavelmente estará disponível para aluguel novamente?

Você gostaria de integrar esse sistema com o processo de reserva e aluguel de bicicletas da última unidade. Ao fazer isso, quando a equipe da loja procurar pelas bicicletas disponíveis, encontrará apenas as bicicletas que estão disponíveis para aluguel. Seu gerente solicitou que você fosse o desenvolvedor desse projeto.

Processo empresarial

Você quer garantir que os mecânicos de bicicleta nos dois campi sigam o seguinte fluxo de trabalho quando fizerem a manutenção de uma bicicleta após um aluguel:

Diagrama de fluxo de decisão detalhando a lógica do fluxo de trabalho de manutenção de bicicletas.

Os detalhes são os seguintes:

  1. Um cliente devolve uma bicicleta em qualquer localização. O processo de manutenção de bicicletas é iniciado.
  2. Um mecânico marca a bicicleta como não disponível.
  3. Um mecânico preenche uma lista completa de verificações, incluindo os pneus, os freios, a transmissão de correntes e os faróis.
  4. Alguma peça nova é necessária?
    1. Peças novas são necessárias, mas não temos as peças em estoque.
      1. O mecânico faz o pedido de peças novas.
      2. As peças são recebidas.
    2. O mecânico encaixa a novas peças.
  5. Um mecânico conclui as alterações finais.
  6. Um mecânico marca a bicicleta como disponível para aluguel.

Escolher uma tecnologia

Para implementar o processo empresarial e integrá-lo ao banco de dados de localizações de bicicletas, vamos considerar o conjunto de tecnologias a seguir.

  • Microsoft Power Automate
  • Aplicativos Lógicos do Azure
  • Azure Functions
  • WebJobs dos Aplicativos de Serviço do Azure

Como vimos no cenário anterior, qualquer uma dessas tecnologias pode ser usada para criar o fluxo de trabalho. No entanto, há dois problemas que determinam a escolha ideal.

Design ou código como prioridade?

Seria difícil implementar esse fluxo de trabalho usando apenas os Aplicativos Lógicos ou o Power Automate. Embora não tenhamos ouvido muitos detalhes mais minuciosos, fica claro que esse processo precisa acessar um sistema de estoque e fazer pedidos para uma empresa de peças de terceiros. Essa é a nova lógica de negócios e não há nenhum requisito de que devemos considerar uma abordagem design-first. Podemos encapsular a solução em um conector personalizado para integrá-la a outros fluxos de trabalho criados com os Aplicativos Lógicos ou o Power Automate. Como desenvolvedor, você tem mais flexibilidade tratando esse cenário com uma abordagem que tem o código como prioridade, portanto, vamos fazer isso.

Azure Functions ou WebJobs do Serviço de Aplicativos do Azure?

Precisamos tomar uma decisão entre as duas tecnologias a seguir.

  • Azure Functions
  • WebJobs do Serviço de Aplicativo do Azure

Os seguintes fatores influenciarão sua escolha:

  • Custo: Com o WebJobs, você paga pela VM inteira ou o Plano do Serviço de Aplicativo que hospeda o trabalho. O Azure Functions pode ser executado de acordo com um plano de consumo, portanto, você paga apenas quando a função é executada. Como esse processo só é iniciado quando uma bicicleta é devolvida, podemos economizar dinheiro escolhendo o Azure Functions.
  • Integrações: Você deve integrar o fluxo de trabalho de manutenção ao aplicativo lógico criado para o processo de reserva e aluguel de bicicletas na unidade anterior. Embora seja possível chamar um WebJob por meio de um Aplicativo Lógico, a integração entre os Aplicativos Lógicos e o Functions é mais próxima. Por exemplo, você pode controlar com mais facilidade a chamada a uma função no designer visual de Aplicativos Lógicos.

Por esses motivos, escolheremos o Azure Functions para gerenciar o processo empresarial de manutenção de bicicletas.