O que é uma malha de serviço?

Uma malha de serviço é um serviço de aplicativo pré-configurado que permite que os serviços conversem entre si, compartilhando dados e consistência em todo o ciclo de vida do aplicativo. Eles são usados para gerenciar microsserviços usando a camada fina e gravável de um contêiner. Criada para ser facilmente configurada e implantada, uma malha de serviço libera o valor dos microsserviços, permitindo que as empresas descubram facilmente novos serviços e os gerenciem como produtos de API.

Diagrama da malha de serviço

Para implementar uma malha de serviço, você precisa de uma estratégia de integração moderna adequada à era digital. Deve ser ágil, promover a inovação e atender aos requisitos de negócios. A eficiência também é importante, mas não uma prioridade.

Benefícios da malha de serviço

Padronização de aplicativos baseados em microsserviços. Os comportamentos dos aplicativos distribuídos variam dependendo da rede que os suporta. Diferentes comportamentos podem criar um desafio para um sistema de gerenciamento de configuração. Uma malha de serviço faz com que um data center exclusivo pareça menos complicado para o orquestrador.

Monitoramento e melhoria do comportamento de aplicativos distribuídos. Uma boa malha de serviço é projetada para colocar componentes altamente solicitados em um local no plano de controle do aplicativo onde possam ser mais facilmente acessíveis. Dito isto, os componentes precisam operar sem problemas e com mais eficiência. Com uma malha de serviço, os dados são compartilhados, o que significa que os desenvolvedores podem ver o que precisa ser melhorado na próxima iteração.

Maior transparência em interações complicadas. Muitas vezes, é difícil acompanhar o fluxo de informações em um ambiente nativo da nuvem. A malha de serviço traz transparência à maneira como serviços de aplicativos vitais são fornecidos, permitindo que você acompanhe seu comportamento.

Criptografia. Uma malha de serviço gerencia chaves, certificados e configuração de TLS para garantir criptografia contínua que não deixe você na mão. Os usuários não precisam mais implementar criptografia ou gerenciar certificados. Essas responsabilidades passam do desenvolvedor do aplicativo para a camada de estrutura.

10 razões pelas quais a TIBCO é a líder na conexão de arquiteturas modernas de aplicativos
10 razões pelas quais a TIBCO é a líder na conexão de arquiteturas modernas de aplicativos
A arquitetura de seu aplicativo precisa evoluir. Aqui estão os 10 principais motivos para escolher a TIBCO para ajudar.

Como funciona uma arquitetura de malha de serviço?

Uma malha de serviço fornece uma coleção de proxies leves que funcionam ao lado de contêineres. Cada proxy atua como um gateway para interações que ocorrem entre os contêineres. O proxy intermedeia a solicitação na malha de serviço para os contêineres downstream apropriados que atendem à solicitação — basicamente retirando a lógica que governa a comunicação de serviço a serviço dos serviços individuais e abstraindo-a em uma camada de infraestrutura.

Para fazer isso, uma malha de serviço é incorporada a um aplicativo como uma coleção de proxies de rede. O controlador no plano de controle orquestra as conexões entre proxies. O controlador fornece acesso às políticas de controle e coleta métricas dos contêineres. Em uma malha de serviço, as solicitações são roteadas entre microsserviços por meio de proxies em sua própria camada de infraestrutura. Por esse motivo, os proxies individuais que compõem uma malha de serviço às vezes são chamados de “sidecars”, pois são executados ao lado de cada serviço, e não dentro deles. Em conjunto, esses proxies “sidecar”, desacoplados de cada serviço, formam uma rede de malhas.

Componentes de uma malha de serviço

Descoberta de serviços

Os proxies fornecem a rota para a comunicação entre microsserviços e outros aplicativos. A descoberta acontece dinamicamente à medida que novas réplicas são adicionadas ou removidas.

Roteamento da malha de serviço

Os proxies leves da malha de serviço têm mecanismos de roteamento inteligente embutidos, o que ajuda a fornecer as melhores rotas para as solicitações. O roteamento é feito dinamicamente entre os serviços.

Observabilidade da malha de serviço

As malhas de serviço modernas têm componentes implantados no plano de controle, que ajudam no registro, rastreamento de solicitação e chamadas de resposta entre serviços, monitoramento e alertas. Os padrões de falha são detectados por meio de painéis.

Segurança da malha de serviço

As malhas de serviço fornecem autenticação, autorização e criptografia da comunicação entre serviços.

Uma experiência otimizada

Ao criar uma malha de serviço, você deseja criar aplicativos separados e adequados à finalidade que alinhem o design, a função e os recursos do aplicativo aos fluxos de trabalho de personas e modalidades individuais. Isso oferece a oportunidade de criar aplicativos específicos que são mais fáceis de projetar, desenvolver e implantar. Além disso, o aplicativo pode estar mais focado no canal preferido do usuário para realizar uma tarefa, seja um aplicativo baseado na web executado em um laptop, um aplicativo móvel em um smartphone ou uma interface convencional.

Projetar uma malha de serviço que atenda a várias funções e experiências requer um backend flexível para oferecer suporte aos diferentes recursos e fluxos de trabalho para cada aplicativo em uso. O backend deve oferecer uma experiência contínua, portanto, na implementação, ele precisa ser composto para atender às necessidades específicas de um aplicativo otimizado e adequado à finalidade. Um tipo específico de backend, o Backends for Frontends (também conhecido como BFF) oferece suporte a fluxos de trabalho personalizados para esses aplicativos otimizados. Os serviços também precisam estar alinhados com uma UX específica. Esse modelo permite que as equipes de desenvolvimento implementem rapidamente novos frontends para oferecer suporte a novas personas ou dispositivos sem afetar outros aplicativos ou serviços.

Experimente o TIBCO Cloud Integration - Teste Grátis
Experimente o TIBCO Cloud Integration - Teste Grátis
Deixe o TIBCO Cloud Integration capacitar seus negócios com uma integração mais fácil e rápida baseada em API. É integração - simplificada.

Casos de uso da malha de serviço

Implantações Blue-Green

Quando se trata de sites, especialmente aqueles destinados ao comércio eletrônico, cada segundo de inatividade tem um impacto direto na receita. Com as implantações Blue-Green, você pode realizar atualizações complexas em seus aplicativos sem criar interrupções dispendiosas de serviço. Embora existam muitos tipos de implantações Blue-Green, todas seguem o mesmo tipo de padrão:

  1. O site Blue está sendo executado com tráfego ao vivo.
  2. Uma versão atualizada do site (site Green) é implantada e testada enquanto o tráfego ainda flui para o site Blue.
  3. A implantação é executada; uma pequena parte de tráfego ao vivo é desviada para o site Green (enquanto você observa se tudo está funcionando corretamente).
  4. A quantidade de tráfego direcionada para o site Green aumenta gradualmente à medida que o tráfego para o site Blue diminui. Isso continua até que TODO o tráfego vá para o site Green.
  5. O site Blue é retirado do ar.
  6. Ao aumentar gradualmente o tráfego para o novo site em vez de atualizar tudo de uma vez, você dá à sua equipe de operações a chance de reverter as alterações antes que haja consequências em todo o sistema. Isso é especialmente útil nos casos em que o serviço que está sendo atualizado tem interdependências complexas com outros serviços.

    Uma malha de serviço é uma tecnologia especialmente adequada para realizar implantações Blue-Green porque tem controle sobre todo o tráfego entre serviços e um local centralizado para gerenciar implantações e observar a integridade global do sistema.

    Otimize a comunicação

    Cada novo serviço adicionado a um aplicativo ou nova instância de um serviço existente em execução em um contêiner complica o ambiente de comunicação e introduz novos pontos de falha. Dentro de uma arquitetura de microsserviços complexa, pode se tornar complicado e quase impossível localizar onde ocorreram problemas sem uma malha de serviço.

    Isso ocorre porque uma malha de serviço também captura todos os aspectos da comunicação entre serviços como métricas de desempenho. Com o tempo, os dados tornados visíveis pela malha de serviço podem ser aplicados às regras de comunicação entre serviços, resultando em solicitações de serviço mais eficientes e confiáveis.

    Por exemplo, se um determinado serviço falhar, uma malha de serviço pode coletar dados sobre quanto tempo levou até que uma nova tentativa fosse bem-sucedida. À medida que os dados sobre os tempos de falha de um determinado serviço são agregados, é possível escrever regras para determinar o tempo de espera ideal antes de tentar novamente esse serviço, garantindo que o sistema não fique sobrecarregado por tentativas desnecessárias.