Desenvolver e implementar um aplicativo em uma Máquina virtual
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 antecipadamente e deixar de aceitar novas instâncias. Saiba mais
Este tutorial demonstra como configurar uma cadeia de ferramentas do Continuous Delivery e entregar um aplicativo (app) simples para uma Máquina virtual. É possível configurar o controle de versão e, em seguida, criar, testar e implementar o código em estágios de implementação diferentes.
Por padrão, a cadeia de ferramentas usa um app Java de amostra baseado em Maven, Hello World, mas também é possível trazer seu próprio app e vinculá-lo a ele, como alternativa. Essa cadeia de ferramentas está configurada com pipelines para integração contínua e entrega contínua, incluindo o Code Risk Analyzer, controle de código-fonte, rastreamento de problemas e edição on-line.
O código do aplicativo é armazenado no repositório (repo) de controle de versão do aplicativo. Os scripts de construção e implementação são armazenados no repositório de controle de versão do pipeline. É possível customizar os scripts de construção e implementação para atender aos requisitos de desenvolvimento do aplicativo.
A cadeia de ferramentas neste tutorial implementa as melhores práticas a seguir:
- Constrói um binário de aplicativo em cada confirmação do Git e configura uma tag com base no número da construção, no registro de data e hora e no ID de confirmação para fins de rastreabilidade.
- Insere o binário construído no manifest de implementação automaticamente.
- Cria uma instância do Object Storage e um bucket para armazenar os arquivos binários temporários que são construídos prontos para o uso. Para os usuários avançados, é possível configurar e integrar um repositório existente do Artifactory com a cadeia de ferramentas para suportar o versionamento de artefatos de construção para fins de rastreabilidade e conformidade.
A cadeia de ferramentas implementa três pipelines para construir e implementar o código do app em uma Máquina virtual.
-
Pipeline de integração contínua (CI): este pipeline é acionado quando uma mudança é mesclada na ramificação principal do repositório de código-fonte do aplicativo. O pipeline de CI executa o teste de unidade, a cobertura de código e as varreduras estáticas no código-fonte do aplicativo. Ele também gera o artefato binário de construção e faz upload dele no Artifactory ou no bucket do Object Storage, conforme configurado na cadeia de ferramentas. Além disso, ele gera os metadados dos artefatos de construção e os armazena no repositório de inventário.
-
Pipeline de implementação contínua (CD): este pipeline é acionado por uma execução bem-sucedida do pipeline de CI. O pipeline de CD é responsável por implementar os artefatos de construção no ambiente de implementação. Ele verifica a implementação bem-sucedida do aplicativo executando a verificação de funcionamento e recupera as mudanças se a implementação não foi bem-sucedida.
-
Pipeline de solicitação pull (PR): este pipeline é acionado quando uma solicitação de mesclagem ou pull é criada no repositório de código-fonte do aplicativo. Geralmente, essa solicitação é criada manualmente pelo desenvolvedor de código-fonte do aplicativo para mesclar mudanças de sua ramificação de desenvolvimento na ramificação principal ou em qualquer outra ramificação. O pipeline de PR executa o teste de unidade e as varreduras estáticas no código-fonte do aplicativo.
Antes de Iniciar
Defina e configure a instância de servidor virtual para a cadeia de ferramentas a fim de implementar o aplicativo nela. É possível usar uma instância de servidor virtual existente ou configurar uma nova que esteja em conformidade com os requisitos a seguir:
- Configure a instância de servidor virtual na IBM Cloud.
- Reserve um endereço IP flutuante para tornar a instância de servidor virtual acessível pela Internet pública. Como alternativa, é possível usar a entrada DNS disponível. Este tutorial usa um endereço IP flutuante.
- Crie o usuário (preferencialmente não privilegiado) e as chaves SSH para a instância de servidor virtual.
- Configure grupos de segurança para a instância de servidor virtual. Ative a cadeia de ferramentas para executar verificações de funcionamento no aplicativo implementado
ao incluir uma regra de entrada para
TCPa fim de permitir que a porta8080acesse o terminal do aplicativo. Para obter mais informações sobre a inclusão de uma regra de entrada, consulte Gerenciando grupos de segurança. - Certifique-se de que o Java™ SDK esteja instalado em sua VM ou use o comando a seguir para instalá-lo:
yum install -y tar java. - Opcional. Caso seja necessário armazenar segredos no
Key Protect, codifique o valor em base64, Para obter mais informações sobre os detalhes de comando necessários, consulte Assinatura de imagens: gerando uma chave GPG.
Criar a cadeia de ferramentas
Para criar uma cadeia de ferramentas Desenvolver um aplicativo para uma Máquina virtual, clique em
Como alternativa, no console IBM Cloud, clique no ícone Menu > Platform Automation > Toolchains. Na página Cadeias de ferramentas,
clique em Criar uma cadeia de ferramentas. Na página Criar uma cadeia de ferramentas, clique em Desenvolver um aplicativo para uma Máquina virtual.
Configurar a instância de servidor virtual simples
-
Na guia Criar, revise as configurações padrão.
{: caption="de ferramentas* -
O nome da cadeia de ferramentas as identifica em IBM Cloud. Se você desejar usar um nome diferente, mude o nome da cadeia de ferramentas. Como o nome da cadeia de ferramentas é usado para criar a URL que é usada para acessar seu aplicativo, certifique-se de especificar um nome exclusivo.
-
Por padrão, a cadeia de ferramentas cria o repositório de origem no Git Repos and Issue Tracking. Para usar um provedor diferente para o repositório Git de origem, como o GitHub ou o GitLab, selecione-o na lista de repositórios disponíveis.
Essa cadeia de ferramentas usa ferramentas incluídas no serviço Continuous Delivery. Caso ainda não haja uma instância desse serviço no grupo de recursos selecionado, ela será incluída automaticamente com o plano Lite, ao clicar em Criar para criar a cadeia de ferramentas.
Configurar o repositório do aplicativo
-
Na guia Git Repos and Issue Tracking, revise a configuração padrão que especifica o local do código-fonte do aplicativo.
-
Por padrão, a cadeia de ferramentas usa um aplicativo de amostra Java Hello World baseado em Maven. É possível atualizar a configuração de local para vincular ao seu próprio app, como alternativa.
Repositório de
Configurar o repositório de inventário
O repositório de inventário armazena os metadados de construções e artefatos. Para acionar o pipeline a fim de implementar na instância de servidor virtual os artefatos descritos na confirmação, faça a confirmação no repositório de inventário e, em seguida, execute as tarefas de aceitação.
Configurar o Delivery Pipeline
-
Acesse a guia Delivery Pipeline.
Delivery Pipeline -
Especifique uma chave de API existente da IBM Cloud ou crie uma nova. A cadeia de ferramentas usa essa chave para interagir com outros serviços de nuvem integrados à cadeia de ferramentas.
-
Especifique a região na qual a instância de servidor virtual está em execução, como
us-south. -
Especifique o endereço IP flutuante da instância de servidor virtual usando o formato
aaa.bbb.ccc.ddd. -
Selecione o tipo de autenticação
SSH Keye especifique as credenciais a seguir:- Nome de usuário: o nome do usuário da instância de servidor virtual com permissões para implementar e executar o aplicativo.
- Chave SSH: a chave SSH privada do usuário para executar e implementar o aplicativo.
-
Execute os comandos a seguir para criar um novo par de chaves na instância de servidor virtual para o usuário com permissões para implementar e executar os aplicativos.
# Create the SSH key `ssh-keygen -C cloud.ibm.com` # copy public key to the VSI `ssh-copy-id -i .ssh/id_rsa.pub <UserName>@<xx.yy.zz.aa>`
Opcional. Criar uma configuração de armazenamento temporário
Qualquer mudança na origem aciona o pipeline de integração contínua. Quando uma integração contínua é bem-sucedida, um artefato de construção ou binário é criado e salvo em um armazenamento temporário para, em seguida, ser implementado na instância de servidor virtual de destino.
- Na guia Mais ferramentas da cadeia de ferramentas, é possível escolher usar o Object Storage ou o Artifactory como armazenamento temporário para salvar os arquivos binários de construção.
- Se sua conta não contiver nenhuma instância do Object Storage, a cadeia de ferramentas criará uma nova instância do Object Storage no grupo de recursos padrão. Em seguida, ela criará um bucket com o nome igual ao dela na nova instância do Object Storage.
- Se sua conta já contiver instâncias do Object Storage, a cadeia de ferramentas usará uma delas para armazenar os artefatos de construção temporários.
- Para configurar os detalhes do Object Storage ou do Artifactory, consulte a seção Configurando as opções avançadas do usuário.
- Clique em Criar para criar a cadeia de ferramentas.
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. Por exemplo, para visualizar várias etapas, como cra-discovery-scan, e os detalhes
de Parâmetro e Status, clique na integração da ferramenta Pipeline de CI e, em seguida, em PipelineRuns bem-sucedidos.
Explorar o DevOps Insights
O DevOps Insights agrega dados da sua cadeia de ferramentas para que seja possível rastrear e melhorar seus processos de DevOps de ponta a ponta. Visualize métricas de qualidade, rastreie as tarefas de construção e de implementação, visualize políticas e muito mais.
Se seu código não atender a uma política ou excedê-la, a implementação será interrompida, impedindo a liberação de riscos. É possível usar o DevOps Insights como uma rede de segurança para o seu ambiente de entrega contínua ou como uma maneira de implementar e melhorar os padrões de qualidade.
A imagem a seguir mostra o painel de qualidade que fornece conjuntos de dados de qualidade, como testes de unidade, cobertura de código, testes de verificação funcional e varreduras de segurança estática, para cada aplicativo.
Explorar o GitOps
O GitOps é um conjunto de práticas e ferramentas que colocam o Git no centro da cadeia de ferramentas de DevOps e como a fonte de verdade para o que implementar na instância de servidor virtual. Com o GitOps, os desenvolvedores e operadores usam fluxos de trabalho de Git familiares para definir, revisar, aprovar e auditar mudanças na infraestrutura e nos aplicativos. As ferramentas automatizadas sincronizam o estado ativo de seus destinos com o estado desejado que está descrito no Git.
Ao usar a cadeia de ferramentas neste tutorial, é possível controlar as implementações em vários ambientes, criando uma ramificação para cada um deles. O fluxo de trabalho de exemplo a seguir aciona um pipeline do Continuous Delivery quando uma solicitação pull ou uma confirmação é feita em uma ramificação específica do repositório de inventário.
- Crie uma cadeia de ferramentas para a instância de servidor virtual na IBM Cloud fornecendo detalhes para ela, como o repositório de aplicativo e o Object Storage. Não especifique nenhum detalhe para o repositório de inventário.
- Após a criação da cadeia de ferramentas, no repositório de inventário, crie várias ramificações, como
Dev,StagingeProd. - Clique no pipeline do Continuous Delivery e acesse os acionadores. Inclua uma origem de acionador como um repositório de inventário com a ramificação que você deseja para acionar o pipeline de CD (principal).
- Modifique seu pipeline de integração contínua para confirmar os respectivos repositórios de inventário após a integração bem-sucedida.
- Depois que confirmações suficientes estiverem disponíveis no repositório de inventário, mescle a solicitação pull no repositório ao principal para iniciar uma compilação do Continuous Delivery.
Ao usar o GitOps, é possível controlar implementações em vários ambientes, criando uma ramificação para cada um deles.
Configurar opções avançadas do usuário
Para acessar as opções avançadas do usuário, acesse a guia Mais ferramentas.
-
Especifique uma instância existente do Cloud Object Storage para armazenar artefatos de construção temporários:
-
Especifique o nome do bucket na instância do Object Storage na qual você deseja armazenar os artefatos de construção temporários. Para fazer upload de objetos no bucket, ele deve estar na mesma região da criação da cadeia de ferramentas.
-
Selecione a Chave de API que possui acesso de leitura e gravação ao depósito especificado
Cloud Object Storage -
-
Para usar uma conta do Artifactory a fim de armazenar os artefatos de construção temporários, especifique os detalhes da instância do Artifactory:
- URL do servidor Artifactory: URL HTTPS do servidor Artifactory
- Tipo: escolha o NPM, o Maven ou o Docker
- ID de usuário do Artifactory: o ID de usuário para efetuar login no servidor Artifactory, no formato
xxx.xxx@xxx.com - Chave de API do Artifactory: a chave de API gerada pelo usuário (existente ou nova)
- URL de liberação: a URL de liberação do repositório do Artifactory no qual os artefatos são armazenados
Alguns campos no Artifactory são obrigatórios apenas ao usar a configuração do Artifactory.
Clique em Criar para criar a cadeia de ferramentas. This process might take several minutes to complete.
Opcional. Retroceder para a versão anterior do aplicativo implementado
É possível retroceder o código implementado devido aos resultados de teste, a problemas de qualidade de código, entre outros. É possível usar o repositório de inventário para retroceder para a versão anterior do aplicativo.
- Digite
git clone <inventory-repo-url>para clonar e fazer download do repositório de inventário Git a partir do pipeline. O pipeline do Continuous Delivery atende à ramificação principal do repositório de inventário. - Digite
git logpara visualizar a lista de confirmações concluídas pelo pipeline de integração contínua. - Digite
git checkout masterpara efetuar check-out na ramificação principal. - Digite
lastCommitID=$(git log --format="%H" -n 1)para recuperar o último ID de confirmação do repositório. - Digite
git revert $lastCommitIDpara criar uma nova confirmação que reverta a mudança atual. Certifique-se de fornecer uma mensagem de confirmação para essa reversão. - Digite
git pushpara enviar por push a mudança para o repositório de inventário e iniciar o pipeline do Continuous Delivery para a implementação do aplicativo.
Próximas etapas
Embora este tutorial tenha usado um aplicativo Java de exemplo, também é possível implementar em uma instância de servidor virtual aplicativos que sejam baseados em outras linguagens. Para implementar em uma instância de servidor virtual um aplicativo que seja baseado em uma linguagem diferente, exclua tanto a cadeia de ferramentas quanto a instância de servidor virtual que você criou para o tutorial.
