Como desenvolvedor, você precisa de um pipeline que obtenha um modelo de nuvem de automação de uma instância do GitHub local todas as vezes que uma alteração é confirmada. Você precisa do pipeline para implantar um aplicativo WordPress no Amazon Web Services (AWS) EC2 ou em um centro de dados. O Code Stream chama o modelo de nuvem do pipeline e automatiza a integração contínua e a entrega contínua (CICD) desse modelo de nuvem para implantar seu aplicativo.

Para criar e acionar seu pipeline, você precisará de um Modelo de Nuvem VMware.

Para Origem do modelo de nuvem na tarefa de modelo de nuvem do Code Stream, é possível selecionar:

  • Modelo do Cloud Assembly como controle de origem. Nesse caso, não é necessário um repositório GitLab ou GitHub.
  • Controle de Origem se você usar o GitLab ou o GitHub para controle de origem. Nesse caso, é necessário ter um webhook do Git e disparar o pipeline por meio desse webhook.

Se você tiver um modelo de nuvem YAML no repositório do GitHub e quiser usar esse modelo de nuvem no pipeline, será necessário fazer o seguinte:

  1. No Cloud Assembly, envie o modelo de nuvem ao seu repositório do GitHub.
  2. No Code Stream, crie um endpoint do Git. Em seguida, crie um webhook do Git que use seu endpoint do Git e seu pipeline.
  3. Para disparar o pipeline, atualize qualquer arquivo no repositório do GitHub e confirme a alteração.

Se você não tiver um modelo de nuvem do YAML no repositório do GitHub e quiser usar um modelo de nuvem do controle de origem, siga este procedimento para saber como. Ele mostra como criar um modelo de nuvem para um aplicativo WordPress e dispará-lo a partir de um repositório do GitHub local. Sempre que você fizer uma alteração no modelo de nuvem do YAML, o pipeline será disparado e automatizará a liberação do seu aplicativo.

  • No Cloud Assembly, você adicionará uma conta de nuvem, adicionará uma zona de nuvem e criará o modelo de nuvem.
  • No Code Stream, você adicionará um endpoint para o repositório do GitHub local que hospeda seu modelo de nuvem. Em seguida, adicionará esse modelo de nuvem ao pipeline.

Este exemplo de caso de uso mostra como usar um modelo de nuvem a partir de um repositório do GitHub local.

O fluxo de trabalho ajuda você a navegar pelo processo que automatiza a liberação de um aplicativo que você implanta a partir de um modelo de nuvem YAML.

Pré-requisitos

  • Adicione uma conta de nuvem e uma zona de nuvem na infraestrutura do vRealize Automation Cloud Assembly. Consulte a documentação do vRealize Automation Cloud Assembly.
  • Para criar o modelo de nuvem no procedimento a seguir, copie o código YAML do WordPress para a área de transferência. Consulte o código YAML do modelo de nuvem no caso de uso do WordPress na documentação do vRealize Automation Cloud Assembly.
  • Adicione o código YAML para o aplicativo WordPress à instância do GitHub.
  • Adicione um webhook para o gatilho do Git para que o pipeline possa extrair o código YAML sempre que você confirmar alterações nele. No Code Stream, clique em Gatilhos > Git > Webhooks para Git.
  • Para trabalhar com uma tarefa de modelo de nuvem, você deve ter qualquer uma das funções do Cloud Assembly.

Procedimento

  1. No Cloud Assembly, siga estas etapas.
    1. Clique em VMware Cloud Templates e crie um modelo de nuvem e uma implantação para o aplicativo WordPress.
    2. Cole o código YAML do WordPress copiado para a área de transferência no modelo de nuvem e implante-o.
      Usando o código YAML, o modelo de nuvem cria a camada de banco de dados, a camada da Web e a rede na sua implantação.
  2. No Code Stream, crie endpoints.
    1. Crie um endpoint do Git para o repositório GitHub local no qual o arquivo YAML reside.
    2. Adicione um endpoint de e-mail que possa notificar os usuários sobre o status do pipeline quando ele é executado.
      Ao adicionar um endpoint de E-mail, você define o método de criptografia e o protocolo de saída.
  3. Crie um pipeline e adicione notificações para quando o pipeline for bem-sucedido ou falhar.
    Ao adicionar uma notificação por e-mail, você seleciona um dos estados do pipeline e seleciona o servidor de e-mail e os destinatários.
  4. Adicione um estágio para o desenvolvimento e adicione uma tarefa de modelo em nuvem.
    1. Adicione uma tarefa de modelo de nuvem que implante a máquina e configure-a para usar o YAML do modelo de nuvem para o aplicativo WordPress.
      resources:
        DBTier:    
          type: Cloud.Machine    
          properties:      
              name: mysql      
              image: 'ubuntu-16'      
              flavor: 'small'      
              constraints:        
                  -   tag: zone:dev
        WebTier:
          type: Cloud.Machine    
          properties:     
              name: wordpress      
              image: 'ubuntu-16'      
              flavor: 'small'      
              constraints:        
                  - tag: zone:dev
       WP-Network-Private:
          type: Cloud.Network
          properties:
              name: WP-Network-Private
              networkType: existing
              constraints:
                  - tag: 'type:isolated-net'
                  - tag: 'zone:dev'
    2. Adicione uma tarefa de modelo de nuvem que destrua a máquina para liberar recursos.
  5. Adicione um estágio para produção e inclua tarefas de aprovação e implantação.
    1. Adicione uma tarefa de operação do usuário para exigir aprovação para enviar o aplicativo WordPress para produção.
    2. Adicione uma tarefa de modelo de nuvem para implantar a máquina e configure-a com o YAML de modelo de nuvem para o aplicativo WordPress.
      Quando você seleciona Criar, o nome da implantação deve ser exclusiva. Se você deixar o nome em branco, o Code Stream atribuirá a ele um nome aleatório exclusivo.
      Veja o que você dever saber se selecionar Reverter no seu próprio caso de uso: se você selecionar a ação Reverter e inserir uma Versão de Reversão, essa versão deverá estar no formato de n-X. Por exemplo, n-1, n-2, n-3 e assim por diante. Se você criar e atualizar a implantação em qualquer local que não seja Code Stream, a reversão será permitida.
      Quando você faz login no Code Stream, ele obtém um token de usuário, que é válido por 30 minutos. Para durações de pipeline de longa execução, quando a tarefa anterior à tarefa de modelo de nuvem demora 30 minutos ou mais para ser executada, o token de usuário expira. Como resultado, a tarefa de modelo de nuvem falha.
      Para garantir que o pipeline possa ser executado por mais de 30 minutos, você pode inserir um token de API opcional. Quando o Code Stream invocar o modelo de nuvem, o token de API persistirá, e a tarefa de modelo de nuvem continuará a usar o token de API.
      Quando você usa o token de API como uma variável, ele é criptografado. Caso contrário, ele será usado como texto simples.
      A tarefa de modelo de nuvem pode usar um modelo de nuvem da VMware no Cloud Assembly ou extraia um do controle de origem em um repositório GitLab ou GitHub.
  6. Execute o pipeline.

    Para examinar se cada tarefa foi concluída com êxito, clique na tarefa em execução e verifique o status nos detalhes da implantação para ver informações detalhadas sobre os recursos.

  7. No GitHub, modifique o tipo de instância de servidor do WordPress de small para medium.
    Quando você confirmar as alterações, o pipeline será disparado. Ele extrairá o código atualizado do repositório do GitHub e compilará o aplicativo.
    WebTier:
        type: Cloud.Machine    
        properties:     
            name: wordpress      
            image: 'ubuntu-16'      
            flavor: 'medium'      
            constraints:        
                - tag: zone:dev
  8. Execute o pipeline novamente, verifique se foi bem-sucedido e se ele alterou o tipo de instância do WordPress de pequena para média.

Resultados

Parabéns! Você automatizou o lançamento do aplicativo implantado a partir de um modelo de nuvem YAML.

O que Fazer Depois

Para saber mais sobre como usar o Code Stream, consulte Tutoriais para usar o Code Stream.

Para obter referências adicionais, consulte Mais recursos para administradores e desenvolvedores do Code Stream.