Implantar um Aplicativo baseado em Helm com o Oracle Cloud Infrastructure DevOps
A entrega rápida de software é essencial para a execução eficiente de seus aplicativos na nuvem. A automatização de versões de software com implantação de pipeline aumenta a produtividade do desenvolvedor e permite liberar recursos com mais frequência e com menos erros. Ele ajuda a evitar tempo de inatividade durante implantações e automatiza a complexidade da atualização de aplicativos.
O serviço DevOps do Oracle Cloud Infrastructure oferece uma experiência de implantação contínua de ponta a ponta para os desenvolvedores. O serviço DevOps do Oracle Cloud Infrastructure inclui pipelines de implantação para automatizar sua entrega de software contínua e seu processo de implantação (CD) para plataformas OCI (Oracle Cloud Infrastructure): instâncias do Oracle Cloud Infrastructure Container Engine for Kubernetes, Oracle Functions e Oracle Cloud Infrastructure Compute.
Os clientes que migram cargas de trabalho de nuvens locais ou outras para a OCI e os clientes que desenvolvem novos aplicativos na OCI podem usar o Oracle Cloud Infrastructure.
Arquitetura
Esta arquitetura mostra um aplicativo NodeJS de amostra implantado com o Gráfico Helm do Repositório de Código usando o serviço DevOps do Oracle Cloud Infrastructure (OCI). O aplicativo é implantado no cluster do Oracle Cloud Infrastructure Container Engine for Kubernetes (OKE). Para simplificar o processo, usamos o Terraform para a automação da infraestrutura.
O diagrama a seguir ilustra essa arquitetura de referência.

Descrição da ilustração Deployment-helm-based-app.png
implantação baseada em helm-app-oracle.zip
A arquitetura 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 das outras regiões, e grandes distâncias podem se separar (em países ou até mesmo continentes).
- 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 dão a você total controle sobre seu ambiente de rede. Uma VCN pode ter vários blocos CIDR não sobrepostos que você pode alterar após criar a VCN. Você pode segmentar uma VCN em sub-redes, que podem ter escopo em uma região ou em um domínio de disponibilidade. Cada sub-rede consiste em um intervalo contínuo de endereços que não se sobrepõem 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.
- Projeto DevOps do OCI
Um projeto DevOps do OCI é um agrupamento lógico de recursos necessários para implementar sua carga de trabalho de integração e implantação contínuas (CI/CD). Os recursos do OCI DevOps podem ser artefatos, pipelines de implantação e ambientes. Os projetos DevOps do OCI facilitam a ativação de log, monitoramento e notificações para seus recursos DevOps do OCI.
- Pipeline de build
Um pipeline de build obtém um ID de commit dos seus repositórios de código de origem e usa esse código de origem para executar suas instruções de build. Os pipelines de build definem um conjunto de estágios para o processo de criação: criar, testar e compilar artefatos de software, entregar artefatos a repositórios do OCI e, opcionalmente, acionar uma implantação. Você define o fluxo e as instruções de sua execução de criação no arquivo de especificação de criação.
-
Estágios de construção
Os estágios de criação são ações individuais que ocorrem durante uma execução de um pipeline de build. O pipeline de build do OCI DevOps inclui três estágios:- Criar Contêiner: Executa instruções
build_spec.yaml
para compilar, criar e preparar artefatos necessários. - Fazer Upload de Artefatos: Faz upload de todos os artefatos preparados, como imagens do docker, são enviados para o repositório configurado do Oracle Cloud Infrastructure Registry.
- Implantação de Trigger: aciona o pipeline de implantação para aplicar as alterações ao OKE configurado.
- Criar Contêiner: Executa instruções
- Pipeline de implantação
Um pipeline de implantação contém os requisitos que devem ser satisfeitos para entregar um conjunto de artefatos a um ambiente. Os pipelines contêm estágios, que são os blocos de construção de um pipeline. Um Pipeline pode ter estágios executados em série ou em paralelo, para que você possa controlar o fluxo e a lógica da sua release de software.
- Estágios de implantação
Os estágios são ações individuais que ocorrem durante uma execução de um pipeline. O pipeline de implantação do OCI DevOps inclui apenas um estágio predefinido chamado
Deploy Helm
para implantar o aplicativo Kubernetes usando o Gráfico Helm. O URL do Gráfico Helm e os artefatos opcionaisvalues.yaml
do arquivo OCI DevOps são enviados como argumentos para o estágio Implantar Helm. Durante a execução, o estágio Implantar Helm extrai o gráfico Helm do Oracle Cloud Infrastructure Registry e aplica o mesmo ao ambiente configurado DevOps do OKE OCI com um arquivovalues.yaml
fornecido opcionalmente. - DevOps artefato
Um artefato DevOps do OCI é uma referência ou ponteiro para qualquer arquivo, binário, pacote, manifesto ou imagem que compõe seu aplicativo. Ao criar um artefato, informe o OCI DevOps do local de origem do artefato real. O OCI DevOps suporta repositórios OCI Container Registry e OCI Artifacts Registry.
- Repositório de artefatos
O Repositório de Artefatos cria repositórios para agrupar artefatos semelhantes. Você pode fazer upload de artefatos para os repositórios depois que eles forem criados. Esses artefatos são um conjunto de arquivos de texto, binários e manifestos de implantação que serão entregues ao ambiente de implantação de destino. Cada artefato tem um nome, que é feito de seu caminho: versão. O caminho é uma string para organizar os artefatos.
- Helm
O Helm é um gerenciador de pacotes do Kubernetes que gerencia a implantação de aplicativos como um conjunto de gráficos Helm, o que permite gerenciar facilmente os vários serviços individuais e seus ciclos de vida.
O módulo Helm do Oracle Linux instala o Helm em um cluster (módulo Kubernetes).
- Gráfico de Helm
Os manifestos YAML do Kubernetes são combinados em um único pacote que pode ser implantado nos clusters do Kubernetes. Os gráficos Helm contêm modelos de arquivos de manifesto YAML do Kubernetes e um arquivo
values.yaml
para fornecer os valores de modelo padrão. Use gráficos de Helm para implantar um aplicativo ou um componente de um aplicativo maior. - Serviços de OCI Logging e OCI Notifications
Os serviços Oracle Cloud Infrastructure Logging e Oracle Cloud Infrastructure Notifications armazenam logs relacionados à implantação. A saída de runtime da implantação e os resultados finais da implantação são mostrados como entradas de log. O serviço OCI Notifications oferece visibilidade sobre o estado mais recente do projeto de implantação e seus recursos e toma as medidas necessárias.
- Ambientes de implantação
Um ambiente é uma coleção de recursos de computação de um cliente em que artefatos são implantados. Os ambientes podem ser uma instância de função, de VM (máquina virtual) ou bare metal ou um cluster OKE.
-
Cluster do Oracle Kubernetes (OKE): O OCI Container Engine for Kubernetes é um serviço totalmente gerenciado, escalável e altamente disponível que você pode usar para implantar seus aplicativos de contêineres na nuvem.
-
Instâncias de computação: O serviço OCI Compute permite provisionar e gerenciar hosts de computação na nuvem. Você pode iniciar instâncias do Compute com configurações que atendem aos seus requisitos de recursos para CPU, memória, largura de banda da rede e armazenamento.
-
Funções: O Oracle Functions é uma plataforma multi-tenant, altamente escalável, sob demanda, Functions-as-a-Service. Ela foi criada na OCI de nível empresarial e desenvolvida pelo mecanismo de código-fonte aberto do Fn Project.
-
Recomendações
- VCN
Ao criar 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 às sub-redes na VCN. Use blocos CIDR que estão 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.
Esta arquitetura usa uma VCN pública para hospedar o cluster do OKE. Você também pode usar uma VCN privada. Nesse caso, use um gateway NAT para conceder ao cluster acesso pela internet pública.
- Formas de computação
Essa arquitetura usa uma imagem do SO Oracle Linux com uma forma flex E4 com recursos mínimos para hospedar hosts de computação nos nós de cluster do OKE. Se seu aplicativo precisar de mais memória ou núcleos, você poderá escolher outra forma.
- Kubernetes (OKE)
Essa arquitetura implanta o cluster do OKE como ponto final de destino. Os nós de trabalho são implantados em um SO Oracle Linux E4. Esta arquitetura usa três nós de trabalho no cluster, mas você pode criar até 1.000 nós em cada cluster.
- Registro de Imagem de Contêiner
Essa 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 Registro 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. Nesta arquitetura, o mesmo registro de contêiner é usado para armazenar gráficos de Helm também.
- Registro de artefatos
Essa arquitetura cria um artefato para o software e a configuração usados por um cluster do OKE. A arquitetura cria um repositório de registro de artefato para uso interno. Os binários, o texto e as configurações de implantação de software são carregados no repositório de registro de artefatos e baixados dele.
Considerações
Considere os seguintes pontos ao implantar essa arquitetura de referência.
- Implantações suportadas do Oracle Cloud Infrastructure DevOps
O DevOps suporta implantações no Kubernetes (OKE), nos hosts do serviço Compute e no Oracle Functions. Essa arquitetura implanta em um cluster do OKE usando o Gráfico Helm. Considere a implantação em outros pontos finais com base nos requisitos.
- Hosts suportados
Somente hosts Linux são suportados para implantações de grupo de instâncias em instâncias do Oracle Cloud Infrastructure Compute.
- Artefatos
Os artefatos a serem implantados com o Oracle Cloud Infrastructure DevOps devem estar em um repositório de Registro de Artefatos ou de registro de imagem de contêiner do Oracle Cloud Infrastructure.
- Projetos
A melhor prática é agrupar cada aplicativo e todos os seus microsserviços em um único projeto.
Implantar
O código do Terraform para esta arquitetura de referência está disponível no GitHub.
- Implante usando a pilha de amostra no Oracle Cloud Infrastructure Resource Manager:
- Clique em
.
Se você ainda não estiver conectado, informe a tenancy e as credenciais do usuário.
- Selecione a região na qual você deseja implantar a pilha.
- Siga os prompts na tela e as instruções para criar a pilha.
- Após criar a pilha, clique em Ações do Terraform e selecione Planejar.
- Aguarde a conclusão da tarefa e revise o plano.
Para fazer qualquer alteração, retorne à página Detalhes da Pilha, clique em Editar Pilha e faça as alterações necessárias. Em seguida, execute a ação Planejar novamente.
- Se nenhuma alteração adicional for necessária, retorne à página Detalhes da Pilha, clique em Ações do Terraform e selecione Aplicar.
- Clique em
- Implante usando o código do Terraform no GitHub:
- Vá para GitHub.
- Clone ou faça download do repositório para seu computador local.
- Siga as instruções no documento
README
.