Introdução
a arquiteturas
orientadas
a eventos
SEÇ Ã O 1
Introdução
Uma arquitetura orientada a eventos (EDA) é um padrão arquitetônico projetado para conectar
componentes de um serviço e viabilizar a comunicação entre sistemas complexos. Esse tipo
de arquitetura é constituído por três componentes principais:
1. Produtores de eventos (p. ex., software como serviço [SaaS], aplicativo móvel,
site de comércio eletrônico, ponto de venda)
2. Agentes de eventos (p. ex., roteador de eventos, loja de eventos)
3. Consumidores de eventos (p. ex., bancos de dados, microsserviços, aplicações SaaS)
Os eventos indicam uma alteração de estado (como pedido realizado ou usuário criado)
e são transferidos entre os componentes como mensagens com uma semântica específica.
Um produtor publica um evento para o agente, que separa produtores e consumidores
ao permitir que eles se comuniquem de forma assíncrona. As EDAs usam eventos para
coordenar a comunicação entre serviços ligeiramente acoplados.
Fontes de eventos Destinos de eventos
Barramento de
Serviços da AWS eventos padrão AWS Lambda
Barramento de Amazon Kinesis
Eventos personalizados
eventos personalizado
Barramento de AWS Step Functions
Aplicações SaaS
eventos SaaS
Amazon API Gateway
Barramentos em outras contas
2
SEÇ Ã O 2
Por que as organizações estão adotando
a EDA para desenvolver aplicações modernas
Com uma arquitetura orientada a eventos, é possível proporcionar ao cliente experiências
receptivas de um modo escalável e confiável. As organizações têm usado cada vez mais as EDAs
para desenvolver aplicações modernas de microsserviços por uma série de motivos:
• Agilidade entre as equipes
As aplicações modernas estão se tornando mais complexas: elas são frequentemente
compostas por vários serviços personalizados na nuvem, serviços SaaS e on-premises.
As equipes de desenvolvimento que os gerenciam precisam operar de forma independente
e com agilidade na atualização, no gerenciamento e na construção de novos serviços.
• Resiliência em grande escala
As aplicações modernas precisam ser resilientes e confiáveis e contar com serviços
que escalem sob demanda e só falhem separadamente.
• Expectativas de clientes
As aplicações modernas precisam atender às necessidades dos clientes, que esperam que
os sistemas respondam aos eventos conforme estes ocorrem.
• Custo-benefício
As aplicações modernas precisam ser econômicas e permitir que os clientes paguem somente
pelos serviços dos quais necessitam e quando os necessitam, o que, dessa forma, diminui
o custo total de propriedade (TCO) da aplicação.
Antes da arquitetura orientada a eventos, as equipes de desenvolvimento precisavam coordenar
de perto a atualização ou inclusão de novos serviços a uma aplicação. Como as alterações em
um serviço podiam involuntariamente afetar outros serviços na aplicação, as equipes precisavam
entender como funcionavam os serviços fora de sua competência. Isso limitava a capacidade
dos desenvolvedores de operar de modo independente e ágil. Dado o firme acoplamento desses
serviços, a escalabilidade e a disponibilidade de cada componente afetavam o sistema inteiro,
e a falha em um sistema repercutia em outros. Se houvesse um atraso ou falha em um sistema,
a aplicação inteira poderia ser afetada e, consequentemente, as experiências de clientes também.
Assista ao vídeo: Getting started with event-driven architectures (Conceitos básicos sobre
arquiteturas orientadas a eventos)
3
SEÇ Ã O 3
Vantagens das arquiteturas orientadas
a eventos
Veja os quatro principais benefícios da arquitetura orientada a eventos e como ela soluciona
as limitações do padrão tradicional de solicitação-resposta:
1. Maior agilidade
As arquiteturas orientadas a eventos usam agentes de eventos para eliminar a necessidade
de haver uma coordenação estreita entre as diferentes equipes de desenvolvedores que
criam e mantêm serviços para produtores e consumidores. Com isso, suas equipes podem
atuar de maneira rápida e independente, o que aumenta a agilidade do desenvolvedor
e a velocidade do desenvolvimento de recursos. Como as EDAs utilizam serviços gerenciados
de integração de aplicações, o volume de código personalizado que os desenvolvedores
precisam escrever para gerenciar eventos e serviços de evento se reduz significativamente,
e ônus do gerenciamento é transferido para os provedores de nuvem.
2. Escalabilidade e tolerância a falhas
As arquiteturas orientadas a eventos são ligeiramente acopladas. Isto é, elas podem escalar
e falhar separadamente, o que aumenta a resiliência de uma aplicação e torna-se cada
vez mais importante à medida que aumenta o número de integrações (microsserviços,
SaaS, serviços on-premises). Escalar sob demanda permite que as EDAs lidem com tráfego
imprevisível, o que concede flexibilidade à arquitetura geral da aplicação e, ao mesmo tempo,
remove os pontos únicos de falha.
3. Recursos sob demanda
Nas arquiteturas orientadas a eventos, tudo ocorre sob demanda, conforme o evento
é enviado ao agente e aos sistemas da sequência. Isso elimina a necessidade de informar
serviços dependentes sobre um evento. Os clientes não precisam pagar pela infraestrutura
de sondagem contínua. Além disso, é possível aumentar e reduzir a escala de recursos
verticalmente de acordo com o volume de eventos, o que reduz os custos (um fator que
contribui para a redução do TCO de aplicações que usam EDAs).
4. Capacidade de resposta em tempo real
As EDAs permitem que as aplicações respondam a eventos em tempo real. Com isso,
os atrasos ou as falhas não afetam a maneira como outros serviços respondem
ou se de fato o fazem. Isso garante que os clientes tenham uma experiência melhor,
independentemente do que esteja ocorrendo com outros serviços.
Assista ao vídeo: Benefits of migrating to event-driven architecture (Benefícios da migração
para uma arquitetura orientada a eventos)
4
SEÇ Ã O 4
Casos de uso comuns de arquiteturas
orientadas a eventos
Comunicação de microsserviços para back-ends da Web
e de dispositivos móveis
Este caso de uso geralmente é visto em sites de varejo ou de mídia e entretenimento que
precisam aumentar a escala verticalmente para lidar com tráfego imprevisível. Um cliente
acessa um site de comércio eletrônico e faz um pedido. O evento do pedido é enviado a um
roteador de eventos, e todos os microsserviços na sequência podem coletar o evento do pedido
para fazer o processamento (por exemplo, enviar o pedido, autorizar o pagamento e repassar
os detalhes do pedido à transportadora). Como cada microsserviço pode escalar à parte
e só falha separadamente, não há nenhum ponto único de falha. Esse padrão ajudou a LEGO
a escalar seu site de comércio eletrônico para atender ao pico de tráfego da Black Friday.
Login Envio
Login do Faturar cada
cliente minuto
Enviar pedido
Login do cliente
para SAP
Eventos Pedido
concluído
Fila por ordem
Plataforma Atualizações Retransmissão Amazon de chegada (FIFO)
de comércio de pedidos do evento Sincronização EventBridge Pagamento
e clientes de dados
Login do Pagamento
Sincronização de cliente autorizado Autorizar
lista de desejos,
pagamento
VIP e cliente
Finalizar compra Pedido
Pedido Pedido
enviado concluído
Enviar pedido Processar pedido
5
Integração de aplicações SaaS
De acordo com a BetterCloud, as organizações usaram, em média, 110 aplicações SaaS
em 2021. Mais da metade dos entrevistados dizem que o principal desafio do ambiente SaaS
é a falta de visibilidade com relação aos dados e às atividades de usuários. Para liberar os dados
compartimentados em silos, os clientes desenvolvem arquiteturas orientadas a eventos que
ingerem os eventos das aplicações SaaS ou enviam eventos às aplicações SaaS. A Taco Bell criou
uma solução middleware relativa a pedidos para ingerir os pedidos recebidos de aplicações
de parceiros de entrega e enviá-los diretamente à aplicação de ponto de venda na loja.
Fluxo de trabalho padrão
Parceiro de entrega
Fluxo de trabalho expresso
API de ponto de venda
API de entrega
Cliente Aplicação API Gateway Event Bridge
de entrega
Aguardar
o retorno
da chamada
Tokens de retorno Manipulador Cancelar Fazer check-in
de chamada de retorno
de chamada
6
Automatização dos fluxos de trabalho comerciais
Este caso de uso é comumente visto em transações financeiras ou na automação de processos
comerciais. Muitos fluxos de trabalho comerciais exigem a repetição das mesmas etapas, que
podem ser automatizadas e executadas de uma maneira orientada a eventos. Por exemplo, quando
um cliente cria uma conta em um banco, este precisa executar algumas verificações de dados
(documentação de identidade, endereço etc.), e algumas contas exigirão uma etapa de aprovação
humana. É possível orquestrar todas essas etapas por meio de um serviço de fluxo de trabalho,
que pode ser acionado automaticamente assim que um novo cadastro de conta for enviado.
Aplicações da conta Verificação de dados Análise humana Contas
Aceitar nova aplicação
Verificar documentos
de identidade
Consolidar verificações
de dados
Verificar endereço
Listar aplicações sinalizadas
Análise humana
Administrar decisões
humanas
Aprovar ou rejeitar Criar conta
A Broadridge criou um fluxo de trabalho para extrair dados de formulários de votação por procuração
utilizando machine learning, economizando milhares de horas de extração manual de dados e validação.
AWS Step
Functions
AWS Lambda Amazon AWS Lambda
Comprehend
AWS Lambda Amazon
Amazon
SQS
SageMaker Usuário final
Entrada
AWS Lambda Amazon AWS Lambda
Textract
Amazon SQS
7
Automação da infraestrutura
Os clientes podem usar arquiteturas orientadas a eventos para automatizar sua infraestrutura de diversas
maneiras. Por exemplo, aqueles que executam workloads de computação intensiva, como análises
financeiras, pesquisa genômica ou transcodificação de mídia, podem acionar recursos de computação para
aumentar a escala verticalmente a fim de realizar processamentos altamente paralelos e, depois, reduzir
a escala desses recursos verticalmente quando o trabalho for concluído. A Société Générale aumenta
e reduz verticalmente a escala de recursos de forma automática para realizar análises de risco crediário.
Nuvem AWS
Fluxo de trabalho de lotes
do AWS Step Functions Amazon S3
Dividir Mapear Reduzir
Gravar entrada
Entrada e saída
do processamento
de dados do S3
de lotes no S3
Sub-rede privada
Cluster do ECS Mesmo mecanismo
Iniciar trabalho (processamento de lotes) de processamento
de processamento
Usuários do Amazon AWS Lambda Serviço do processador
mecanismo API Gateway
Cluster do ECS
(processamento em tempo real)
ECR
Computação
em tempo real
Application
load balancer Serviço do processador
Os clientes em setores altamente regulamentados (como os de saúde e finanças) podem usar a
arquitetura orientada a eventos para agilizar o procedimento de segurança em resposta a um incidente
ou tomar medidas corretivas quando uma política de segurança enviar um alerta. A nib Health Funds
utiliza um procedimento de segurança auditável e com limite de tempo para o acesso seguro a recursos.
AWS Step Amazon Amazon Temporizador do AWS Lambda
Functions SES API Gateway Step Functions
AWS IAM
Usuário do nib
AWS Lambda AWS KMS AWS Systems
Manager
Grupo de segurança
Credenciais criptografadas exclusivas
Executar
Bastion Instância de
comando
produção do EC2
8
SEÇ Ã O 5
Como desenvolver arquiteturas orientadas
a eventos com a AWS
A arquitetura orientada a eventos geralmente combina vários produtos da AWS para atender
ao seu caso de uso exclusivo. Entre eles estão o Amazon EventBridge e o AWS Step Functions.
Qualquer um dos mais de 200 produtos da AWS que emitem eventos pode ser um produtor
de eventos. Além disso, os clientes podem ingerir eventos de mais de 40 integrações de SaaS
do EventBridge. Alguns exemplos de eventos são: um novo arquivo criado em um bucket do
Amazon Simple Storage Service (Amazon S3), uma etapa concluída em um fluxo de trabalho
do AWS Step Functions ou uma nova oportunidade de vendas criada no Salesforce.
Os clientes têm uma variedade de opções de serviço para um agente de eventos, cada uma com
diferentes características para casos de uso distintos. É possível usar um barramento de eventos, como
o Amazon EventBridge, um tópico do Amazon Simple Notification Service (SNS), uma fila do Amazon Simple
Queue Service (SQS) ou um fluxo do Amazon Kinesis Data Streams ou do Amazon Managed Streaming
for Apache Kafka (MSK). Geralmente, esses serviços são combinados de acordo com o caso de uso do
cliente; por exemplo, usar um barramento de eventos e encaminhar eventos para uma fila a fim de obter
persistência e um tópico para distribuição para vários consumidores de eventos.
Com relação a consumidores de eventos, os padrões comuns incluem invocar uma função
Lambda para processar o evento com um microsserviço sem servidor ou acionar um fluxo
de trabalho do AWS Step Functions.
9
SEÇ Ã O 6
Conclusão
Melhores resultados para seus negócios e clientes com a AWS
As arquiteturas orientadas a eventos geralmente combinam vários benefícios e se prestam
a inúmeros casos de uso. Elas tornaram-se um componente fundamental das aplicações modernas
baseadas em microsserviços. As aplicações ligeiramente acopladas aumentam a agilidade
dos desenvolvedores e a velocidade de liberação de recursos. As EDAs permitem que você
desenvolva aplicações escaláveis e tolerantes a falhas com rapidez e satisfaça seus clientes.
Aumente a agilidade do desenvolvimento, reduza os custos e melhore as experiências de clientes
com uma arquitetura orientada a eventos desenvolvida na Amazon Web Services (AWS).
Saiba mais sobre os serviços da AWS para arquiteturas orientadas a eventos
Leia o whitepaper Como criar arquiteturas orientadas a eventos com a AWS
para saber mais sobre os padrões de arquitetura orientada a eventos.
©️ 2022, Amazon Web Services, Inc. ou suas afiliadas. Todos os direitos reservados.
10