
HashiCorp je predstavio novi projekt na . Koristi HCL datoteku za opisivanje izgradnje, isporuke i objavljivanja aplikacija za različite oblake, od Kubernetes-a do AWS-a i Google Cloud Run-a. Može se reći da je Waypoint spoj Terraform-a i Vagrant-a za opisivanje procesa izgradnje, isporuke i puštanja vaših aplikacija.
Ostajući vjerna sebi, HashiCorp je lansirala Waypoint s otvorenim kodom, uz mnoge primjere. Razina orkestratora ostaje na vama, Waypoint dolazi kao izvršna datoteka koju možete pokrenuti izravno na vašem prijenosnom računalu ili iz odabranog CI/CD alata. Cilj za implementaciju aplikacija također birate vi, budući da Waypoint podržava Kubernetes, Docker, Google Cloud Run, AWS ECS i druge.
Nakon što smo pročitali fascinantne i izvanredne aplikacije koje je pružio HashiCorp, odlučili smo se pobliže upoznati s orkestracijom Waypoint pomoću GitLab CI/CD. Da bismo to učinili, uzet ćemo jednostavnu Node.js aplikaciju koju pokrećemo na AWS ECS-u iz repozitorija s primjerima.
Nakon kloniranja repozitorija, pogledat ćemo strukturu aplikacije koja prikazuje jednu stranicu:

Kao što ste možda primijetili, u ovom projektu nema Dockerfile-a. Nisu dodani u primjer, jer zapravo nisu potrebni, jer će se Waypoint pobrinuti za njih umjesto nas. Pogledajmo detaljnije datoteku waypoint.hcl, kako bismo razumjeli što će raditi:
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"
}
}
}U fazi izgradnje Waypoint koristi Cloud Native Buildpacks (), kako bi odredio programski jezik projekta i stvorio Docker sliku bez korištenja Dockerfile-a. U osnovi, to je ista tehnologija koja se koristi u GitLab-u u dijelu na koraku Auto Build. Drago nam je vidjeti da CNB od CNCF sve više dobiva na popularnosti među korisnicima iz industrije.
Jednom kada je slika izgrađena, Waypoint automatski prebacuje u naš AWS ECR registar kako bi bila spremna za isporuku. Na kraju izgradnje, korak isporuke koristi za implementaciju naše aplikacije u naš AWS račun.
Sa svog laptopa - sve je jednostavno. Instaliram Waypoint, koji je već autentificiran u mom AWS računu, i jednostavno radi. Ali što ako želim ići izvan svog laptopa? Ili odjednom želim automatizirati ovo implementaciju kao dio mog općeg CI/CD cjevovoda, gdje se pokreću moji trenutačni integracijski testovi, testovi sigurnosti i drugo? Ovo je dio priče gdje dolazi GitLab CI/CD!
Napomena. Ako planirate implementaciju CI/CD ili želite započeti primjenjivati najbolje prakse izgradnje cjevovoda, obratite pozornost na novi Slёrm kurs . Trenutno je dostupan po cijeni prednarudžbe.
Waypoint u GitLab CI/CD
Za orkestraciju svega ovoga u GitLab CI/CD, pogledajmo što će nam trebati u našoj datoteci .gitlab-ci.yml:
- Prvo, potreban nam je osnovni image za pokretanje unutar njega. Waypoint radi na bilo kojoj distribuciji Linuxa, treba mu samo Docker, tako da možemo pokrenuti s generičkim Docker imageom.
- Zatim treba instalirati Waypoint u ovaj image. U budućnosti možemo izraditi i containerizirati ovaj proces za sebe.
- Na kraju ćemo pokrenuti Waypoint naredbe
Gore je navedeno sve što će našem cjevovodu biti potrebno za pokretanje potrebnih skripti za implementaciju, ali za implementaciju u AWS-u trebat će nam još jedna stvar: moramo se autentificirati u našem AWS računu. U opisu Waypointa o autentifikaciji i autorizaciji. HashiCorp je ovog tjedna također izdao impresivan projekt . No, trenutno možemo jednostavno sami obraditi autentifikaciju i autorizaciju.
Za autentifikaciju GitLab CI/CD u AWS-u postoji nekoliko opcija. Prva opcija - korištenje ugrađenog . Ovo je prikladno ako vaša ekipa već koristi Vault za upravljanje vjerodajnicama. Još jedan način koji odgovara, ako vaša ekipa upravlja autorizacijom putem AWS IAM - provjerite da su zadatci isporuke pokrenuti kroz , autoriziran za pokretanje implementacije kroz IAM. No, ako samo želite upoznati Waypoint i želite to učiniti brže, postoji posljednja opcija - dodajte svoje AWS API i Secret ključeve u AWS_ACCESS_KEY_ID i AWS_SECRET_ACCESS_KEY.
Sakupljamo sve zajedno
Kada se razjasnimo s autentifikacijom, možemo početi! Naš konačni .gitlab-ci.yml izgleda ovako:
waypoint:
image: docker:latest
stage: build
services:
- docker:dind
# Definirajte varijable okruženja, npr. `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 releaseVidite da počinjemo s slikom docker:latest i postavljamo nekoliko varijabli okruženja potrebnih za Waypoint. U odjeljku script preuzimamo najnoviju verziju izvršne datoteke Waypoint i postavljamo je u /usr/local/bin. Budući da je naš runner već autoriziran u AWS-u, jednostavno pokrećemo waypoint init, build, deploy i release.
Izvještaj o zadatku za izgradnju pokazat će nam endpoint na koji smo implementirali aplikaciju:

Waypoint je jedno od , koja se odlično integriraju s GitLabom. Na primjer, uz isporuku aplikacije, možemo orkestrirati temeljnu infrastrukturu pomoću . Za standardizaciju sigurnosti SDLC-a, također možemo implementirati za upravljanje tajnama i tokenima u CI/CD cjevovodima, pružajući sveobuhvatno rješenje za programere i administratore koji se oslanjaju na upravljanje tajnama tijekom razvoja, testiranja i industrijske upotrebe.
Zajednička rješenja koja su razvili HashiCorp i GitLab pomažu tvrtkama pronaći najbolji način za razvoj aplikacija, osiguravajući dosljedno upravljanje protokom isporuke i infrastrukturom. Waypoint je učinio još jedan korak u pravom smjeru, a s nestrpljenjem očekujemo daljnji razvoj projekta. Možete saznati više o Waypoint , također vrijedi istražiti i projekta. Dodali smo stečena znanja u . Ako želite sve isprobati sami, možete preuzeti potpuno funkcionalan primjer iz .
Razumjeti principe CI/CD-a, svladati sve tajne rada s GitLab CI-jem i započeti primjenu najboljih praksi možete kroz video tečaj . Pridružite se!
Izvor: habr.com
