Como usar o HashiCorp Waypoint para colaboração com GitLab CI/CD

Como usar o HashiCorp Waypoint para colaboração com GitLab CI/CD

A HashiCorp apresentou um novo projeto Waypoint para HashiCorp Digital. Ele utiliza um arquivo baseado em HCL para descrever a construção, entrega e lançamento de aplicações em várias plataformas de nuvem, desde Kubernetes até AWS e Google Cloud Run. Pode-se imaginar que o Waypoint é a combinação do Terraform e do Vagrant para descrever o processo de construção, entrega e lançamento de suas aplicações.

Mantendo sua essência, a HashiCorp lançou o Waypoint como um projeto de código aberto, que também vem acompanhado de diversos exemplos. O nível do orquestrador fica por sua conta, o Waypoint é fornecido como um arquivo executável, que você pode rodar diretamente no seu laptop ou a partir da ferramenta de orquestração CI/CD de sua escolha. O alvo para a implantação das aplicações também é decidido por você, uma vez que o Waypoint suporta Kubernetes, Docker, Google Cloud Run, AWS ECS e outros.

Após ler exemplos documentação e impressionantes aplicações fornecidas pela HashiCorp, decidimos dar uma olhada mais de perto na orquestração do Waypoint utilizando GitLab CI/CD. Para isso, iremos pegar uma simples aplicação Node.js, rodando na AWS ECS, do repositório de exemplos. Após clonar o repositório, vamos observar a estrutura da aplicação, que exibe uma única página:

Como você pode notar, não há Dockerfile neste projeto. Eles não foram adicionados ao exemplo porque, na verdade, não precisamos deles, pois o Waypoint cuida disso por nós. Vamos examinar mais de perto o arquivo

Como usar o HashiCorp Waypoint para colaboração com GitLab CI/CD

waypoint.hcl , para entender o que ele fará:project = "example-nodejs"app "example-nodejs" { labels = { "service" = "example-nodejs", "env" = "dev" }build { use "pack" {} registry { use "aws-ecr" { region = "us-east-1" repository = "waypoint-gitlab" tag = "latest" } } }deploy { use "aws-ecs" { region = "us-east-1" memory = "512" } } }

Na fase de construção, o Waypoint utiliza Cloud Native Buildpacks (

CNB), para determinar a linguagem de programação do projeto e criar uma imagem para Docker sem usar Dockerfile. Essencialmente, esta é a mesma tecnologia utilizada pelo GitLab na parteAuto DevOps na etapa Auto Build. É bom ver que o CNB da CNCF está obtendo cada vez mais aceitação dos usuários na indústria. Assim que a imagem é construída, o Waypoint automaticamente a enviará para nosso registro AWS ECR, para que esteja pronta para a entrega. Após a construção, a etapa de entrega utiliza

o complemento AWS ECS para implantar nossa aplicação na nossa conta AWS. para implantar nosso aplicativo em nossa conta AWS.

Do meu notebook, tudo é simples. Eu instalo o Waypoint, que já está autenticado na minha conta AWS, e ele "simplesmente funciona". Mas o que acontecerá se eu quiser ir além do meu notebook? Ou se de repente eu quiser automatizar essa implantação como parte do meu pipeline CI/CD, onde rodam meus testes de integração atuais, testes de segurança e outros? É aqui que entra o GitLab CI/CD!

N.B. Se você está apenas planejando implementar CI/CD ou deseja começar a aplicar as melhores práticas na construção de pipelines, confira o novo curso do Slyer. "CI/CD com exemplo do GitLab CI". Agora ele está disponível por um preço promocional.

Waypoint no GitLab CI/CD

Para orquestrar tudo isso no GitLab CI/CD, vamos ver o que precisaremos em nosso arquivo. .gitlab-ci.yml:

  • Primeiro, precisamos de uma imagem base para executar dentro dela. O Waypoint funciona em qualquer distribuição Linux, só precisa do Docker, então podemos começar com uma imagem Docker genérica.
  • Em seguida, precisamos instalar o Waypoint nessa imagem. No futuro, podemos construir uma imagem meta build e containerizar esse processo para nós.
  • Finalmente, vamos executar os comandos do Waypoint.

Acima está tudo o que precisaremos em nosso pipeline para executar os scripts necessários para a implantação, mas para a implantação na AWS, precisaremos de mais uma coisa: devemos autenticar nossa conta AWS. Na descrição do Waypoint existem planos para autenticação e autorização. A HashiCorp também lançou esta semana um projeto impressionante Boundary. Mas, por agora, podemos simplesmente cuidar da autenticação e autorização por conta própria.

Para autenticar o GitLab CI/CD na AWS, existem algumas opções. A primeira opção é usar o HashiCorp Vault. Ele é adequado se sua equipe já usa o Vault para gerenciar credenciais. Outra maneira, que é apropriada se sua equipe gerencia a autorização usando o AWS IAM, é garantir que as tarefas de entrega sejam executadas através do GitLab Runner, autorizado a executar a implantação através do IAM. Mas se você apenas deseja se familiarizar com o Waypoint e quer fazer isso rapidamente, há uma última opção — adicionar suas chaves AWS API e Secret nas variáveis de ambiente do GitLab CI/CD AWS_ACCESS_KEY_ID e AWS_SECRET_ACCESS_KEY.

Reunindo tudo

Assim que resolvermos a autenticação, podemos começar! Nossa versão final .gitlab-ci.yml é assim:

waypoint:
  image: docker:latest
  stage: build
  services:
    - docker:dind
  # Defina variáveis de ambiente, por exemplo, `WAYPOINT_VERSION: '0.1.1'`
  variables:
    WAYPOINT_VERSION: ''
    WAYPOINT_SERVER_ADDR: ''
    WAYPOINT_SERVER_TOKEN: ''
    WAYPOINT_SERVER_TLS: '1'
    WAYPOINT_SERVER_TLS_SKIP_VERIFY: '1'
  script:
    - wget -q -O /tmp/waypoint.zip https://releases.hashicorp.com/waypoint/${WAYPOINT_VERSION}/waypoint_${WAYPOINT_VERSION}_linux_amd64.zip
    - unzip -d /usr/local/bin /tmp/waypoint.zip
    - rm -rf /tmp/waypoint*
    - waypoint init
    - waypoint build
    - waypoint deploy
    - waypoint release

Você verá que começamos com a imagem docker:latest e configuramos algumas variáveis de ambiente necessárias para o Waypoint. Na seção script baixamos a última versão do executável do Waypoint e o instalamos em /usr/local/bin. Como nosso runner já está autenticado na AWS, em seguida, apenas executamos waypoint init, build, deploy e release.

A saída da tarefa de construção nos mostrará o endpoint para onde implantamos o aplicativo:

Como usar o HashiCorp Waypoint para colaboração com GitLab CI/CD

Waypoint é uma das múltiplas soluções da HashiCorp, que funciona muito bem com o GitLab. Por exemplo, além de implantar o aplicativo, podemos orquestrar a infraestrutura subjacente usando Terraform no GitLab. Para padronizar a segurança do SDLC, também podemos integrar GitLab com o Vault para gerenciar segredos e tokens em pipelines de CI/CD, fornecendo uma solução completa para desenvolvedores e administradores que dependem da gestão de segredos durante o desenvolvimento, teste e uso em produção.

Soluções conjuntas desenvolvidas pela HashiCorp e pelo GitLab ajudam as empresas a encontrar a melhor maneira de desenvolver aplicativos, garantindo um gerenciamento consistente dos fluxos de entrega e infraestrutura. O Waypoint deu mais um passo na direção certa, e estamos ansiosos por mais desenvolvimentos no projeto. Você pode saber mais sobre o Waypoint aqui, também vale a pena explorar o documentação e plano de desenvolvimento do projeto. Adicionamos o conhecimento adquirido em na documentação do GitLab CICD. Se você deseja experimentar tudo na prática, pode pegar um exemplo totalmente funcional em este repositório.

Entender os princípios de CI/CD, dominar todos os detalhes de trabalho com o GitLab CI e começar a aplicar as melhores práticas pode ser feito através do curso em vídeo "CI/CD com exemplo do GitLab CI". Junte-se a nós!

Fonte: habr.com

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster