Crie um Pipeline de Implantação Contínua usando o Oracle Cloud Infrastructure DevOps
A entrega rápida de software é essencial para a execução eficiente de seus aplicativos na nuvem. O Oracle Cloud Infrastructure (OCI) DevOps fornece uma experiência de implantação contínua de ponta a ponta para desenvolvedores. O OCI DevOps inclui a implantação de pipelines para automatizar seu processo de implantação de software (CD) contínuo em plataformas OCI: instâncias do Container Engine for Kubernetes (OKE), Funções e Computação.
A automaçã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 o tempo de inatividade durante implementações e automatiza a complexidade de atualizar aplicativos. O OCI DevOps pode ser usado tanto pelos clientes que migram cargas de trabalho locais quanto de outras nuvens para o OCI quanto pelos clientes que desenvolvem novos aplicativos no OCI.
Arquitetura
Nesta arquitetura de referência, um aplicativo Hello World de amostra é implantado com o OCI DevOps. O aplicativo Hello World já foi criado e está pronto para ser implantado. O aplicativo é implantado em três ambientes de destino diferentes: OKE, instâncias do serviço Compute e Functions. Para simplificar o processo, o Terraform é usado para automação da infraestrutura.
O diagrama a seguir ilustra essa arquitetura de referência.

Descrição da ilustração dev-ops-deployment-pipeline.png
deployment-pipeline-devops-arch-oracle.zip
- Região
Uma região do OCI é 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).
A arquitetura usa uma única região.
- DevOps project
Um projeto DevOps é um agrupamento lógico de recursos necessários para implementar sua carga de trabalho de integração e implantação contínua (CI/CD). Os recursos DevOps podem ser artefatos, pipelines de implantação e ambientes. Os projetos DevOps facilitam a ativação de logs, monitoramento e notificações para todos os seus recursos DevOps.
- Pipeline de implantação
Um pipeline de implantação contém os requisitos que devem ser atendidos para fornecer 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çãoOs estágios são ações individuais que ocorrem durante uma execução de um pipeline. O pipeline de implantação DevOps inclui os seguintes tipos de estágio predefinidos para você usar no processo de liberação:
- Implantação incremental: uma versão incremental para o OKE, Funções ou grupos de instâncias.
- Espera N segundos.
- Aprovação manual: prossiga se uma aprovação for fornecida; pare se uma aprovação for rejeitada.
- Chamar função: Execute tarefas personalizadas e integração chamando uma função e passe um artefato de parâmetros de solicitação.
- DevOps artefato
Um artefato DevOps é uma referência ou um ponteiro para qualquer arquivo, binário, pacote, manifesto ou imagem que compõe seu aplicativo. Ao criar um artefato, você precisa informar ao Oracle DevOps o local de origem do artefato real. DevOps suporta repositórios do OCI Container Image Registry e do OCI Artefato Registry.
- Repositório de artefatos
O Repositório de Artefato é usado para criar repositórios para agrupar artefatos semelhantes. Depois que o repositório for criado, os artefatos poderão ser carregados para eles. Esses artefatos são um conjunto de arquivos de texto, binários e manifestos de implantação que serão fornecidos 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.
- Serviços de registro e notificações do OCI
O serviço de Log do OCI armazena logs relacionados à implantação. A saída de runtime de implantação e os resultados finais da implantação são mostrados como entradas de log. O serviço OCI Notifications fornece visibilidade no estado mais recente do projeto de implantação e seus recursos e executa qualquer ação necessária. Por exemplo, você é notificado quando um evento importante, como um estágio em um pipeline de implantação aguardando aprovação. Quando receber a mensagem de notificação, você poderá ir para pipelines de implantação DevOps e aprovar o estágio.
- Ambientes de implantação
Um ambiente é uma coleção de recursos de computação de um cliente em que os artefatos são implantados. Os ambientes podem ser uma função, uma máquina virtual de computação (VM) ou uma instância bare metal ou um cluster do OKE.
- O cluster do Oracle Kubernetes (OKE): o Oracle 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 do serviço Compute: o serviço OCI Compute permite que você provisione e gerencie hosts de computação na nuvem. Você pode iniciar instâncias do Compute com formas que atendam aos seus requisitos de recursos para CPU, memória, largura de banda da rede e armazenamento.
- Funções: O Oracle Functions é uma plataforma Functions-as-a-Service totalmente gerenciada, multitenant, altamente escalável, sob demanda. Foi desenvolvido em OCI de nível empresarial e desenvolvido pelo Fn Project open source engine.
Recomendações
- Formatos de computação
Essa arquitetura usa uma imagem do SO Oracle Linux com formato flexível E3 ou 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.
- 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 hospedar o Oracle Container Engine for Kubernetes. Você também pode usar uma VCN privada. Nesse caso, use um gateway NAT para conceder ao cluster acesso pela internet pública.
- OKE
Essa arquitetura implanta o cluster do OKE como um dos ambientes de destino. Os nós de trabalho são implantados em um SO Oracle Linux E3 ou E4. Essa arquitetura usa três nós de trabalho no cluster, mas você pode criar até 1.000 nós em cada cluster.
- Funções
Se você escolher a arquitetura para implantar em uma Função OCI, um novo aplicativo e função do Functions serão criados em sua tenancy.
- Grupo de instâncias
Se você escolher a arquitetura para implantar em um grupo de instâncias, terá novas instâncias do serviço Compute para sua escolha de forma criada em sua tenancy.
- Registro de Imagem de Contêiner
Esta arquitetura implanta o Registro 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 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.
- Registro de 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 Functions. 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 do software são carregados e baixados do repositório de registro de artefato.
Considerações
Considere os pontos a seguir ao implantar essa arquitetura de referência.
- Implantações suportadas por DevOps
DevOps suporta implantações no OKE, hosts de Computação e Funções. Esta arquitetura é disponibilizada em um cluster do OKE. Considere a implantação em outros pontos finais com base nos requisitos.
- Suporte ao Linux
Somente hosts Linux são suportados para implantações de grupo de instâncias para instâncias do serviço Compute.
- Artefatos implantados
Os artefatos para implantação com DevOps precisam estar em um registro de artefato do OCI ou em um repositório de registro de imagem de contêiner.
- Agrupando aplicativos
Como prática recomendada, agrupe 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 como amostras de pilhas no Oracle Cloud Infrastructure Resource Manager. Você também pode fazer download do código do GitHub e personalizá-lo de acordo com seus requisitos específicos.
- Implante usando a pilha de amostra no Oracle Cloud Infrastructure Resource Manager:
- Clique no botão de implantação do seu caso de uso específico para acessar o Resource Manager:
Serviço Oracle Container Engine for Kubernetes 
Grupo de Instâncias 
Funções 
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 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.
- Se nenhuma alteração adicional for necessária, retorne à página Detalhes da Pilha, clique em Ações do Terraform e selecione Aplicar.
- Clique no botão de implantação do seu caso de uso específico para acessar o Resource Manager:
- Implante usando o código do Terraform no GitHub:
- Vá para GitHub.
- Clone ou faça download do repositório no computador local.
- Siga as instruções no documento
README.