Compartilhar via


Grade de Eventos no Kubernetes – Conceitos

Este artigo explica os principais conceitos da Grade de Eventos no Kubernetes com o Azure Arc (versão prévia).

Importante

A Grade de Eventos no Kubernetes com Azure Arc está atualmente em versão prévia pública. Essa versão prévia é fornecida sem um contrato de nível de serviço e não é recomendada para cargas de trabalho de produção. Alguns recursos podem não ter suporte ou podem ter restrição de recursos. Para obter mais informações, consulte Termos de Uso Complementares de Versões Prévias do Microsoft Azure.

Eventos

Um evento é um registro de dados que anuncia um fato sobre a operação de um sistema de software. Normalmente, um evento anuncia uma alteração de estado devido a um sinal gerado pelo sistema ou um sinal observado pelo sistema. Os eventos contêm dois tipos de informações:

  • Dados de evento que representam a ocorrência de uma alteração de estado.

  • Atributos de contexto que fornecem informações contextuais sobre a ocorrência do evento.

    Os dados de evento e os atributos de contexto podem ser usados para filtrar os eventos.

A Grade de Eventos no Kubernetes suporta a especificação do esquema CloudEvents. Abaixo está o exemplo de um evento que usa o esquema CloudEvents. A Grade de Eventos suporta um evento de tamanho de até 1 MB.

[{
       "specVersion": "1.0",
       "type" : "orderCreated",
       "source": "myCompanyName/us/webCommerceChannel/myOnlineCommerceSiteBrandName",
       "id" : "eventId-n",
       "time" : "2020-12-25T20:54:07+00:00",
       "subject" : "account/acct-123224/order/o-123456",
       "dataSchema" : "1.0",
       "data" : {
          "orderId" : "123",
          "orderType" : "PO",
          "reference" : "https://www.myCompanyName.com/orders/123"
      }
}]

Fonte

O atributo de origem descreve o contexto no qual o evento ocorreu. A origem pode ser o originador de eventos. No entanto, em alguns casos, há produtores que criam e publicam eventos. Esses produtores são diferentes da origem. Para simplificar, este artigo presume que a origem é o produtor dos eventos.

Cada origem de evento produz eventos de um ou mais tipos de evento. Como a origem dos eventos, um aplicativo define um conjunto de eventos relacionados para anunciar suas alterações de estado. Todos os eventos apresentam informações comuns, como a origem do evento, a hora em que o evento ocorreu e o identificador exclusivo. Cada evento também apresenta informações específicas que são relevantes somente para o tipo específico de evento. O suporte para um evento com tamanho de até 1 MB está na versão prévia no momento.

Para obter as propriedades incluídas em um evento, consulte Esquema CloudEvents.

Publicadores

Os publicadores de eventos são aplicativos ou sistemas que enviam eventos para a Grade de Eventos para serem entregues aos assinantes de eventos.

Tópicos

Um tópico é um tipo de canal de entrada que expõe um ponto de extremidade ao qual os publicadores enviam eventos para a Grade de Eventos.

Um tópico é usado para uma coleção de eventos relacionados. Você pode criar um tópico para cada categoria de eventos relacionados. Em alguns casos, a origem pode ser usada para organizar eventos em categorias, porque as fontes geralmente são associadas a um conjunto de tipos de eventos intimamente relacionados ("MyApp.OrderCreated”, “MyApp.OderDeleted”, “MyApp.OrderRejected” e assim por diante).

Considere um aplicativo que envia eventos relacionados ao gerenciamento de contas de usuários e ordens de processamento. É improvável que um assinante de eventos esteja interessado em consumir as duas categorias de eventos. Crie dois tópicos personalizados e permita que os manipuladores de eventos assinem o que for interessante para eles. Para soluções pequenas, você pode preferir enviar todos os eventos para um único tópico.

Assinantes de eventos

Os assinantes de eventos são sistemas de software, como por exemplo microsserviços, que expõem pontos de extremidade para os quais a Grade de Eventos entrega os eventos.

Assinaturas de evento

Uma assinatura de evento informa à Grade de Eventos quais eventos de um tópico você deseja receber (filtragem de eventos) e para onde deseja enviar (roteamento de eventos). Ao criar a assinatura de evento, você fornece um ponto de extremidade para manipular o evento. Você seleciona os eventos que deseja que sejam entregues ao ponto de extremidade, configurando as cláusulas de filtro na assinatura do evento.

Manipuladores de eventos

Um manipulador de eventos é um sistema de software que expõe um ponto de extremidade para o qual os eventos são enviados. O manipulador recebe o evento e executa ações para processá-lo. Grade de eventos do Azure dá suporte a vários tipos de manipulador. Sendo o manipulador, você pode usar um serviço do Azure com suporte hospedado no Kubernetes ou no Azure, ou sua própria solução que expõe um web hook (ponto de extremidade) onde quer que esteja hospedado. Dependendo do tipo de manipulador, a Grade de Eventos segue diferentes mecanismos para assegurar a entrega do evento. Se o manipulador de eventos de destino for um web hook HTTP, o evento será repetido até que o manipulador retorne um código de status de 200 - OK. Para saber mais, confira Manipuladores de eventos.

Autenticação SAS

A Grade de Eventos no Kubernetes fornece autenticação baseada em chave SAS para publicar eventos em tópicos.

Entrega de eventos

A Grade de Eventos no Kubernetes fornece um mecanismo de entrega e de repetição confiável. Se a Grade de Eventos não conseguir confirmar que um evento foi recebido pelo ponto de extremidade do manipulador de evento, ela repetirá a entrega do evento. Para saber mais, confira Event Grid message delivery and retry (Entrega e repetição de mensagens da Grade de Eventos).

Publicação de evento em lote

Ao usar um tópico, os eventos sempre deverão ser publicados em uma matriz. Para cenários de baixa taxa de transferência, a matriz terá apenas um evento. Para casos de uso de alto volume, é recomendável que você execute vários eventos em lote por publicação para obter maior eficiência. Lotes podem ter até 1 MB. Cada evento não deve ser maior do que 1 KB. Para saber mais, consulte Entrega de eventos em lote.

Componentes da Grade de Eventos no Kubernetes

  • O operador da Grade de Eventos implementa o Padrão de operador. Ele observa as alterações de estado dos recursos da Grade de Eventos como resultado das solicitações do painel de controle feitas ao Servidor de API do Kubernetes. Quando há uma solicitação que afeta o estado de qualquer um dos recursos da Grade de Eventos, o operador da Grade de Eventos sincroniza esse estado com o Agente da Grade de Eventos.

  • O agente da Grade de Eventos serve como operações de painel de controle e de plano de dados.

    Como um serviço do painel de controle, ele é responsável por mudar o estado da Grade de Eventos para o estado desejado, comunicado pelo Operador da Grade de Eventos. Por exemplo, quando uma solicitação é feita para criar um novo tópico, ele atende a essa solicitação e os metadados de serviço são atualizados.

    Como um serviço do plano de dados, ele atende a todas as solicitações de publicação de eventos e entrega eventos para seus destinos configurados em assinaturas de evento.

Próximas etapas

Para começar, consulte Criar tópicos e assinaturas.