Implantar um Aplicativo sem Servidor acionado por Evento

O Oracle Functions é uma plataforma sem servidor, altamente escalável e totalmente gerenciada criada no Oracle Cloud Infrastructure e com a tecnologia do mecanismo de código aberto do Fn Project. Os desenvolvedores podem usá-lo para criar e implantar código que gere valor comercial sem se preocupar com provisionamento ou gerenciamento da infraestrutura subjacente. O Oracle Functions é nativo do contêiner com funções empacotadas como imagens de contêiner do Docker.

Arquitetura

Esta arquitetura de referência chama o Oracle Functions com o serviço Oracle Cloud Infrastructure Events, que responde automaticamente às alterações feitas no Oracle Cloud Infrastructure Object Storage. O upload de uma imagem de amostra para o Object Storage aciona o serviço Events, que, por sua vez, chama o Oracle Functions. O Fn Project suporta a maioria das linguagens de programação. Essa arquitetura usa o Java na função para extrair os metadados da imagem carregada e armazená-los no Oracle Cloud Infrastructure Object Storage.

O diagrama a seguir ilustra essa arquitetura de referência.

Veja a seguir a descrição da ilustração serverless-oci.png
Descrição da ilustração serverless-oci.png

serverless-oci-oracle.zip

A arquitetura do Oracle Functions tem os seguintes componentes:

  • Região

    Uma região do Oracle Cloud Infrastructure é uma área geográfica localizada que contém um ou mais data centers, denominados domínios de disponibilidade. As regiões são independentes de outras regiões, e grandes distâncias podem separá-las (entre países ou mesmo continentes).

  • Domínios de disponibilidade

    Os domínios de disponibilidade são data centers independentes e independentes dentro de uma região. Os recursos físicos de cada domínio de disponibilidade são isolados dos recursos de outros domínios de disponibilidade, o que fornece tolerância a falhas. Os domínios de disponibilidade não compartilham infraestrutura como energia ou resfriamento ou a rede interna de domínios de disponibilidade. Portanto, uma falha em um domínio de disponibilidade provavelmente não afetará os outros domínios de disponibilidade na região.

  • Rede virtual na nuvem (VCN) e sub-redes

    Uma VCN é uma rede personalizável definida por software que você configura em uma região do Oracle Cloud Infrastructure. Como as redes de data center tradicionais, as VCNs permitem controle total sobre seu ambiente de rede. Uma VCN pode ter vários blocos CIDR não sobrepostos que você poderá alterar após criar a VCN. Você pode segmentar uma VCN em sub-redes, que podem ter como escopo uma região ou um domínio de disponibilidade. Cada sub-rede consiste em um intervalo contíguo de endereços que não são sobrepostos com as outras sub-redes da VCN. Você pode alterar o tamanho de uma sub-rede após a criação. Uma sub-rede pode ser pública ou privada.

    A função nesta arquitetura de referência é implantada em uma sub-rede regional pública.

  • Oracle Functions

    O Oracle Functions permite que você implante seu código, chame-o diretamente ou acione-o em resposta a eventos. O Oracle Functions é acionado quando o serviço Events o chama, processa a imagem e armazena os metadados de volta ao Object Storage. O Oracle Functions usa contêineres Docker hospedados no Oracle Cloud Infrastructure Registry.

  • Eventos

    Os serviços do Oracle Cloud Infrastructure emitem eventos, que são mensagens estruturadas que indicam alterações em recursos. Os eventos incluem operações de criação, leitura, atualização ou exclusão (CRUD), alterações no estado do ciclo de vida do recurso e eventos do sistema que afetam um recurso. Um evento poderá ser emitido quando um backup terminar ou falhar, ou quando um arquivo em um bucket do Object Storage for adicionado, atualizado ou excluído.

  • Armazenamento de Objetos

    O Oracle Cloud Infrastructure Object Storage é uma plataforma de armazenamento de alto desempenho em escala de internet que oferece durabilidade de dados confiável e econômica. O Object Storage pode armazenar uma quantidade ilimitada de dados não estruturados de qualquer tipo de conteúdo, incluindo dados analíticos e conteúdo avançado, como imagens e vídeos. Duas camadas de armazenamento distintas atendem à necessidade de armazenamento "hot" (Padrão) e armazenamento "cold" (Arquivo Compactado) acessados com menos frequência. O Armazenamento de Objetos Padrão destina-se a dados que você precisa acessar de forma rápida, imediata e frequente. O serviço Archive Storage é para dados que você precisa acessar raramente ou raramente, mas que devem ser mantidos e preservados por longos períodos.

Recomendações

Os requisitos podem diferir da arquitetura descrita aqui. Use as recomendações a seguir como ponto de partida.

  • VCN

    Quando você cria uma VCN, determine o número de blocos CIDR necessários e o tamanho de cada bloco com base no número de recursos que você planeja anexar a sub-redes na VCN. Use blocos CIDR que estejam dentro do espaço de endereço IP privado padrão.

    Depois de criar uma VCN, você poderá alterar, adicionar e remover seus blocos CIDR.

    Essa arquitetura usa uma VCN pública para implantar a função. A função é hospedada em uma sub-rede regional pública na VCN. Você também pode usar uma VCN privada. Nesse caso, você deve usar um gateway NAT para ter acesso à internet.

  • Oracle Functions

    Nesta arquitetura, a programação Java foi usada para desenvolver as funções. Como o Fn Project suporta várias linguagens de programação, você pode usar a linguagem de sua escolha para desenvolver as funções e implantá-las.

  • Armazenamento de Objetos

    Essa arquitetura usa o Armazenamento de Objetos Padrão para fazer upload de uma imagem e armazená-la, de forma que o serviço de Eventos possa selecioná-la quando o objeto for criado. O Object Storage armazena os metadados sobre o objeto após os processos do Functions.

  • Eventos

    Nesta arquitetura, o serviço Oracle Cloud Infrastructure Events é configurado para ouvir alterações na criação do Object Storage. O serviço é chamado depois que o upload do objeto é feito no Object Storage e chama a função para processamento.

Considerações

  • Disponibilidade

    O serviço Events não está disponível em regiões dentro do realm do Government Cloud.

  • Capacidade

    Essa arquitetura usa um aplicativo Java de amostra para gravar as funções. No entanto, você pode usar a linguagem de programação de sua escolha.

  • Segurança

    Use políticas para restringir quem pode acessar os recursos do Oracle Cloud Infrastructure que sua empresa tem e como.

    Para o Object Storage, a criptografia é ativada por padrão e não pode ser desativada.

    Todo o acesso às funções implantadas no Oracle Functions é controlado por meio do Oracle Cloud Infrastructure Identity and Access Management (IAM). O IAM permite que privilégios de chamada de função e gerenciamento de funções sejam atribuídos a usuários e grupos de usuários específicos.

  • Custo

    Você paga apenas pelos recursos usados enquanto uma função está em execução.

Implantar

O código do Terraform para esta arquitetura de referência está disponível no GitHub. Você pode colocar o código no Oracle Cloud Infrastructure Resource Manager com um único clique, criar a pilha e implantá-la. Como alternativa, você pode fazer download do código do GitHub para seu computador, personalizar o código e implantar a arquitetura usando a CLI (interface de linha de comando) do Terraform.

  • Implante usando o Oracle Cloud Infrastructure Resource Manager:
    1. Clique em Implantar no Oracle Cloud

      Se você ainda não estiver conectado, informe a tenancy e as credenciais do usuário.

    2. Revisar e aceitar os termos e as condições.
    3. Selecione a região na qual você deseja implantar a pilha.
    4. Siga os prompts na tela e as instruções para criar a pilha.
    5. Após criar a pilha, clique em Ações do Terraform e selecione Planejar.
    6. Aguarde a conclusão do job e revise o plano.

      Para fazer alterações, retorne à página Detalhes da Pilha, clique em Editar Pilha e faça as alterações necessárias. Em seguida, execute a ação Plano novamente.

    7. Se nenhuma alteração adicional for necessária, retorne à página Detalhes da Pilha, clique em Ações do Terraform e selecione Aplicar.
  • Implante usando o código do Terraform no GitHub:
    1. Vá para GitHub.
    2. Clone ou faça download do repositório no computador local.
    3. Siga as instruções no documento README.

Alterar Log

Este log lista apenas as alterações significativas: