Automatizando Processos Com Microsserviços e Mecanismo de Fluxo de Trabalho

Ao projetar uma arquitetura de microsserviço, você define limites lógicos em torno de recursos significativos de negócios ou domínio. Dentro de um limite de serviço, a equipe de desenvolvimento tem autonomia para fazer o que for necessário para implementar os requisitos técnicos e de negócios. Dessa forma, os microsserviços proporcionam um alto nível de flexibilidade e agilidade; cada equipe pode fornecer mudanças em seu próprio ritmo sem ter que reconstruir e reimplantar um aplicativo de negócios monolítico todas as vezes.

É importante ter em mente que um processo de negócios automatizado de ponta a ponta normalmente se estende por vários microsserviços individuais que devem se comunicar e colaborar para alcançar um resultado comercial. É aí que entra um mecanismo de fluxo de trabalho. Um mecanismo de fluxo de trabalho gerencia o fluxo de um processo de negócios entre microsserviços visualizando, operando e relatando o processo.

Vantagens de um mecanismo de fluxo de trabalho para microsserviços

 

  • A automação de processos alimentada por um mecanismo de fluxo de trabalho oferece muitas vantagens, como:

 

 

  • Manipulação de estado – Persiste o estado de cada instância de um processo de negócios (por exemplo, cada pedido feito em um site de comércio eletrônico)

 

 

  • Processos explícitos – Torna os processos de negócios explícitos em vez de enterrá-los em código (ou seja, são mais fáceis para as equipes entenderem e modificarem).

 

 

  • Correlação e coordenação de mensagens – Mescla mensagens pertencentes a uma única instância de processo e decide as próximas etapas – linguagens de modelagem de processos (por exemplo, Business Process Model and Notation) implementam automaticamente padrões de mensagens como sequências, sincronização, exclusão mútua e tempos limite.

 

 

  • Compensação por problemas – Compensa se um processo de negócios encontrar um problema que exija que etapas concluídas anteriormente sejam desfeitas

 

 

  • Tratamento de tempo limite – rastreia a passagem do tempo e, se uma mensagem não chegar a tempo, automaticamente age ou muda para outro caminho no fluxo do processo.

 

 

  • Tratamento de erros – Permite especificar o comportamento que deve ocorrer quando ocorre um erro (por exemplo, repetir uma ação, seguir outro caminho)

 

 

  • Transparência do status – Permite que as equipes de operações monitorem o status das instâncias do processo em tempo real.

 

 

  • Colaboração – Fornece modelos gráficos de processos de negócios que facilitam a discussão entre as partes interessadas do negócio, desenvolvedores e equipes de operações.

 

Projete microsserviços independentes

Os microsserviços independentes permitem dimensionar sua força de trabalho de desenvolvimento, mantendo a agilidade e um ritmo de desenvolvimento rápido. Microsserviços bem projetados têm os seguintes atributos:

 

  • Ciclos de vida independentes – As equipes devem ser capazes de desenvolver, implantar e fazer escolhas de tecnologia para seus microsserviços sem envolver outros serviços ou equipes. Iniciar, interromper ou alterar um microsserviço não deve interromper outros serviços.

 

 

  • Interfaces estáveis – As interfaces de microsserviço não devem ser interrompidas durante as atualizações. Se forem necessárias alterações incompatíveis em uma interface, elas devem ser implementadas por meio do controle de versão da interface.

 

 

  • Comunicação assíncrona – um microsserviço precisa se comunicar com outros serviços, mas o par pode não estar disponível imediatamente. A comunicação assíncrona por meio de mensagens pode remover dependências da disponibilidade de outros serviços.

 

 

  • Resiliência e tolerância a falhas – Um microsserviço ainda deve ser executado se outros serviços no sistema causarem problemas.

 

 

  • Degradação– Se um microsserviço falhar, o restante do sistema ainda deve funcionar da melhor maneira possível (por exemplo, voltando a um fluxo padrão).

 

 

  • Escalabilidade independente – Cada microsserviço deve ter acesso aos recursos necessários para responder às mudanças na carga do sistema sem afetar outros serviços.

 

 

  • Armazenamento de dados local – Cada microsserviço deve armazenar uma cópia local dos dados necessários para cumprir sua tarefa.

 

Alinhar microsserviços ao domínio de negócios

As organizações geralmente lutam para implementar microsserviços que dão suporte a um processo de negócios de ponta a ponta, mantendo a independência e preservando a autonomia da equipe de desenvolvimento. Por exemplo, imagine que você tenha um processo de atendimento para pedidos online de produtos digitais. Requer microsserviços como pagamento, inventário, envio e assim por diante. Embora cada serviço opere de forma independente, o processo de atendimento de pedidos requer uma cadeia lógica de eventos.

What do you think?

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *