Desenvolver e implementar um app usando IBM Cloud Satellite

DevOps Insights chegará ao fim de sua vida útil e será descontinuado em 31 de agosto de 2026. O serviço Continuous Delivery será descontinuado nas seguintes regiões em 12 de fevereiro de 2027: au-syd, ca-tor, us-east. O Code Risk Analyzer também será descontinuado em todas as regiões nessa data. Se uma região não apresentar uso ativo desses recursos, os recursos nessa região poderão ser descontinuados mais cedo e deixar de aceitar novas instâncias. Saiba mais

Neste tutorial, você aprenderá a criar uma cadeia de ferramentas aberta usando IBM Cloud® Continuous Delivery e implementar seu app no Satellite. Você também aprenderá como as cadeias de ferramentas são implementadas no serviço Continuous Delivery e como desenvolver e implementar um aplicativo da web simples (app) usando as cadeias de ferramentas.

O IBM Cloud Satellite traz serviços de nuvem pública para qualquer ambiente, permitindo que os clientes com requisitos regulatórios rigorosos utilizem a flexibilidade e agilidade destes serviços para o seu data center seguro no local. O Continuous Delivery usa Satellite Config para implementar um app em um grupo de clusters no IBM Cloud Satellite. Com o Satellite Config, você cria uma configuração para especificar quais recursos do Kubernetes você deseja implementar em um grupo de clusters do Kubernetes ou clusters do Red Hat® OpenShift® on IBM Cloud® que estejam em execução no local do Satellite ou no IBM Cloud.

A cadeia de ferramentas utilizada neste tutorial implementa práticas padrão do DevOps, como varredura de código, testes de aceitação, repositórios Git, além de recursos de integração contínua e entrega contínua. Depois de criar clusters e associá-los a um grupo de clusters do Continuous Delivery, crie uma cadeia de ferramentas para mudar o código do seu app e enviar por push a mudança para o repositório Git Repos and Issue Tracking. Ao enviar mudanças por push para o repositório, o pipeline de entrega baseado em Tekton automaticamente constrói e implementa o código.

O Tekton é uma estrutura de código aberto, independente de fornecedor e nativa do Kubernetes, que você pode usar para criar, testar e implantar aplicativos. O Tekton oferece um conjunto de componentes compartilhados para a criação de sistemas de integração contínua e entrega contínua. Por ser um projeto de código aberto, o Tekton é gerenciado pela Fundação Continuous Delivery. O objetivo é modernizar a entrega contínua, fornecendo especificações do setor para pipelines, fluxos de trabalho e outros blocos de construção. O Tekton permite a construção, o teste e a implementação em vários provedores de nuvem ou sistemas não locais, removendo os detalhes de implementação subjacentes. As tubulações Tekton são integradas a Continuous Delivery. Para obter mais informações sobre o IBM Cloud® Kubernetes Service, consulte IBM Cloud® Kubernetes Service.

O modelo usado neste tutorial funciona com o plano Standard para Kubernetes.

Antes de Iniciar

Antes de iniciar este tutorial, certifique-se de que os recursos a seguir estejam disponíveis:

  • Um IBM Cloud conta. Dependendo de seu tipo de conta da IBM Cloud, o acesso a determinados recursos pode ser limitado. Dependendo dos limites do plano da conta, é possível que alguns recursos exigidos por determinadas estratégias de implementação não estejam disponíveis. Para obter mais informações sobre as contas do IBM Cloud, consulte “Configurando sua conta do IBM Cloud ” e “Atualizando sua conta ”.

  • Um cluster Kubernetes e uma chave de API. Para criar esses recursos, é possível utilizar a IU ou a CLI. O cluster pode levar algum tempo para ser provisionado. Durante sua criação, o cluster passa pelos estágios Deploying, Pending e Ready. Para obter mais informações sobre os clusters Kubernetes, consulte Clusters Kubernetes.

  • Um grupo de clusters Satellite que contém o cluster necessário para a cadeia de ferramentas. A cadeia de ferramentas neste tutorial suporta um grupo de cluster Satellite que contém apenas um tipo de cluster: um cluster Kubernetes ou um cluster Satellite.

  • Uma instância do serviço Continuous Delivery.

  • Opcional. Segredos que são armazenados em uma área segura de gerenciamento de segredos e gerenciados centralmente a partir de um único local. Para obter mais informações sobre como fazer a escolha dentre as várias ofertas de gerenciamento de segredos e proteção de dados, consulte Gerenciando segredos do IBM Cloud. Se você ainda não tem uma instância do provedor de área segura de gerenciamento de segredos de sua escolha, crie uma.

  • Opcional. Um namespace, criado utilizando a linha de comandos de registro do contêiner. Para criar um namespace, digite o comando a seguir a partir da linha de comandos:

    ibmcloud cr namespace-add <my namespace>
    

    Como alternativa, é possível criar um namespace na página Container Registry. Para obter mais informações sobre a criação de um namespace neste local, consulte o serviço IBM Cloud Container Registry.

Criar a cadeia de ferramentas

Nesta etapa, você cria uma cadeia de ferramentas para Desenvolver e implementar aplicativos para Kubernetes usando estratégias de implementação. O cluster Kubernetes de destino é configurado durante a preparação da cadeia de ferramentas, utilizando a chave de API do IBM Cloud e o nome do cluster Kubernetes. Essas opções podem ser alteradas posteriormente, atualizando a configuração do Delivery Pipeline. Qualquer código mesclado na ramificação do repositório Git de destino será automaticamente construído, validado e implementado no cluster Kubernetes.

Para criar uma cadeia de ferramentas para Desenvolver e implementar aplicativo para Kubernetes usando estratégias de implementação, clique em

Criar cadeia de ferramentas

Como alternativa, no IBM Cloud console, clique no ícone de menu hambúrguer > Automação da plataforma > Cadeias de ferramentas. Na página Cadeias de ferramentas, clique em Criar uma cadeia de ferramentas. Na página “Criar uma cadeia de ferramentas ”, clique em “Desenvolver e implantar aplicativo no Kubernetes usando estratégias de implantação ”.

Configure o nome e a região da cadeia de ferramentas

Revise as informações padrão para as configurações da cadeia de ferramentas. O nome da cadeia de ferramentas as identifica em IBM Cloud. Certifique-se de que o nome da cadeia de ferramentas seja exclusivo dentro de suas cadeias de ferramentas para a mesma região e grupo de recursos no IBM Cloud.

A região da cadeia de ferramentas pode ser diferente da região de cluster e registro.

Kubernetes nome e região da cadeia de ferramentas do aplicativo seguro
Kubernetes nome e região da cadeia de ferramentas do aplicativo seguro

Selecione a estratégia de implementação

A cadeia de ferramentas cria um Pipeline de implementação contínua para implementar a imagem do Docker do aplicativo no grupo de clusters definido em Satellite.

  1. Clique em Vários clusters via Satellite para implementar o seu aplicativo usando Satellite.

    Kubernetes
    estratégias seguras de implantação de aplicativosEstratégias de implantação

  2. Clique em Continuar.

Configurar o repositório de código-fonte do aplicativo

Na etapa Aplicativo, por padrão, são exibidas as opções recomendadas para o repositório de código-fonte do aplicativo. Para visualizar todas as opções disponíveis para a integração do Git subjacente, clique em Opções avançadas. Por padrão, a cadeia de ferramentas usa a mostra padrão, que clona o aplicativo de amostra como um repositório Git Repos and Issue Tracking hospedado pela IBM

Kubernetes repositório seguro de aplicativos
Kubernetes repositório seguro de aplicativos

É possível alterar o nome do repositório do aplicativo. A região do repositório permanece a mesma da cadeia de ferramentas.

O modelo de cadeia de ferramentas fornece um aplicativo do Aplicativo Hello Containers. Caso queira vincular um repositório de Aplicativos existente à cadeia de ferramentas, selecione Trazer um aplicativo próprio e especifique a URL do repositório. A cadeia de ferramentas suporta a vinculação apenas a repositórios Git Repos and Issue Tracking existentes.

Por padrão, o modelo do repositório de aplicativo é clonado para a organização de Git Repos and Issue Tracking. Para alterar a organização, ative as Opções avançadas e especifique o proprietário do repositório.

Configurar o repositório de inventário

O repositório de inventário registra os detalhes dos artefatos construídos pelas cadeias de ferramentas de integração contínua. Você pode criar um novo repositório de inventário que seja um clone do modelo de repositório de inventário ou usar um repositório de inventário já existente que seja compartilhado entre as cadeias de ferramentas.

Kubernetes repositório seguro de inventário de
Kubernetes aplicativos repositório seguro de inventário de aplicativos

Por padrão, o modelo do repositório de inventário é clonado para sua organização de Git Repos and Issue Tracking. Para alterar a organização, selecione Opções avançadas e especifique o proprietário do repositório.

Armazenamento seguro de segredos

Várias ferramentas contidas nessa cadeia de ferramentas requerem segredos, como uma chave de API do IBM Cloud. Você deve armazenar com segurança todos os segredos em uma área segura e fazer referência a eles de acordo com as exigências da cadeia de ferramentas.

Com o IBM Cloud, é possível escolher entre várias ofertas de gerenciamento de segredos e de proteção de dados, que ajudam a proteger seus dados sensíveis, centralizando o segredo. Na etapa Segredos, é possível especificar quais integrações de áreas seguras de segredos devem ser incluídas ou removidas da cadeia de ferramentas. Para obter mais informações sobre a inclusão e remoção de integrações de área segura, incluindo pré-requisitos e sobre o uso de dicas, consulte Gerenciando segredos do IBM Cloud.

Ao usar as sugestões de um modelo, a cadeia de ferramentas é preenchida automaticamente com segredos pré-configurados; não é necessário selecionar manualmente os segredos das integrações de áreas seguras conectadas à cadeia de ferramentas.

Este tutorial usa o IBM Secrets Manager como área segura de segredos.

Kubernetes opções de segredos seguros do
Kubernetes aplicativo opções de segredos seguros do aplicativo

O IBM Secrets Manager armazena e aplica com segurança os segredos, como chaves de API , assinaturas de imagens ou credenciais HashiCorp que fazem parte da cadeia de ferramentas.

Kubernetes Opções de segredos seguros do
Kubernetes aplicativo Opções de segredos seguros do aplicativo

Para obter mais informações sobre como gerenciar seus segredos em IBM Key Protect ou HashiCorp,, consulte Segredos.

Configurar o destino de implementação

Configure o cluster de Kubernetes de destino no qual implementar o aplicativo. Depois que o aplicativo passa pelas fases de construção, teste e varredura, o pipeline implementa a imagem do aplicativo construído no cluster Kubernetes de destino. Agora, a implementação está pronta para o teste de aceitação ou de integração.

Caso a chave de API tenha o acesso necessário, os campos a seguir serão carregados automaticamente, utilizando a chave de API que foi criada, recuperada a partir de uma área segura ou especificada manualmente. Se a chave de API for válida, os valores da região de registro do Contêiner e da região de Cluster do namespace, o nome, o namespace e o grupo de recursos serão preenchidos automaticamente. Todos um desses campos podem ser atualizados para que correspondam à configuração.

  • Nome do aplicativo: o nome do aplicativo. O nome do aplicativo padrão é hello-containers.

  • Chave de API do IBM Cloud: a chave de API utilizada para interação com a ferramenta da CLI do ibmcloud em várias tarefas. Use um dos métodos a seguir para especificar a chave API que deseja utilizar:

    • Clique no ícone de chave para importar uma chave de API existente a partir de uma área segura de segredos de sua escolha.
    • Copie e cole uma chave de API existente.
    • Clique em Novo para criar uma chave de API.
    • Gere um novo api-key, caso não haja uma chave de API existente.

    É possível salvar imediatamente a chave de API gerada em uma área segura de segredos existente de sua escolha.

  • Nome do grupo de clusters Satellite: o nome do grupo de clusters que foi criado no Satellite. Seu aplicativo será implementado para este grupo de clusters.

  • Namespace do cluster: Se o namespace do cluster não existir nos clusters dentro do grupo de clusters, ele será criado pela cadeia de ferramentas.

Kubernetes Detalhes do destino de implantação segura do aplicativo para Rolling ou Blue-Green Detalhes do
Kubernetes destino de implantação segura do aplicativo Rolling

Incluir integrações de ferramentas opcionais

Você pode adicionar a integração da ferramenta IBM Cloud® DevOps Insights à sua cadeia de ferramentas sem nenhuma configuração adicional.

DevOps Insights é incluído na cadeia de ferramentas criada. Não é necessário fornecer nenhuma etapa de configuração para o DevOps Insights. O pipeline de integração contínua usa automaticamente a instância do DevOps Insights que está incluída na cadeia de ferramentas.O DevOps Insights agrega os dados de código, teste, construção e implementação, oferecendo visibilidade quanto à velocidade e qualidade de todas as equipes e liberações.

Clique em Continuar.

Concluir a configuração da cadeia de ferramentas

Na página Resumo, clique em Criar. Várias etapas são executadas automaticamente para configurar sua cadeia de ferramentas.

É possível configurar as integrações individuais da cadeia de ferramentas após a criação do pipeline.

Kubernetes Resumo da cadeia de ferramentas de aplicativos seguros
Kubernetes Resumo da cadeia de ferramentas de aplicativos seguros

Explorar sua nova cadeia de ferramentas

Depois de criar sua cadeia de ferramentas, todas as integrações de ferramentas que fazem parte dela são exibidas em um diagrama.

Explorar os pipelines

É possível explorar os pipelines para entender o fluxo da cadeia de ferramentas e as diferentes operações que são executadas em cada um deles. A cadeia de ferramentas recém-criada contém três pipelines:

  • Pipeline de solicitação pull: executado quando um desenvolvedor mescla as mudanças de sua ramificação de desenvolvimento à ramificação principal ou a qualquer outra ramificação no repositório. O pipeline de solicitação pull executa o Teste de unidade e as Varreduras estáticas no código-fonte do aplicativo.
  • Pipeline de integração contínua: executado ao mesclar uma mudança na ramificação principal do repositório de Código-fonte do aplicativo. O pipeline de integração contínua executa o Teste de unidade, a Cobertura de código e Varreduras estáticas no Código-fonte do aplicativo, a verificação do CIS e a verificação da Lista de materiais (BOM). O pipeline de entrega contínua também gera os artefatos de construção binários e os transfere por upload para o IBM Cloud® Kubernetes Service, conforme configurado na cadeia de ferramentas. Além disso, o pipeline de integração contínua gera os metadados dos artefatos de construção, armazenando-os no repositório de Inventário.
  • Pipeline de implementação contínua: implementa artefatos de construção no ambiente de implementação. Para conferir se a implementação do aplicativo foi bem-sucedida, o pipeline executa a verificação de funcionamento. Este pipeline deve ser acionado manualmente após a conclusão bem-sucedida do pipeline de integração contínua. Dependendo da estratégia de implementação selecionada, mais acionadores podem ser incluídos no pipeline de integração contínua.

Executar a solicitação pull e os pipelines de integração contínua.

Para iniciar o pipeline de solicitação pull, crie uma solicitação de mesclagem no repositório do aplicativo:

  1. Na página de visão geral da cadeia de ferramentas, na placa Repositórios, clique no repositório do apps compliance-app-<timestamp>.
  2. No repositório principal, crie uma ramificação.
  3. Atualize parte do código no aplicativo de nó de amostra ou no arquivo leia-me e salve essas mudanças.
  4. Envie a solicitação de mesclagem.
  5. Na página de visão geral da cadeia de ferramentas, na placa Repositórios, clique no repositório pr-pipeline para iniciar o pipeline de solicitação pull. A solicitação de mesclagem correspondente em seu repositório de aplicativo permanecerá no estado pendente até que o pipeline de solicitação pull seja concluído com êxito.
  6. Após a conclusão bem-sucedida, é possível selecionar o pipeline de solicitação pull para explorar as etapas concluídas.

do pipeline de solicitação de pull*Sucesso do pipeline de solicitação de

Para iniciar o pipeline de integração contínua, mescle a solicitação de mesclagem de integração contínua no repositório de aplicativos:

  1. Acesse a solicitação de mesclagem.
  2. Faça a mesclagem da solicitação para que as mudanças sejam copiadas para a ramificação principal do repositório de aplicativos. O pipeline de integração contínua é acionado automaticamente.
  3. Na página de visão geral da cadeia de ferramentas de integração contínua, na placa Repositórios, clique no repositório ci-pipeline para iniciar o pipeline de integração contínua.
  4. Após a execução bem-sucedida do pipeline de integração contínua, é possível clicar na execução de pipeline para explorar as etapas concluídas.

Sucesso do pipeline de integração
do pipeline de integração

Prática de shift left

No mundo de desenvolvimento de aplicativos seguros, shift left é uma prática que evita e localiza problemas, como defeitos e vulnerabilidades de segurança, executando verificações de conformidade anuais no processo de entrega de software. Essa prática de mover as verificações de qualidade para o início do ciclo de desenvolvimento inclui as seguintes práticas:

  • Execução de verificações, no código ou no próprio dispositivo, que não precisam da imagem de construção e podem ser feitas desde os primeiros estágios de implementação. Essas verificações impedem que códigos fora de conformidade sejam mesclados à ramificação principal do repositório. Como as evidências não são coletadas do pipeline de pull requests, seu objetivo é mover as verificações de conformidade o mais cedo possível no processo de desenvolvimento.
  • Todas as verificações são executadas em cada execução de pipeline. Se uma verificação anterior falhar, o pipeline prosseguirá para a verificação seguinte. Para avaliar se há alguma falha na execução, verifique a última etapa do pipeline, na qual há um avaliador de pipeline.

Os resultados de testes de unidade e das varreduras de vulnerabilidade são publicados na instância do DevOps Insights na cadeia de ferramentas. Para revisar esses resultados, clique no ladrilho do DevOps Insights na cadeia de ferramentas e acesse a página do Painel de qualidade.

Para avaliar a existência de possíveis falhas na execução do pipeline, consulte a etapa final do pipeline, que possui um avaliador de pipeline.

Explorar o pipeline de entrega contínua

Os pipelines de solicitação pull e de integração contínua são comuns em todas as estratégias de implementação. O design do pipeline de entrega contínua e as mudanças de implementação são baseados na estratégia de implementação selecionada anteriormente neste tutorial

Um pipeline de entrega contínua pode ser iniciado de uma das seguintes maneiras:

  • Acionamento manual do pipeline de entrega contínua.
  • Acionamento automático do pipeline de entrega contínua após cada ação de Merge no repositório de inventário. Após a mesclagem, deve-se acionar manualmente a execução do pipeline de entrega contínua.

Há um acionador do Git Repos and Issue Tracking configurado para acionar um pipeline de entrega contínua automático, mas que, por padrão, fica desativado. É possível habilitar esse acionador após promover uma mudança pela primeira vez.

Acionadores do pipeline de entrega contínua para implantação
do pipeline de entrega contínua para implantação

Próximas etapas

Para remover o aplicativo de amostra executado no Kubernetes, você deve limpar o cluster Kubernetes:

  1. Vá para a página inicial do Kubernetes Cluster.

  2. Selecione o cluster no qual o aplicativo de amostra está em execução.

  3. Clique em Painel do Kubernetes.

  4. No local em que o aplicativo de amostra está sendo executado, selecione namespace.

    Kubernetes espaço de nomes
    Kubernetes espaço de nomes

  5. Exclua as implementações, os serviços e os ingressos relacionados listados no namespace selecionado.

Procurando ajuda?

IBM Cloud o assistente de IA da IBM, que é alimentado pela watsonx, foi projetado para ajudá-lo a aprender sobre como trabalhar na IBM Cloud e criar soluções com o catálogo de produtos e serviços disponíveis. Consulte Obter ajuda do assistente de IA.

Para obter mais opções de suporte, consulte Obtendo ajuda e suporte para o Continuous Delivery.