Jump to section

Event mesh

Copiar URL

Event mesh é uma infraestrutura dinâmica para envio de notificações a aplicações em um ambiente distribuído. No contexto de uma arquitetura orientada por eventos (EDA), é qualquer alteração, ação ou observação em um sistema que gere uma notificação. Essa notificação é enviada a outros sistemas que reagem ao evento. A event mesh possibilita essas conexões.

Microsserviços: de monolitos a serviços independentes, meshes, serverless e além

A disseminação de grandes volumes de dados em infraestruturas altamente distribuídas se tornou uma exigência para grandes empresas. Aplicações de missão crítica precisam de comunicação rápida e confiável para compartilhar dados essenciais ao processamento das interações e transações que impulsionam os negócios.

Empresas modernas têm de migrar esses dados de maneira eficiente, escalável e econômica em uma infraestrutura não apenas geograficamente dispersa, mas que também existe em clusters independentes e heterogêneos. A solução para este desafio é a event mesh, uma infraestrutura projetada para simplificar e otimizar o transporte de eventos em qualquer ambiente, até mesmo entre nuvens.

Para explicar a event mesh, precisamos antes falar sobre a arquitetura orientada por eventos (EDA), uma arquitetura de software baseada na comunicação por "eventos". Um evento é qualquer alteração, ação ou observação em um sistema que gere uma notificação. Essa notificação é enviada a outros sistemas que reagem ao evento.

Por exemplo, um evento pode ser disparado por uma mudança no endereço de cobrança do cliente, uma ação como um novo pedido ou uma observação sobre o nível de bateria ou a leitura de temperatura de um sensor. Cada evento representa informações a serem consumidas por outras aplicações. Vários clientes podem receber a mesma mensagem e usar os dados recebidos de maneira diferente, para cumprir uma tarefa específica.

A comunicação baseada em eventos assíncrona da EDA é mais adequada para esse tipo de transferência de dados do que para uma comunicação síncrona mais tradicional. No sistema de mensageria síncrono, duas aplicações fazem uma conexão direta, normalmente por interfaces de programação de aplicações (APIs) HTTP. Os dois serviços precisam estar disponíveis e responsivos para que a comunicação seja bem-sucedida. Se um serviço não estiver disponível, a mensagem não será processada, o que pode gerar falhas ou até mesmo desativar o sistema. A transmissão síncrona normalmente não é a melhor maneira de enviar grandes volumes de informações para vários sistemas de uma empresa. 

Por outro lado, a comunicação assíncrona é orientada por eventos, o que permite uma comunicação rápida e simultânea, quase em tempo real, entre várias aplicações. Mesmo que um sistema esteja indisponível para receber um evento, a natureza assíncrona da EDA assegura a entrega da notificação quando ele ficar disponível novamente.

A EDA não exige acoplamento entre os ambiente de execução do produtor e o cliente do evento, o que faz dela a opção ideal para aplicações modernas e distribuídas.

Centenas ou milhares de eventos podem ser gerados a cada minuto dentro de uma empresa. Por isso, é necessário encontrar uma maneira eficiente de entregar um grande volume de eventos a várias aplicações implantadas em uma combinação distribuída de ambientes on-premise e em nuvem. A event mesh oferece esse recurso para empresas orientadas por eventos.

Uma event mesh é uma infraestrutura dinâmica que entrega eventos de produtores a clientes por uma rede de "brokers de eventos" interconectados. A event mesh não depende do ambiente e é projetada para entregar eventos em plataformas de nuvem dispersas sem necessidade de configurar o roteamento, onde quer que as aplicações estejam implantadas: nuvem pública, privada ou híbrida, PaaS, Internet das Coisas (IoT) ou até mesmo fora da nuvem. 

Com a event mesh, produtores e clientes podem usar os mecanismos de evento nativos da plataforma. Assim, um desenvolvedor Java em um cluster conseguiria se inscrever em um evento publicado por um desenvolvedor Node.js em um cluster Kubernetes diferente, por exemplo. Qualquer cliente pode usar o evento, seja qual for o tipo de aplicação, a plataforma de desenvolvimento base, a tecnologia de streaming de mensagens ou o tipo de nuvem que ela usa como host.

Como uma event mesh consegue entregar informações entre as aplicações em qualquer ambiente, ela é compatível com integrações levemente acopladas entre aplicações, bancos de dados e dispositivos legados, além das aplicações nativas em nuvem e baseadas em microsserviços mais atuais.

Uma event mesh também consegue trabalhar com várias opções de serviço de mensageria e se adaptar a elas. O Apache Kafka é uma opção conhecida de sistema de mensageria com EDA, especialmente entre desenvolvedores de aplicações nativas em nuvem. A event mesh também é compatível com outros sistemas de mensageria, como Knative Eventing, Cloud Events, HTTP e AMQP, entre outros.

A event mesh representa o estágio final da jornada de EDA, quando uma empresa já adotou por completo a arquitetura orientada por eventos. Interações assíncronas e padrões de arquitetura orientada por eventos não são novidade, mas a event mesh oferece a abordagem inovadora para a integração que se tornará a infraestrutura de comunicação das empresas da próxima geração.

Red Hat Integration

Veja como o Red Hat Integration ajuda empresas a otimizar o desempenho de aplicações e obter melhores resultados.

Como os nomes são parecidos, é fácil confundir service mesh e event mesh. No entanto, elas não são iguais. Enquanto a event mesh é assíncrona, a service mesh é compatível com sistemas de mensageria síncronos mais tradicionais.

 

A event mesh e a service mesh se complementam, pois oferecem duas opções de comunicação diferentes e eficientes. Assim, os desenvolvedores ganham flexibilidade para escolher a mais adequada ao design da aplicação em que estão trabalhando. No entanto, a service mesh não pode ser considerada uma substituta da event mesh, uma vez que não é compatível com comunicações assíncronas orientadas por eventos. Ela ainda é mais adequada para implantações com apenas um cluster.

Para atender às demandas da empresa e à promessa da arquitetura orientada por eventos, uma event mesh precisa necessariamente oferecer os seguintes recursos:

  • Compatibilidade com vários serviços de mensageria, como Kafka, Knative Eventing, HTTP, AMQP e outros.
  • Tolerância a falhas para uma entrega de mensagens confiável, incluindo recuperação automatizada de falhas da rede e destinos de fallback para mensagens não entregues.
  • Suporte à pontes multiprotocolo entre eventos, aplicações e plataformas de mensageria dispersos.
  • Compatibilidade com implantações on-premise e de multicloud.
  • Suporte à endereços multicast (todos os clientes recebem uma cópia de cada mensagem) e anycast (um cliente recebe uma cópia de cada mensagem produzida).
  • Conexões seguras e transmissão de mensagens do evento.

Uma arquitetura orientada a eventos em conjunto com uma event mesh oferece suporte à uma grande variedade de casos de uso implantados em multiclouds complexas e topologias largamente distribuídas com o uso de vários stacks de aplicações. Veja a seguir alguns exemplos de casos de uso de event mesh.

Integração de microsserviços

A event mesh conecta facilmente aplicações baseadas em microsserviços entre si e com tecnologias legadas.

E-commerce

A event mesh viabiliza o processamento acelerado de transações para assegurar interações rápidas e altamente confiáveis por meio de sites e apps.

Suporte ao cliente

A event mesh é compatível com a disponibilização rápida dos dados de interação com o cliente, para que as equipes de suporte possam responder em tempo real e criar uma experiência personalizada.

Serviços financeiros

A event mesh pode oferecer sincronização de baixa latência dos dados de transações comerciais em tempo real para provedores de serviços financeiros. Além disso, ela também pode transmitir informações em tempo real sobre transações suspeitas para auxiliar na identificação de fraudes.

Conectividade de IoT

A event mesh disponibiliza conectividade com a internet das coisas (IoT) confiável e escalável para sistemas de back-end, possibilitando o processamento de métricas a partir de uma variedade quase ilimitada de sensores.

A event mesh oferece:

Capacidade de resposta em tempo real

O sucesso nos negócios é determinado pela capacidade de reagir às mudanças. Uma das maiores vantagens de uma event mesh é a disponibilização de dados em tempo real para viabilizar respostas rápidas. Esses dados são entregues em fluxos de eventos por meio de uma arquitetura orientada a eventos. A event mesh é altamente eficiente e determina o caminho mais rápido entre produtores e consumidores de eventos, o que praticamente elimina a latência no sistema de mensageria. Isso dá aos stakeholders a agilidade para reagir rapidamente a problemas críticos que demandem decisões urgentes.

Melhoria da experiência do cliente

Ao permitir que as equipes de relação com clientes e de tecnologias de e-commerce disponibilizem dados em tempo real, a event mesh contribui para um melhor atendimento aos usuários e uma experiência do cliente aprimorada.

Redução dos custos operacionais

Ao oferecer visibilidade em tempo real aos departamentos de produção, vendas, inventário e envio, a event mesh permite que as organizações otimizem operações, aumentem a eficiência e reduzam os custos.

Produtividade do desenvolvedor

Com o suporte de uma event mesh que não depende de diferentes tipos de ambientes, sistemas de mensageria e protocolos, os desenvolvedores de aplicações podem se concentrar nas melhores tecnologias disponíveis para implementar a lógica de negócios. Assim, os desenvolvedores ficam livres para inovar sem precisarem criar uma complexa rede de distribuição de dados e sem ficarem presos a ambientes de desenvolvimento,  plataformas de mensageria ou tipos de nuvem.

Leitura recomendada

Artigo

O que é integração?

Quer saber o que é integração? Descubra o que é, como incorporá-la e por que ela é muito melhor com tecnologias open source.

Artigo

O que é Apache Kafka?

O Apache Kafka é uma plataforma distribuída de transmissão de dados que é capaz de publicar, subscrever, armazenar e processar fluxos de registro em tempo real.

Artigo

O que é uma API?

API significa interface de programação de aplicações, um conjunto de definições e protocolos para criar e integrar softwares de aplicações.

Leia mais sobre integração

Soluções Red Hat

Conjunto abrangente de tecnologias para integração e mensageria. Inclui Red Hat 3scale API Management, Red Hat AMQ, Red Hat Runtimes, captura de dados de alterações e um registro de serviço.

Plataforma gerenciada e hospedada, aplicações e data services que otimizam a experiência da nuvem híbrida, reduzindo os custos e a complexidade operacionais de aplicações nativas em nuvem.

Um conjunto de soluções, ferramentas e componentes para desenvolver e manter aplicações nativas em nuvem. Inclui Red Hat AMQ, Red Hat Data Grid, Red Hat JBoss® Enterprise Application Platform, Red Hat JBoss Web Server, uma versão Red Hat do OpenJDK, uma versão Red Hat do Quarkus, um conjunto de runtimes nativos em nuvem, kit de ferramentas de migração para aplicações, login único (SSO) e serviço de inicialização.

Um conjunto abrangente de tecnologias de integração e runtimes para criar, implantar e operar aplicações com segurança e em escala na nuvem híbrida.

Conteúdo adicional

Ebook

Integração ágil

Crie uma infraestrutura ágil para viabilizar uma organização adaptável.

Visão geral

Red Hat Cloud Services

Serviços gerenciados para desenvolvimento nativo em nuvem.

Treinamento

Treinamento gratuito

Red Hat Agile Integration Technical Overview