O Eventarc permite criar arquiteturas orientadas a eventos e baseadas em mensagens sem ter que implementar, personalizar ou manter a infraestrutura subjacente.
O Eventarc é oferecido em duas edições: Eventarc Advanced e Eventarc Standard. Ambas as edições oferecem uma solução de eventos escalonável, sem servidor e totalmente gerenciada que permite encaminhar eventos de forma assíncrona das origens para os destinos. Para mais informações, consulte Escolher o Eventarc Advanced ou o Eventarc Standard.
O Eventarc Advanced foi criado para simplificar a ingestão, orquestração e entrega de dados de eventos por meio de mensagens em aplicativos, serviços e endpoints. Com o Eventarc Advanced, você pode coletar eventos que ocorrem em um sistema e publicá-los em um barramento central. Os serviços interessados podem se inscrever em mensagens específicas criando inscrições. É possível usar o bus e um pipeline para rotear eventos de várias fontes em tempo real, publicá-los em vários destinos e, opcionalmente, transformar eventos antes da entrega a um destino.
O Eventarc Advanced é ideal para organizações com necessidades complexas de eventos e mensagens, principalmente aquelas que lidam com o gerenciamento de vários tópicos do Pub/Sub, filas do Kafka ou outros sistemas de mensagens de terceiros. Ao oferecer aos administradores visibilidade e controle aprimorados e centralizados, o Eventarc Advanced permite que as organizações conectem várias equipes em diferentes projetos.
É possível gerenciar o Eventarc Advanced no console do Google Cloud, na linha de comando usando a Google Cloud CLI ou com a API Eventarc.
Principais conceitos
Um barramento fornece um endpoint detectável para eventos e é um roteador que recebe todos os eventos publicados pelos provedores e os entrega a zero ou mais destinos. Um bus permite centralizar, monitorar e rastrear o fluxo de mensagens pelo sistema. É possível usar um barramento para rotear eventos de muitas origens para muitos destinos.
As mensagens que chegam a um barramento são avaliadas de acordo com os critérios de um registro, que representa uma assinatura de eventos coletados por um barramento específico. Os eventos são roteados para consumidores que se inscreveram nesses eventos específicos. A inscrição permite usar a Common Expression Language (CEL) para definir políticas de controle de acesso detalhadas, comparando eventos com base em atributos de eventos. Uma inscrição também permite especificar o pipeline para que os eventos correspondentes precisam ser enviados.
O pipeline é o intermediário de entrega entre um barramento e um destino. O pipeline especifica um destino de destino e também oferece a opção de transformar os eventos correspondentes antes de enviá-los ao destino. Ele permite processar diferentes estruturas de evento com suporte a vários formatos de payload e permite adaptar os dados de evento em tempo real sem modificar os serviços de origem ou de destino.
Principais recursos
O Eventarc Advanced é compatível com muitos casos de uso para aplicativos de destino. Alguns recursos importantes são:
Integração de aplicativos em grande escala: é possível conectar vários serviços e aplicativos, permitindo a comunicação assíncrona em diferentes formatos e esquemas de eventos.
Streaming de eventos para IA e análises: é possível processar o influxo de dados de dispositivos IoT e cargas de trabalho de IA, filtrando, transformando e enriquecendo eventos antes de alimentá-los nos pipelines de análise.
Implantações híbridas e multicloud: é possível estender suas arquiteturas orientadas a eventos além do Google Cloud, integrando-as a sistemas locais e outros provedores de nuvem. Com o Eventarc Advanced, é possível rotear eventos de várias origens, incluindo origens do Google e editores diretos de eventos.
Entender a regionalidade
O Eventarc Advanced é um serviço totalmente regional: todo o tráfego e os dados do Eventarc Advanced precisam estar na mesma região. Por exemplo, as inscrições e os pipelines só podem ler e processar dados da mesma região do ônibus. O suporte entre regiões pode ser alcançado publicando eventos em diferentes ônibus em diferentes regiões e configurando uma rede em um perímetro de serviço que abrange várias regiões.
Layouts de projetos
Todos os recursos do Eventarc precisam pertencer a um projeto do Google Cloud. No entanto, não é necessário que o provedor (origem do evento), o bus (administrador) e o pipeline (destino do evento) estejam no mesmo projeto.
É possível usar uma combinação de permissões de gerenciamento de identidade e acesso (IAM) para controlar o uso de recursos, o acesso detalhado a dados usando CEL, anexos de rede e perímetros de serviço para oferecer suporte a requisitos de rede e segurança para diferentes necessidades de entrada e saída.
Eventos
Um evento é um registro de dados que expressa uma ocorrência e o contexto dela, e indica uma mudança em um recurso ou ambiente. Um evento é uma unidade distinta de comunicação, independente de outros eventos. Por exemplo, um evento pode indicar uma mudança nos dados de um banco de dados, um arquivo adicionado a um sistema de armazenamento ou um job programado.
Um evento também é uma mensagem emitida por um componente quando o estado dele muda. Quando um evento ocorre, a mensagem é enviada para a infraestrutura de eventos, onde os consumidores podem recuperá-la. No contexto da arquitetura orientada a eventos, usamos com frequência o termo evento para nos referirmos à mensagem que comunica o evento, e não à ocorrência em si (o que realmente aconteceu para gerar a mensagem).
Tipos de evento
O Eventarc Advanced oferece suporte a eventos que vêm diretamente de uma origem do Google.
Para mais informações, consulte Tipos de evento do Google compatíveis com o Eventarc.
Provedores e destinos de eventos
O Eventarc Advanced coleta eventos dos provedores de eventos e os encaminha para um destino. Cada pipeline do Eventarc Advanced pode especificar apenas um destino como destino para mensagens roteadas.
Os provedores compatíveis incluem provedores do Google e editores diretos de eventos. Os destinos compatíveis incluem o Cloud Run, funções do Cloud Run, endpoints HTTP hospedados em uma rede de nuvem privada virtual, Workflows e outro bus do Eventarc Advanced.
Para mais informações, consulte Provedores e destinos de eventos.
Formato e bibliotecas de eventos
O Eventarc entrega eventos, independentemente do provedor, para o destino em um formato CloudEvents que usa uma solicitação HTTP no modo de conteúdo binário. O CloudEvents é uma especificação para descrever metadados de eventos de maneira comum.
Destinos de destino, como funções do Cloud Run e Cloud Run, consomem eventos no formato HTTP. Para destinos do Workflows, o serviço do Workflows converte o evento em um objeto JSON e o transmite para a execução do fluxo de trabalho como um argumento do ambiente de execução.
O uso de uma maneira padrão para descrever metadados de evento garante consistência, acessibilidade e portabilidade. Os consumidores de eventos podem ler esses eventos diretamente ou usar as bibliotecas de cliente do Cloud em várias linguagens (incluindo C++, C#, Go, Java, Node.js, PHP, Python e Ruby) para ler e analisar os eventos. Há também um conjunto de SDKs do CloudEvents específicos a uma linguagem.
A estrutura do corpo HTTP de todos os eventos está disponível no repositório GitHub de eventos do Google Cloud.
Confiabilidade e entrega
Não há garantia de entrega por ordem de chegada. A ordem estrita prejudicaria os recursos de disponibilidade e escalonabilidade do Eventarc que correspondem aos da camada de transporte, o Pub/Sub. Para mais informações, consulte Como ordenar mensagens.
A latência e a capacidade são os melhores esforços. Elas variam com base em vários fatores, incluindo se a publicação ou o tráfego de saída envolvem diferentes regiões, a configuração de um serviço específico e a carga de rede nos recursos de uma região do Google Cloud.
Há cotas e limites de uso que se aplicam geralmente ao Eventarc.
Política de repetição de eventos
A duração padrão de retenção de mensagens definida pelo Eventarc Advanced é de 24 horas com um atraso de espera exponencial.
O Eventarc Advanced usa um atraso de espera exponencial para lidar com erros que podem ser tentados novamente. Isso começa com um atraso de um segundo, que é duplicado após cada tentativa com falha (até um máximo de 60 segundos e cinco tentativas).
Para mais informações, consulte Repetir eventos.
Duplicar eventos
Eventos duplicados podem ser entregues aos manipuladores de eventos. De acordo com a
especificação do CloudEvents, a combinação dos atributos source
e id
é considerada única e,
portanto, todos os eventos com a mesma combinação são considerados duplicados.
Implemente
manipuladores de eventos idempotentes
como prática recomendada geral.
Observabilidade
Registros detalhados de Eventarc, Cloud Run, funções do Cloud Run, Pub/Sub e Fluxos de trabalho estão disponíveis nos Registros de auditoria do Cloud.