Como usar HashiCorp Waypoint para colaborar con GitLab CI/CD
HashiCorp mostrou un novo proxecto Punto de ruta en HashiCorp Digital. Usa un ficheiro baseado en HCL para describir a creación, envío e lanzamento de aplicacións para varias plataformas de nube que van desde Kubernetes ata AWS e Google Cloud Run. Pensa en Waypoint como Terraform e Vagrant xuntos para describir o proceso de creación, envío e liberación das túas aplicacións.
Fiel á súa forma, HashiCorp lanzou Waypoint como código aberto e vén con moitos exemplos. O nivel do orquestrador depende de ti, Waypoint vén como un executable que podes executar directamente no teu portátil ou desde a ferramenta de orquestración CI/CD que elixas. O obxectivo de implantación da aplicación tamén depende de ti, xa que Waypoint admite Kubernetes, Docker, Google Cloud Run, AWS ECS e moito máis.
Despois de ler o incrible documentación e o máis chic exemplos aplicacións proporcionadas por HashiCorp, decidimos dar unha ollada máis atenta á orquestración Waypoint con GitLab CI/CD. Para iso, tomaremos unha aplicación Node.js sinxela que se executa en AWS ECS do repositorio de mostra.
Despois de clonar o repositorio, vexamos a estrutura da aplicación que mostra unha páxina:
Como podes ter notado, non hai ningún Dockerfile neste proxecto. Non se engaden no exemplo porque realmente non os necesitamos, porque Waypoint encargarase deles por nós. Vexamos máis de cerca o ficheiro waypoint.hclpara entender o que vai facer:
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"
}
}
}
Durante a fase de construción, Waypoint usa Cloud Native Buildpacks (CNB) para determinar a linguaxe de programación do proxecto e crear unha imaxe Docker sen usar un Dockerfile. En principio, esta é a mesma tecnoloxía que usa GitLab en parte DevOps automático no paso Creación automática. É xenial ver que o CNB de CNCF está gañando cada vez máis adopción entre os usuarios da industria.
Unha vez construída a imaxe, Waypoint cargaraa automaticamente no noso rexistro AWS ECR para que estea lista para enviar. Ao final da montaxe, o paso de entrega utiliza Complemento AWS ECS para implementar a nosa aplicación na nosa conta de AWS.
Desde o meu portátil é fácil. Puxen un Waypoint que xa está autenticado na miña conta de AWS e "simplemente funciona". Pero que pasa se quero ir máis aló do meu portátil? Ou quizais quero automatizar esta implementación como parte da miña canalización xeral de CI/CD onde se executan as miñas probas de integración, probas de seguridade e outras actuais? Esta é a parte da historia na que entra GitLab CI/CD!
NB Se só está a planear implementar CI/CD ou quere comezar a aplicar as mellores prácticas para construír canalizacións, preste atención ao novo curso de Slurm. "CI/CD no exemplo de Gitlab CI". Xa está dispoñible para o prezo de reserva.
Waypoint en GitLab CI/CD
Para orquestrar todo isto en GitLab CI/CD, vexamos o que necesitamos no noso ficheiro .gitlab-ci.yml:
Primeiro de todo, necesitas unha imaxe base para executar dentro dela. Waypoint execútase en calquera distribución de Linux, só necesita Docker, polo que podemos executar cunha imaxe xenérica de Docker.
A continuación, cómpre instalar Waypoint nesta imaxe. No futuro podemos recoller imaxe de meta compilación e contener este proceso por si mesmo.
Finalmente executaremos os comandos Waypoint
Por riba está todo o que o noso pipeline necesitará para executar os scripts necesarios para realizar a implementación, pero para implementar en AWS, necesitamos unha cousa máis: debemos iniciar sesión na nosa conta de AWS. Na descrición do waypoint ter plans sobre autenticación e autorización. HashiCorp tamén lanzou un proxecto impresionante esta semana Fronteira. Pero polo de agora, só podemos tomar e xestionar a autenticación e autorización nós mesmos.
Hai varias opcións para a autenticación CICD de GitLab en AWS. A primeira opción é usar o incorporado Bóveda HashiCorp. Está ben se o teu equipo xa está a usar Vault para a xestión de credenciais. Outro método que funciona se o teu equipo xestiona a autorización mediante AWS IAM é comprobar que as tarefas de entrega se activan mediante GitLab RunnerA que está autorizado para iniciar a implantación a través de IAM. Pero se só queres familiarizarte con Waypoint e queres facelo rapidamente, a última opción é engadir a túa API de AWS e as claves secretas a Variables de ambiente CI/CD de GitLabAWS_ACCESS_KEY_ID и AWS_SECRET_ACCESS_KEY.
Poñer todo isto en conxunto
Unha vez que descubrimos a autenticación, podemos comezar! A nosa final .gitlab-ci.yml parece así:
Xa vedes que comezamos cunha imaxe docker:latest e establece algunhas variables de ambiente requiridas por Waypoint. No capítulo script descargamos o último executable de Waypoint e poñémolo /usr/local/bin. Como o noso corredor xa está autorizado en AWS, simplemente executamos waypoint init, build, deploy и release.
A saída da tarefa de compilación mostraranos o punto final onde lanzamos a aplicación:
Waypoint un dos numerosas solucións de HashiCorp, que funcionan moi ben con GitLab. Por exemplo, ademais de entregar a aplicación, podemos orquestrar a infraestrutura subxacente Terraform en GitLab. Para estandarizar a seguridade SDLC, tamén podemos implementar GitLab con Vault para xestionar segredos e tokens en canalizacións CI/CD, proporcionando unha solución completa para desenvolvedores e administradores que dependen da xestión secreta para o desenvolvemento, probas e usos de produción.
As solucións conxuntas desenvolvidas por HashiCorp e GitLab axudan ás empresas a atopar a mellor forma de desenvolver aplicacións garantindo unha xestión coherente da cadea de subministración e da infraestrutura. Waypoint deu un paso máis na dirección correcta e agardamos seguir desenvolvendo o proxecto. Podes obter máis información sobre Waypoint aquítamén merece a pena explorar documentación и plan de desenvolvemento proxecto. Engadimos o noso coñecemento Documentación de GitLab CICD. Se queres probalo por ti mesmo, podes consultar o exemplo de traballo completo en este repositorio.
Podes comprender os principios de CI/CD, dominar todas as sutilezas de traballar con Gitlab CI e comezar a aplicar as mellores prácticas completando o curso de vídeo "CI/CD no exemplo de Gitlab CI". Unirse agora!