Quando deve escolher as Funções do Azure para executar a sua lógica de negócio

Concluído

Agora, vamos analisar outro processo da nossa empresa de aluguer de bicicletas e decidir que tecnologia satisfaz melhor as nossas necessidades. Vamos considerar os aspetos técnicos do processo, o público e como nosso processo precisa evoluir.

Scenario

Atualmente, os técnicos da sua bicicleta utilizam uma folha de cálculo para registar as ações que tomam para reparar e manter cada bicicleta. Surgiram dificuldades quando são necessárias peças sobresselentes, porque o pessoal não tem forma de saber quando uma bicicleta está à espera de reparações ou peças. Este problema resultou em bicicletas sendo alugadas para clientes com pastilhas de freio desgastadas, pneus furados e outras falhas que podem prejudicar a marca da empresa como uma empresa de aluguel de bicicletas de alta qualidade.

Quer criar um sistema que regule o processo de manutenção e reparação e que permita que todos possam encontrar respostas para as perguntas seguintes.

  • Que tarefas foram concluídas numa bicicleta?
  • Que tarefas permanecem por concluir antes de ser possível alugar novamente a bicicleta?
  • Que bicicletas estão atualmente disponíveis para aluguer?
  • Que bicicletas estão atualmente indisponíveis para aluguer?
  • Para cada bicicleta indisponível:
    • Por que não podemos alugá-lo?
    • Estamos a aguardar a chegada de algumas peças? Que peças são?
    • Qual a previsão para a bicicleta estar novamente disponível para aluguer?

Gostaria de integrar este sistema com o processo de reserva e aluguer de bicicletas da última unidade. Ao fazê-lo, quando o pessoal da loja procura bicicletas disponíveis, este encontra apenas as bicicletas que estão disponíveis para alugar no momento. O gestor pediu-lhe para ser o programador neste projeto.

Processo de negócio

Quer assegurar que os técnicos de bicicletas em ambos os campus adotam o seguinte fluxo de trabalho quando fazem a manutenção de uma bicicleta após um aluguer:

Decision flow diagram detailing the logic for the Bike maintenance workflow.

Os detalhes são os seguintes:

  1. Um cliente devolve uma bicicleta em qualquer localização. Tem início o processo de manutenção da bicicleta.
  2. Um técnico marca a bicicleta como indisponível.
  3. Um técnico conclui uma lista completa de verificações, incluindo pneus, travões, corrente e luzes.
  4. São necessárias peças novas?
    1. São necessárias peças novas, mas não existem em stock.
      1. O técnico encomenda as peças novas.
      2. As peças chegam.
    2. As peças novas são colocadas.
  5. Um técnico conclui as alterações finais.
  6. Um técnico marca a bicicleta como disponível para aluguer.

Escolher uma tecnologia

Para implementar o processo empresarial e integrá-lo na base de dados de localização de bicicletas, vamos considerar o conjunto de tecnologias seguinte.

  • Microsoft Power Automate
  • Azure Logic Apps
  • Funções do Azure
  • WebJobs do Serviço de Aplicações do Azure

Tal como no cenário anterior, pode ser utilizada qualquer uma destas tecnologias para criar o fluxo de trabalho. No entanto, existem dois problemas que determinam a opção ideal.

Baseada em design ou em código?

Seria difícil implementar este fluxo de trabalho apenas com o Logic Apps ou o Power Automate. Embora não tenhamos ouvido muitos detalhes de baixo nível, é claro que esse processo precisa acessar um sistema de estoque e fazer pedidos com uma empresa de peças terceirizada. Esta é uma nova lógica de negócios e não há nenhum requisito de que consideremos uma abordagem de design primeiro. Podemos associar a nossa solução a um conector personalizado para se integrar noutros fluxos de trabalho criados com o Logic Apps ou o Power Automate. Como programador, tem maior flexibilidade com uma abordagem baseada em código neste cenário, portanto vamos a isso!

Funções do Azure ou WebJobs do Serviço de Aplicações do Azure?

Temos de tomar uma decisão entre as duas tecnologias seguintes.

  • Funções do Azure
  • WebJobs do Serviço de Aplicações do Azure

Os fatores seguintes irão influenciar a sua escolha:

  • Custo: com WebJobs, você paga por toda a VM ou Plano do Serviço de Aplicativo que hospeda o trabalho. O Azure Functions pode ser executado em um plano de consumo, portanto, você só paga quando a função é executada. Como esse processo só começa quando uma bicicleta é devolvida, podemos economizar dinheiro selecionando Azure Functions.
  • Integrações: Você deseja integrar o fluxo de trabalho de manutenção com o aplicativo lógico que você cria para o processo de reserva e aluguel de bicicletas na unidade anterior. Embora seja possível chamar um WebJob a partir de um aplicativo lógico, a integração entre aplicativos lógicos e funções é mais próxima. Por exemplo, você pode controlar mais facilmente sua chamada para uma Função a partir do designer visual de Aplicativos Lógicos.

Por esses motivos, selecionaremos o Azure Functions para gerenciar seu processo de negócios de manutenção de bicicletas.