Para criar um pipeline de integração contínua e entrega contínua (CICD) no Code Stream, é possível usar o modelo de pipeline inteligente de CICD. Para planejar a compilação nativa de CI/CD, colete as informações para o modelo de pipeline inteligente antes de criar o pipeline neste plano de exemplo.
Para criar um pipeline de CI/CD, é necessário planejar os estágios de integração contínua (continuous integration, CI) e entrega contínua (continuous delivery, CD) do pipeline.
Depois que você inserir as informações no modelo de pipeline inteligente e salvá-las, o modelo criará um pipeline que inclui estágios e tarefas. Ele também indica o destino de implantação da sua imagem com base nos tipos de ambiente selecionados, como Dev e Prod. O pipeline publicará a imagem do contêiner e executará as ações necessárias para executá-lo. Após a execução do pipeline, você poderá monitorar as tendências nas execuções de pipeline.
Quando um pipeline inclui uma imagem do Docker Hub, você deve garantir que essa imagem tenha cURL ou wget incorporado antes de executar o pipeline. Quando o pipeline é executado, o Code Stream baixa um arquivo binário que usa cURL ou wget para executar comandos.
Para obter informações sobre a configuração do espaço de trabalho, consulte Como configurar o espaço de trabalho do pipeline.
Como planejar o estágio de integração contínua (CI)
Para planejar o estágio de CI do pipeline, defina os requisitos externos e internos, e determine as informações que serão necessárias à parte de CI do modelo de pipeline inteligente. Aqui está um resumo.
Neste exemplo, é usado um espaço de trabalho do Docker.
Endpoints e repositórios que serão necessários:
- Um repositório de código-fonte no qual os desenvolvedores verificam seus códigos. O Code Stream recebe o código mais recente para o pipeline quando os desenvolvedores confirmam as alterações.
- Um endpoint do tipo de serviço GitHub-Enterprise, GitLab-Enterprise ou Bitbucket-Enterprise para o repositório no qual reside o código-fonte do desenvolvedor.
- Um endpoint do Docker para o host de compilação do Docker que executará os comandos de compilação dentro de um contêiner.
- Um endpoint do Kubernetes para que o Code Stream possa implantar sua imagem em um cluster do Kubernetes.
- Uma imagem do construtor que cria o contêiner no qual os testes de integração contínua são executados.
- Um endpoint de registro de imagem para que o host de compilação do Docker possa receber a imagem do construtor a partir dele.
Você precisará de acesso a um projeto. O projeto agrupa todo o seu trabalho, incluindo pipeline, endpoints e painéis. Verifique se você é membro de um projeto no Code Stream. Se não for, peça a um administrador do Code Stream para adicioná-lo como membro de um projeto. Consulte Como adicionar um projeto no Code Stream.
Você precisará de um webhook Git que permita que o Code Stream use o gatilho Git para disparar o pipeline quando os desenvolvedores confirmam alterações de código. Consulte Como usar o gatilho Git no Code Stream para executar um pipeline.
Seus conjuntos de ferramentas de compilação:
- Seu tipo de compilação, como Maven.
- Todas as ferramentas de compilação pós-processo usadas, como JUnit, JaCoCo, Checkstyle e FindBugs.
Sua ferramenta de publicação:
- Uma ferramenta como o Docker que implantará seu contêiner de compilação.
- Uma tag de imagem, que é a ID de confirmação ou o número da compilação.
Seu espaço de trabalho de compilação:
- Um host de compilação do Docker, que é o endpoint do Docker.
- Um registro de imagem. A parte de CI do pipeline recebe a imagem do endpoint do registro selecionado. O contêiner executa as tarefas de CI e implanta sua imagem. Se o registro precisar de credenciais, será necessário criar um endpoint de Registro de imagem e, em seguida, selecioná-lo aqui para que o host possa extrair a imagem do registro.
- O URL da imagem do construtor que cria o contêiner no qual as tarefas de integração contínua são executadas.
Como planejar o estágio de entrega contínua (CD)
Para planejar o estágio de CD do pipeline, defina os requisitos externos e internos, e determine as informações que serão inseridas na parte de CD do modelo de pipeline inteligente.
Endpoints que serão necessários:
- Um endpoint do Kubernetes para que o Code Stream possa implantar sua imagem em um cluster do Kubernetes.
Arquivos e tipos de ambiente:
- Todos os tipos de ambiente em que o Code Stream implantará seu aplicativo, como Des e Prod. O modelo de pipeline inteligente cria os estágios e as tarefas em seu pipeline com base nos tipos de ambiente selecionados.
Tabela 1. Estágios de pipeline criados pelo modelo de pipeline inteligente de CICD Conteúdo do pipeline O que ele faz Estágio de compilação-publicação Compila e testa seu código, cria a imagem do construtor e publica a imagem no host do Docker. Estágio de desenvolvimento Usa um cluster de desenvolvimento do Amazon Web Services (AWS) para criar e implantar a imagem. Neste estágio, é possível criar um namespace no cluster e criar uma chave secreta. Estágio de produção Usa uma versão de produção do VMware Tanzu Kubernetes Grid Integrated Edition (anteriormente conhecido como VMware Enterprise PKS) para implantar sua imagem em um cluster Kubernetes de produção. - Um arquivo YAML do Kubernetes selecionado por você na seção de CD do modelo de pipeline inteligente de CICD.
O arquivo YAML do Kubernetes inclui três seções necessárias para Namespace, Serviço e Implantação e uma seção opcional para Segredo. Se você planeja criar um pipeline baixando uma imagem de um repositório de propriedade privada, deverá incluir uma seção com o Segredo de configuração do Docker. Se o pipeline criado só usar imagens disponíveis publicamente, um segredo não será necessário. O seguinte arquivo YAML de amostra inclui quatro seções.
apiVersion: v1 kind: Namespace metadata: name: codestream namespace: codestream --- apiVersion: v1 data: .dockerconfigjson: eyJhdXRocyI6eyJodHRwczovL2luZ1234567890lci5pby92MS8iOnsidXNlcm5hbWUiOiJhdXRvbWF0aW9uYmV0YSIsInBhc3N3b3JkIjoiVk13YXJlQDEyMyIsImVtYWlsIjoiYXV0b21hdGlvbmJldGF1c2VyQGdtYWlsLmNvbSIsImF1dGgiOiJZWFYwYjIxaGRHbHZibUpsZEdFNlZrMTNZWEpsUURFeU13PT0ifX19 kind: Secret metadata: name: dockerhub-secret namespace: codestream type: kubernetes.io/dockerconfigjson --- apiVersion: v1 kind: Service metadata: name: codestream-demo namespace: codestream labels: app: codestream-demo spec: ports: - port: 80 selector: app: codestream-demo tier: frontend type: LoadBalancer --- apiVersion: apps/v1 kind: Deployment metadata: name: codestream-demo namespace: codestream labels: app: codestream-demo spec: replicas: 10 selector: matchLabels: app: codestream-demo tier: frontend template: metadata: labels: app: codestream-demo tier: frontend spec: containers: - name: codestream-demo image: automationbeta/codestream-demo:01 ports: - containerPort: 80 name: codestream-demo imagePullSecrets: - name: dockerhub-secret
Observação: O arquivo YAML do Kubernetes também é usado no modelo de pipeline inteligente de CD, como nos seguintes exemplos de caso de uso:Para aplicar o arquivo no Modelo Inteligente, clique em Selecionar e selecione o arquivo YAML do Kubernetes. Em seguida, clique em Processo. O modelo de pipeline inteligente exibe os serviços e os ambientes de implantação disponíveis. Selecione um serviço, o endpoint do cluster e a estratégia de implantação. Por exemplo, para usar o modelo de implantação Canário, selecione Canário e digite o percentual da fase de implantação.
Para ver um exemplo sobre como usar o modelo de pipeline inteligente para criar um pipeline para uma implantação Azul-Verde, consulte Como implantar meu aplicativo no Code Stream na implantação Azul-Verde.
Como criar o pipeline de CICD usando o modelo de pipeline inteligente
Depois de reunir todas as informações e definir o que você precisa, veja como criar um pipeline a partir do modelo de pipeline inteligente de CICD.
Em Pipelines, selecione
.
Você selecionará o modelo de pipeline inteligente de CICD.
Preencha o modelo e salve o pipeline com os estágios criados por ele. Se você precisar fazer quaisquer alterações finais, poderá editar o pipeline e salvá-lo.
Em seguida, ative e execute o pipeline. Após a execução, veja algumas coisas que você pode procurar:
- Verifique se o seu pipeline foi bem-sucedido. Clique em Execuções e pesquise por seu pipeline. Se falhou, corrija todos os erros e execute-o novamente.
- Verifique se o Git webhook está funcionando corretamente. A guia Git Atividade exibe os eventos. Clique em .
- Observe o painel de pipeline e examine as tendências. Clique em Painéis e pesquise pelo painel do seu pipeline. Também é possível criar um painel personalizado para relatar KPIs adicionais.
Para obter um exemplo detalhado, consulte Como integrar continuamente o código do meu repositório do GitHub ou GitLab ao pipeline no Code Stream.