Como uma parte essencial da arquitetura nativa da nuvem , os microsserviços são aplicações criadas a partir de serviços de implantação independentes e reutilizáveis. Os microsserviços geralmente se comunicam entre si por meio de protocolos leves HTTP, filas de mensagens ou fluxos de eventos. A arquitetura orientada por eventos é geralmente a melhor maneira de implementar microsserviços, pois promove maior modularidade, tolerância a falhas e escalabilidade.
A arquitetura orientada por eventos (EDA) é um padrão de design de software que permite aos sistemas detectar, processar, comunicar e responder a eventos em tempo real. A EDA comunica eventos assim que eles acontecem, permitindo que qualquer pessoa, serviço ou aplicação orientada a eventos que precise saber sobre um evento responda em tempo real.
Mensagens assíncronas e acoplamento fraco são dois aspectos importantes da arquitetura orientada por eventos. A comunicação assíncrona substitui a arquitetura tradicional de "solicitação e resposta" na qual os serviços devem aguardar uma resposta antes de prosseguir para executar uma tarefa. Além de facilitar a integração, isso torna os sistemas mais escaláveis, já que eles podem lidar com volumes mais altos de dados em tempo real com baixa latência. Também permite que os sistemas relacionados sejam dissociados ou acoplados de forma fraca. Portanto, as aplicações e os serviços podem se comunicar entre si publicando e consumindo eventos sem saber muito mais sobre o outro sistema. Como resultado, os sistemas orientados por eventos podem ser dimensionados rapidamente e são altamente resistentes a falhas, já que o sistema pode continuar funcionando mesmo se um componente estiver indisponível. A EDA também é adequada para processamento em tempo real e manipulação de grandes volumes de dados, pois os componentes podem reagir a eventos e processar dados à medida que chegam, sem esperar por um conjunto de dados completo.
O que é um evento?
Evento é qualquer alteração no estado de algo dentro de um sistema de negócios: um objeto adicionado a um bucket, um novo registro adicionado a um banco de dados, um item colocado em um carrinho de compras ou uma senha que foi redefinida. É algo que acontecia no passado, normalmente no formato JSON ou YAML.
Por que a arquitetura orientada por eventos é necessária?
Todos os processos de negócios são conduzidos por eventos, e a capacidade de reagir rapidamente a eles é essencial para a produtividade, a eficiência e a competitividade. Quanto mais rápido as aplicações, os serviços e as pessoas puderem obter informações sobre eventos, mais eficiente será a operação de uma organização.
Nesse ambiente, a arquitetura orientada por eventos é importante porque comunica os eventos assim que eles ocorrem, em contraste com abordagens arquitetônicas, como APIs ,que aguardam a atualização periódica dos sistemas.
Quais são os componentes da arquitetura orientada por eventos?
A arquitetura orientada por eventos inclui componentes de software e hardware que são implantados e conectados para fornecer comunicação em tempo real e mensagens sobre eventos. Esses componentes incluem:
- Editores de eventos: Estas fontes de eventos, também conhecidas como produtores de eventos, geram um evento e o publicam em um canal ou barramento de eventos.
- Barramento de eventos: Inclui corretores de eventos, filas de mensagens e um canal de eventos. É o caminho através do qual os eventos são comunicados dos produtores de eventos aos consumidores de eventos. Os canais de eventos possibilitam a natureza assíncrona e dissociada da EDA, aumentando a flexibilidade e a escalabilidade dos sistemas, bem como a organização de grupos de mensagens relacionados.
Assinantes do evento: Também conhecidos como consumidores de eventos ou ouvintes de eventos, os assinantes recebem, processam e respondem a eventos. As respostas podem envolver atualização de um banco de dados, execução de uma tarefa, início de um processo ou geração de novos eventos.
Como funciona a arquitetura orientada por eventos?
São as etapas envolvidas na comunicação de eventos dentro de uma arquitetura orientada por eventos:
- Um editor de eventos produz um evento e publica esses dados em um canal (ou canais) no barramento de eventos.
- O assinante de eventos "ouve" eventos nos canais de maior interesse e responde quando um evento relevante é publicado. Ele pode acionar outros fluxos de trabalho, ações ou eventos.
A arquitetura orientada por eventos é geralmente implantada em um modelo de publicação/assinatura (pub/sub) ou em um modelo de transmissão de eventos.
- Pub/sub: Neste modelo, também conhecido como modelo de mensagens de eventos, os consumidores de eventos se inscrevem em uma classe de mensagens publicadas pelos produtores de eventos. Quando os produtores publicam um evento, as informações são comunicadas a todos os assinantes que desejam consumir o evento. Isso é geralmente feito por meio de um corretor de mensagens que recebe mensagens de evento, converte-as, se necessário, gerencia a ordem das mensagens, disponibiliza-as aos assinantes e as exclui depois que elas são consumidas.
- Fluxo de eventos: Neste modelo, os consumidores de eventos se inscrevem em fluxos de eventos que são enviados por editores aos corretores e registrados. Em vez de receberem e consumirem cada evento conforme ele é publicado, os consumidores podem entrar no fluxo a qualquer momento e consumir apenas os eventos de seu interesse. Os eventos podem ser retidos por certo tempo, permitindo que os consumidores os recebam a qualquer momento. Alguns processos de streaming de eventos usam uma plataforma de streaming de dados, como o Apache Kafka, para gerenciar a ingestão, o processamento e a transformação do fluxo de eventos. O streaming de eventos também pode ser usado para o processamento complexo de eventos, no qual os consumidores processam simultaneamente eventos em grande quantidade.
Quais são os benefícios da arquitetura orientada por eventos?
A arquitetura orientada por eventos traz muitos benefícios para organizações em todos os setores.
- Maior flexibilidade do sistema: A natureza do acoplamento fraco de uma arquitetura orientada por eventos permite que as organizações modifiquem, adicionem ou removam componentes facilmente sem afetar todo o sistema, tornando-se adaptável a requisitos em constante mudança. Para os desenvolvedores, a EDA reduz a complexidade, tornando possível dividir fluxos de trabalho monolíticos em uma série de serviços simples e dissociados que podem ser gerenciados de forma independente e transmitidos de forma assíncrona por meio de mensagens de eventos.
- Escalabilidade aprimorada: A EDA envolve fácil dimensionamento horizontal, permitindo que as empresas lidem com o aumento de workloads ou tráfego, adicionando mais instâncias de componentes ou serviços conforme necessário.
- Maior resiliência do sistema: A comunicação assíncrona e os componentes dissociados da EDA contribuem para melhorar a tolerância a falhas, uma vez que a falha de um componente não causa necessariamente uma interrupção em todo o sistema.
- Recursos de processamento em tempo real: A EDA permite o processamento em tempo real de grandes volumes de dados e padrões de eventos complexos, tornando-o adequado para empresas que exigem percepções ou respostas imediatas para condições reais que mudam dinamicamente.
- Uso otimizado de recursos: Ao reagir a eventos somente quando eles ocorrem, a EDA ajuda a otimizar a utilização de recursos e a reduzir a necessidade de processos em execução contínua, potencialmente levando a economia de custos e eficiência aprimorada.
- Mais velocidade: A EDA pode acelerar seus sistemas porque diferentes componentes não precisam esperar um pelo outro.
Quais são os casos de uso da arquitetura orientada por eventos?
Os casos de uso mais comuns para a arquitetura orientada por eventos incluem:
- Monitoramento em tempo real: Em vez de esperar os resultados de verificações e atualizações periódicas, a EDA permite que aplicações, serviços e equipes recebam alertas imediatos sobre quaisquer anomalias, alterações e atualizações nos sistemas.
- Replicação de dados: A EDA facilita o compartilhamento de um único evento entre vários serviços, permitindo que os dados de eventos sejam copiados em vários bancos de dados. A EDA também pode coordenar sistemas que operam em diferentes regiões e contas.
- Redundância: Quando um serviço é desativado, os eventos podem persistir dentro de um roteador até que ele esteja de volta ao ar e possa consumir os eventos novamente.
- Processamento paralelo: Com a EDA, um único evento pode acionar vários processos de uma só vez.
- Integração e interoperabilidade: A arquitetura orientada por eventos permite que os sistemas em execução em diferentes pilhas compartilhem informações sem a necessidade de uma estreita associação.
Quais são os exemplos de arquitetura orientada por eventos?
A arquitetura orientada por eventos é usada em diversos setores e sistemas.
- Comércio eletrônico: A EDA permite que as empresas de comércio eletrônico respondam imediatamente sempre que um item for colocado em um carrinho de compras, uma compra for feita, um pagamento for processado ou um pacote for enviado.
- IoT: A arquitetura orientada por eventos é fundamental para a coleta de dados em sistemas de Internet das coisas (IoT), pois dispara ações quando os dispositivos de IoT detectam determinadas condições ou métricas.
- Mercado de ações: Quando as condições do mercado mudam, a EDA pode acionar estratégias de negociação automatizadas.
- Análise em tempo real: A EDA pode acionar instantaneamente a análise de eventos em tempo real para detectar fraudes, monitorar o tráfego e tomar melhores decisões com base em condições em tempo real.
- Jogos online: A EDA permite que jogos online identifiquem e respondam a eventos como ações dos jogadores, personagens em movimento ou tarefas concluídas.
- Casas inteligentes: Sensores e dispositivos inteligentes dentro da casa podem responder a mudanças de temperatura, movimentos, iluminação e outros eventos.
- Automação do fluxo de trabalho: A EDA permite que as organizações automatizem muitas etapas em um fluxo de trabalho complexo, em que um evento aciona novas etapas em um processo.
Perguntas frequentes
Nos sistemas acionados por eventos, o desacoplamento e o acoplamento fraco são conceitos relacionados. Desacoplamento é o processo de eliminar as dependências entre diferentes componentes do sistema, de modo que nenhum componente seja dependente do outro. Isso permite que os componentes sejam mais independentes e cria um sistema mais flexível e resiliente. O acoplamento fraco é uma forma de desacoplamento que minimiza a dependência e não separa completamente os componentes. Os componentes podem ainda interagir uns com os outros, mas de formas que não criem uma dependência duradoura.
A computação sem servidor é um paradigma de computação em que os desenvolvedores podem acessar os serviços de back-end sob demanda. Eles podem escrever códigos sem se preocupar em gerenciar os servidores e a infraestrutura subjacentes. Ela se baseia na arquitetura orientada por eventos, na qual as funções são acionadas por eventos como solicitações HTTP, uploads de arquivos e atualizações de banco de dados para simplificar a arquitetura da aplicação e melhorar a escalabilidade.
Por que os clientes escolhem a Akamai
A Akamai é a empresa de cibersegurança e computação em nuvem que potencializa e protege negócios online. Nossas soluções de segurança líderes de mercado, inteligência avançada contra ameaças e equipe de operações globais oferecem defesa em profundidade para garantir a segurança de dados e aplicações empresariais em todos os lugares. As abrangentes soluções de computação em nuvem da Akamai oferecem desempenho e acessibilidade na plataforma mais distribuída do mundo. Empresa globais confiam na Akamai para obter a confiabilidade, escala e experiência líderes do setor necessárias para expandir seus negócios com confiança.