Use o OCI DevOps para implantar gráficos Helm com Instâncias de Proveniência e Contêiner por meio do estágio Shell

A entrega rápida de software é essencial para executar com eficiência seus aplicativos na nuvem. O serviço Oracle Cloud Infrastructure DevOps (OCI DevOps) fornece uma plataforma de integração e implantação contínuas (CI/CD) para desenvolvedores.

Você pode usar o serviço OCI DevOps para criar, testar e implantar facilmente software e aplicativos no Oracle Cloud. Os pipelines de criação e implantação do OCI DevOps reduzem os erros acionados por alterações e diminuem o tempo gasto na criação e implantação de versões.

O serviço OCI DevOps também fornece repositórios Git privados para armazenar seu código e suporta conexões com o código externo repositories.Whether que você está migrando cargas de trabalho para o Oracle Cloud Infrastructure (OCI), de nuvens locais ou outras ou desenvolvendo novos aplicativos no OCI, você pode usar o serviço DevOps do OCI para simplificar seu ciclo de vida de entrega de software.

Arquitetura

Nesta arquitetura de referência, implantaremos uma implantação de aplicativo nativa da nuvem usando o OCI DevOps. Oracle Container Engine for Kubernetes (OKE) e Instâncias de Contêiner do OCI são usadas como destino de implantação para o OCI DevOps.

Os principais recursos abordados nesta arquitetura de referência são:

  • Implantar Gráfico Helm com verificações de Proveniência e Integridade: Assinando um pacote Helm e validando a integridade usando as chaves de proteção de Privacidade GNU via pipelines de implantação.
  • Use o estágio Shell para implantar o aplicativo nas Instâncias do Contêiner do OCI: O estágio Shell permite que você execute comandos personalizados no pipeline de implantação. Esse estágio pode ser adicionado a qualquer momento no pipeline de implantação. Nesta arquitetura de referência, usamos o estágio Shell para implantar um aplicativo nas Instâncias do Contêiner do OCI.
  • Acionar execução baseada em arquivo do pipeline de build do OCI: No OCI DevOps, uma execução de build pode ser acionada automaticamente quando você faz commit de suas alterações em um repositório de código. Usando isso, podemos definir a exclusão e a inclusão de um conjunto de arquivos/pastas em relação aos quais os pipelines de build são executados durante uma alteração de código.
  • Execute estágios de criação gerenciados usando o executor de build personalizado: O executor de build personalizado permite definir a OCPU e a memória desejadas para o executor de build para suportar os recursos necessários para executar instruções de build.
  • Use o Terraform com backend de estado remoto do pipeline de build DevOps do OCI: O bucket do OCI Object Storage compatível com S3 é usado como backend remoto para armazenar os estados do Terraform. O Terraform é executado no pipeline de build do OCI, que é ativado com o controlador de recursos para que o cliente possa controlar o acesso ao recurso com base em políticas.

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



oci-devops-helm-shell-oracle.zip

A arquitetura tem os seguintes componentes:

  • Locação

    Uma tenancy é uma partição segura e isolada que a Oracle configura no Oracle Cloud quando você se inscreve no Oracle Cloud Infrastructure. Você pode criar, organizar e administrar seus recursos no Oracle Cloud dentro da sua tenancy. Uma tenancy é sinônimo de empresa ou organização. Geralmente, uma empresa terá uma única tenancy e refletirá sua estrutura organizacional dentro dessa tenancy. Em geral, uma única tenancy é associada a uma única assinatura e, em geral, uma única assinatura só tem uma tenancy.

  • Região

    Uma região do Oracle Cloud Infrastructure é uma área geográfica localizada que contém um ou mais data centers, denominada 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).

  • Compartimento

    Os compartimentos são partições lógicas entre regiões em uma tenancy do Oracle Cloud Infrastructure. Use compartimentos para organizar seus recursos no Oracle Cloud, controlar o acesso aos recursos e definir cotas de uso. Para controlar o acesso aos recursos em um determinado compartimento, você define políticas que especificam quem pode acessar os recursos e quais ações eles podem executar.

  • Repositório de Código

    Os repositórios Git privados podem ser hospedados pelo serviço DevOps do OCI. Você pode armazenar, gerenciar e desenvolver o código-fonte com os repositórios de código DevOps do OCI.

  • Pipeline de Build

    O pipeline de build define um conjunto de estágios para o processo de build: criar, testar e compilar artefatos de software, entregar artefatos a repositórios do OCI e, opcionalmente, acionar uma implantação.

  • Estágio de build gerenciado

    O estágio de build gerenciado, cria e testa seu software com um runtime de build gerenciado pelo serviço DevOps do OCI rápido e escalável que executa instruções de build. Nesta arquitetura de referência, estamos usando um estágio de construção com formas padrão (OCPUs e memória predefinidas) e formas personalizadas (valores definidos pelo usuário de OCPUs e memória).

  • Entregue o estágio do artefato

    O estágio de entrega de artefato é um dos estágios de criação que ajudam a enviar um artefato ou uma imagem de contêiner ao OCI Container Registry ou ao OCI Artifacts Registry, postar o estágio de criação gerenciado.

  • Implantar pipeline

    Uma sequência de etapas para implantar um conjunto de artefatos em um ambiente de destino. Um pipeline de implantação contém estágios executados sequencialmente ou em paralelo.

  • Estágio de implantação do gráfico de Helm

    O Helm é um gerenciador de pacotes de código-fonte aberto para Kubernetes que fornece a capacidade de compartilhar, empacotar e implantar software criado para Kubernetes. O serviço DevOps do OCI suporta a implantação de gráficos Helm para clusters do Container Engine for Kubernetes (OKE). O estágio de implantação do gráfico Helm também verifica a integridade do gráfico Helm antes da implantação.

  • Estágio de implantação do shell

    O estágio de shell permite executar comandos personalizados no pipeline de implantação. Esse estágio pode ser adicionado a qualquer momento no pipeline de implantação.

  • Instâncias de Contêiner

    Instâncias de Contêiner do OCI é um serviço de computação sem servidor que permite executar contêineres de forma rápida e fácil sem gerenciar servidores. As Instâncias de Contêiner executam seus contêineres em computação sem servidor otimizada para cargas de trabalho de contêiner que fornecem o mesmo isolamento que as máquinas virtuais.

  • Vault

    O Oracle Cloud Infrastructure Vault permite que você gerencie centralmente as chaves de criptografia que protegem seus dados e as credenciais secretas usadas para proteger o acesso aos seus recursos na nuvem. Você pode usar o serviço Vault para criar e gerenciar vaults, chaves e segredos.

  • Object Storage

    O serviç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 serviço Object Storage pode armazenar um volume ilimitado 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.

  • Log

    O serviço Oracle Cloud Infrastructure Logging é um painel único altamente escalável e totalmente gerenciado para todos os logs na sua tenancy. O serviço Logging fornece acesso a logs de recursos do Oracle Cloud Infrastructure. Esses logs incluem informações críticas de diagnóstico que descrevem o desempenho e o acesso dos recursos.

  • Notificações

    Use o serviço Oracle Cloud Infrastructure Notifications a fim de configurar canais de comunicação para publicar mensagens usando tópicos e assinaturas.

Recomendações

Use as recomendações a seguir como ponto de partida. Seus requisitos podem ser diferentes da arquitetura descrita aqui.
  • VCN

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

    Selecione blocos CIDR que não se sobrepõem a nenhuma outra rede (no Oracle Cloud Infrastructure, no seu data center local ou em outro provedor de nuvem) para a qual você pretende configurar conexões privadas.

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

    Ao projetar as sub-redes, considere seu fluxo de tráfego e os requisitos de segurança. Anexe todos os recursos dentro de uma camada ou atribuição específica à mesma sub-rede, que pode servir como limite de segurança.

  • Formas de computação

    Essa arquitetura usa uma imagem do SO Oracle Linux com uma configuração flex E4 com recursos mínimos para hospedar hosts de computação ou nós Virtuais nos nós de cluster do OKE. Se seu aplicativo precisar de mais memória ou núcleos, você poderá escolher outra configuração.

  • Registro do artefato

    Essa arquitetura cria um artefato para o software e a configuração usados por uma implantação de grupo de instâncias, OKE e Funções. A arquitetura cria um repositório de registro de artefato para uso interno. Os binários de software, o texto e as configurações de implantação são submetidos a upload e download no repositório de registro de artefato.

  • Registro de Imagem de Contêiner

    Esta arquitetura implanta o Registry como um registro privado do Docker para uso interno. As imagens do Docker são enviadas e extraídas do registro. Você também pode usar o Registry como um registro público do Docker, permitindo que qualquer usuário com acesso à internet e conhecimento do URL apropriado extraia imagens de repositórios públicos no Oracle Cloud.

  • Integridade e Segurança

    Há várias áreas focadas aqui para garantir a segurança e a integridade do software de aplicativo. O OCI Vault é usado para armazenar a criptografia do gráfico helm e garantir a validação do gráfico antes da implantação. Os registros (Artefato e Contêiner) garantem que as imagens e artefatos do aplicativo sejam salvos e armazenados com a segurança necessária. Várias regras de segurança e regras de roteamento necessárias são aplicadas por meio da rede do OCI Virtual Cloud para permitir apenas o tráfego de rede necessário para o aplicativo e a infraestrutura. Além disso, o armazenamento de objetos é marcado como privado para que o tráfego seja protegido e controlado.

  • Object Storage

    O serviço Object Storage oferece acesso rápido a grandes quantidades de dados estruturados e não estruturados de qualquer tipo de conteúdo, incluindo backups de bancos de dados, dados de análise e conteúdo avançado, como imagens e vídeos. Você pode armazenar de forma segura e depois recuperar dados diretamente da internet ou de dentro da plataforma da nuvem. Você pode dimensionar o armazenamento de forma integrada sem sofrer qualquer degradação no desempenho ou na confiabilidade do serviço. Use armazenamento padrão para armazenamento "dinâmico" que você precisa acessar de forma rápida, imediata e frequente. Use o armazenamento de arquivos compactados para armazenamento "frio" que você retém por longos períodos e raramente acessa. O código do aplicativo é definido em um repositório hospedado de forma privada. Além de todos os recursos necessários, as políticas de Identidade do OCI são aplicadas de acordo.

Considerações

Ao usar o serviço OCI DevOps para implantar uma plataforma de integração e implantação contínuas (CI/CD), considere esses fatores.

  • Implantações suportadas pelo DevOps

    DevOps suportam implantações no Oracle Container Engine for Kubernetes (OKE), hosts de Computação e Funções do OCI. Essa arquitetura implanta em um cluster do OKE e usa um estágio de shell para outros destinos possíveis. Considere a implantação em outros pontos finais com base em seus requisitos específicos.

  • Artefatos implantados

    Os artefatos a serem implantados com DevOps devem estar em um repositório do OCI Artifacts Registry ou Container Image Registry.

  • Agrupando aplicativos

    Como prática recomendada, agrupe cada aplicativo e todos os seus microsserviços em um único projeto.

Implantação

O código do Terraform para essa arquitetura de referência está disponível como uma pilha de amostra no Oracle Cloud Infrastructure Resource Manager. Você também pode fazer download do código em GitHub e personalizá-lo para atender aos seus requisitos específicos.

  • Implante usando a pilha de amostra no 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. Selecione a região na qual você deseja implantar a pilha.
    3. Siga os prompts na tela e as instruções para criar a pilha.
    4. Depois de criar a pilha, clique em Ações do Terraform e selecione Planejar.
    5. 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 novamente a ação Plano.

    6. 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 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.

Aquisições

  • Author: Rahul M R