O que é event mesh?
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.
Por que usar uma event mesh?
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.
Recursos da Red Hat
O que é arquitetura orientada por eventos (EDA)?
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.
Como funciona uma event mesh?
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.
Qual a diferença entre event mesh e service mesh?
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.
Recursos necessários para uma event mesh
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.
Casos de uso para event mesh
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.
Benefícios da event mesh para empresas
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.
Blog da Red Hat
Tudo relacionado à Red Hat: soluções, treinamentos e certificações Red Hat, casos de sucesso de clientes, novidades dos nossos parceiros e notícias sobre projetos das comunidades open source.