Desenvolvimento de Aplicativos Modernos - Orientado a Eventos

O padrão de aplicativos orientado a eventos permite que você responda quase em tempo real às alterações nos recursos da nuvem e aos eventos gerados pelo aplicativo.

Um evento é qualquer ocorrência ou alteração significativa em um sistema, por exemplo, um objeto recém-criado no armazenamento de objetos ou um alerta de desempenho no seu aplicativo. Esse padrão de aplicativo apresenta os princípios e a arquitetura de design para criar aplicativos escaláveis, seguros, confiáveis e orientados a eventos de alto desempenho.

O Oracle Cloud Infrastructure (OCI) fornece serviços como OCI Service Connector Hub e Eventos do OCI para ajudá-lo a criar aplicativos orientados a eventos. O OCI Service Connector Hub permite criar conectores de serviço para mover dados entre serviços. Um conector de serviço especifica o serviço de origem que contém os dados a serem movidos, as tarefas opcionais e o serviço de destino para entrega de dados quando as tarefas forem concluídas. Exemplos de tarefas opcionais incluem uma tarefa de função para processar dados da origem ou uma tarefa de filtro de log para filtrar dados de log da origem. Os serviços de origem suportados para conectores de serviço incluem OCI Monitoring, OCI Logging e OCI Streaming. Exemplos de serviços de destino incluem: Funções do OCI, Notificações do OCI e Armazenamento de Objetos do OCI. Você pode usar os Eventos do OCI para gerar eventos de alteração de recursos que podem ser ingeridos por conectores de serviço usando fluxos. Da mesma forma, seu aplicativo pode criar eventos personalizados e usar fluxos para roteá-los para conectores de serviço.

Princípios de Design

Use os seguintes princípios modernos de desenvolvimento de aplicativos ao projetar a arquitetura de seu aplicativo orientado a eventos:

  • Use plataformas de baixo código, se possível, e, caso contrário, use linguagens de programação maduras e estruturas leves

    Descreva seus dados de evento usando CloudEvents, um formato aberto e de padrão industrial. CloudEvents permitem descrever dados de eventos em um formato consistente e amplamente utilizado, além de fornecer kits de desenvolvimento de software (SDKs) para várias linguagens de programação, incluindo Java. Os eventos criados usando o Oracle Cloud Infrastructure Events usam o formato CloudEvents.

  • Use serviços gerenciados para eliminar a complexidade no desenvolvimento e nas operações de aplicativos

    Use serviços gerenciados para comunicar, processar e persistir dados de eventos.

    Use o OCI Service Connector Hub para orquestrar a movimentação de dados entre serviços. Use serviços gerenciados, como o OCI Functions ou o Oracle Container Engine for Kubernetes (OKE) para processar eventos. Use o OCI Notifications para conectar conectores de serviço a serviços downstream, como e-mail, SMS, Slack ou PagerDuty.

  • Monitoramento e rastreamento completos do instrumento

    Um roteador de eventos como o OCI Service Connector Hub e os Eventos do OCI produzem métricas no OCI Monitoring, facilitando o monitoramento de eventos do aplicativo e a criação de métricas e alarmes personalizados. Para rastreamento distribuído de ponta a ponta, crie painéis de controle personalizados com regras de registro (OCI Logging Analytics), bem como monitoramento baseado em alarme (OCI Notifications) para permitir que os administradores descubram e reajam rapidamente a quaisquer problemas. Além disso, um roteador de eventos tem a capacidade exclusiva de fornecer uma visão de painel único sobre a presença do evento.

Arquitetura

Essa arquitetura usa princípios modernos de desenvolvimento de aplicativos para criar aplicativos orientados a eventos.



arquitetura orientada a eventos loucos-oracle.zip

A arquitetura tem os seguintes componentes:

  • Streaming

    O Oracle Cloud Infrastructure Streaming oferece uma solução de armazenamento totalmente gerenciada, escalável e durável para a ingestão de fluxos de dados contínuos em alto volume, os quais você pode consumir e processar em tempo real. Você pode usar o Streaming para ingerir dados de alto volume, como logs de aplicativo, telemetria operacional, sequência de cliques na web ou para outros casos de uso nos quais os dados sejam produzidos e processados de modo contínuo e sequencial em um modelo de mensagem de publicação-assinatura.

  • Funções

    O Oracle Cloud Infrastructure Functions é uma plataforma totalmente gerenciada, multitenant, altamente escalável, sob demanda, do Functions-as-a-Service (FaaS). É alimentado pelo mecanismo de código aberto do Fn Project. As funções permitem que você implante seu código e o chame diretamente ou o acione em resposta a eventos. O Oracle Functions usa contêineres Docker hospedados no Oracle Cloud Infrastructure Registry.

  • Conectores de serviço

    O Oracle Cloud Infrastructure Service Connector Hub é uma plataforma de barramento de mensagens na nuvem que orquestra a movimentação de dados entre serviços no OCI. Você pode usar conectores de serviço para mover dados de um serviço de origem para um serviço de destino. Os conectores de serviço também permitem que você especifique opcionalmente uma tarefa (como uma função) a ser executada nos dados antes de serem entregues ao serviço de destino.

    Você pode usar o Oracle Cloud Infrastructure Service Connector Hub para criar rapidamente uma estrutura de agregação de logs para sistemas de informações de segurança e gerenciamento de eventos (SIEM).

  • Você pode usar conectores de serviço para mover dados de um serviço de origem para um serviço de destino. Os conectores de serviço também permitem que você especifique opcionalmente uma tarefa (como uma função) a ser executada nos dados antes de serem entregues ao serviço de destino.
  • Notificações

    O serviço Oracle Cloud Infrastructure Notifications transmite mensagens a componentes distribuídos por meio de um padrão publicar-assinar, entregando mensagens seguras, altamente confiáveis, de baixa latência e duráveis para aplicativos hospedados no Oracle Cloud Infrastructure.

Exemplo de Caso de Uso

O caso de uso Alarme em Dados de Log adota a arquitetura orientada a eventos para implementar alarmes para dados de log usando os serviços Oracle Cloud Infrastructure (OCI) Service Connector Hub, OCI Logging e OCI Monitoring.

Este caso de uso cria um conector de serviço e um alarme. O conector de serviço (OCI Service Connector Hub) processa e move dados de log do OCI Logging para o OCI Monitoring, enquanto o alarme é acionado por dados de log recebidos. Para obter detalhes, consulte o link para o cenário no tópico Explorar Mais.



caso de uso orientado a eventos-oracle.zip

Implantar

Universal Health Organization (UHO) é uma aplicação de amostra que segue os princípios da Modern App Development Framework. Especificamente, ele implementa elementos dos padrões de arquitetura orientados a Web ou Dispositivos Móveis, Mensagens e Eventos e está disponível em GitHub.
  1. Vá para GitHub.
  2. Clone ou faça download do repositório para seu computador local.
  3. Siga as instruções no documento README.

Alterar Log

Este log lista alterações significativas: