
A HashiCorp apresentou um novo projeto para . 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 e impressionantes 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

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 (CNBAuto DevOps 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 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. . 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 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 para autenticação e autorização. A HashiCorp também lançou esta semana um projeto impressionante . 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 . 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 , 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 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 releaseVocê 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:

Waypoint é uma das , que funciona muito bem com o GitLab. Por exemplo, além de implantar o aplicativo, podemos orquestrar a infraestrutura subjacente usando . Para padronizar a segurança do SDLC, também podemos integrar 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 , também vale a pena explorar o e do projeto. Adicionamos o conhecimento adquirido em . Se você deseja experimentar tudo na prática, pode pegar um exemplo totalmente funcional em .
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 . Junte-se a nós!
Fonte: habr.com
