
HashiCorp je predstavio novi projekt na . Koristi HCL-baziran fajl za opisivanje izgradnje, isporuke i lansiranja aplikacija na različitim oblačnim platformama, od Kubernetesa do AWS-a i Google Cloud Runa. Može se zamisliti da je Waypoint spoj Terraform-a i Vagrant-a za opisivanje procesa izgradnje, isporuke i lansiranja vaših aplikacija.
Ne mijenjajući svoj pristup, HashiCorp je objavio Waypoint kao open-source, uz brojne primjere. Razina orkestratora ostaje na vama, Waypoint dolazi kao izvršna datoteka koju možete pokrenuti direktno na svom prijenosnom računalu ili iz alata za orkestraciju CI/CD po vašem izboru. Cilj za implementaciju aplikacija također birate vi, jer Waypoint podržava Kubernetes, Docker, Google Cloud Run, AWS ECS i druge.
Pročitaću uzbudljive i sjajne aplikacija koje je pružio HashiCorp, odlučili smo da pobliže pogledamo orkestraciju Waypoint-a pomoću GitLab CI/CD. Za to ćemo uzeti jednostavnu Node.js aplikaciju koja se pokreće na AWS ECS iz repozitorija primjera.
Nakon kloniranja repozitorija, pogledat ćemo strukturu aplikacije koja prikazuje jednu stranicu:

Kao što ste mogli primijetiti, u ovom projektu nema Dockerfile-a. Nisu dodati u primjer jer nam u osnovi nisu potrebni, budući da se Waypoint brine o njima 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 izradio sliku za Docker bez korištenja Dockerfile-a. U osnovi, to je ista tehnologija koja se koristi u GitLab-u u okviru na koraku Auto Build. Drago mi je vidjeti da CNB iz CNCF dobija sve veću popularnost među korisnicima u industriji.
Čim je slika izgrađena, Waypoint automatski će je prenijeti u našu AWS ECR registraciju, kako bi bila spremna za isporuku. Po završetku izgradnje, korak isporuke koristi za implementaciju naše aplikacije u naš AWS račun.
Na mojem prenosniku je vse enostavno. Namestite Waypoint, ki je že avtenticiran v mojem računu AWS, in "preprosto deluje". Kaj pa, če želim iti izven svojega prenosnika? Ali pa, če želim avtomatizirati to namestitev kot del svojega celotnega CI/CD postopka, kjer se izvajajo moji trenutni integracijski testi, testi varnosti in drugo? Tu se pojavi GitLab CI/CD!
N.B. Če še načrtujete uvedbo CI/CD ali želite začeti uporabljati najboljše prakse za gradnjo cevi, si oglejte nov tečaj Sleerma . Sedaj je na voljo po ceni prednaročila.
Waypoint v GitLab CI/CD
Za orkestracijo vsega tega v GitLab CI/CD poglejmo, kaj potrebujemo v našem datoteki .gitlab-ci.yml:
- Najprej potrebujemo osnovno sliko za zagon znotraj nje. Waypoint deluje na katerem koli Linux distribuciji, potrebuje le Docker, tako da lahko začnemo s splošno Docker sliko.
- Nato moramo namestiti Waypoint v to sliko. V prihodnosti lahko zgradimo in containeriziramo ta postopek zase.
- Nazadnje bomo zagnali ukaze Waypoint.
Zgoraj je opisano vse, kar našemu procesu nalaganja potrebuje za izvajanje potrebnih skript za namestitev, vendar bomo za namestitev v AWS potrebovali še eno stvar: moramo se avtenticirati v našem računu AWS. V opisu Waypoint za avtentikacijo in avtorizacijo. HashiCorp je ta teden tudi izdal impresiven projekt . Zaenkrat pa lahko samo sami obravnavamo avtentikacijo in avtorizacijo.
Za avtentikacijo GitLab CICD v AWS obstaja več možnosti. Prva možnost je uporaba vgrajenega . To je primerno, če vaša ekipa že uporablja Vault za upravljanje poverilnic. Še en način, ki je primeren, če vaša ekipa upravlja avtorizacijo z AWS IAM — preverite, ali se naloge dobave izvajajo preko , avtoriziranega za izvajanje namestitev preko IAM. Ampak, če se želite samo seznaniti z Waypoint in to narediti čim hitreje, obstaja še zadnja možnost — dodajte svoje ključne AWS API in Secret v AWS_ACCESS_KEY_ID in AWS_SECRET_ACCESS_KEY.
Zberemo vse skupaj
Ko smo se enkrat spoprijeli z avtentikacijo, lahko začnemo! Naš končni .gitlab-ci.yml izgleda tako:
waypoint:
image: docker:latest
stage: build
services:
- docker:dind
# Дефиниция переменных окружения, например `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 začnemo z image-om docker:latest in nastavimo nekaj okolijskih spremenljivk, potrebnih za Waypoint. V razdelku script naložimo zadnjo različico izvršne datoteke Waypoint in jo namestimo v /usr/local/bin. Ker je naš runner že pooblaščen v AWS, naprej preprosto zaženemo waypoint init, build, deploy in release.
Izhod naloge za gradnjo nam bo pokazal endpoint, na katerega smo razdelili aplikacijo:

Waypoint je ena od , ki odlično delujejo z GitLab. Na primer, poleg dobave aplikacije lahko orkestriramo spodnjo infrastrukturo s pomočjo . Za standardizacijo varnosti SDLC lahko prav tako vpeljemo za upravljanje skrivnosti in žetonov v CI/CD pipeline-ih, kar zagotavlja celovito rešitev za razvijalce in skrbnike, ki se zanašajo na upravljanje skrivnosti pri razvoju, testiranju in industrijski uporabi.
Skupne rešitve, razvite s strani HashiCorp in GitLab, pomagajo podjetjem najti najboljši način za razvijanje aplikacij, kar zagotavlja dosledno upravljanje tokov dobave in infrastrukture. Waypoint je naredil še en korak v pravo smer, in komaj čakamo na nadaljnji razvoj projekta. Več informacij o Waypointu , prav tako je vredno raziskati in projekta. Pridobljeno znanje smo dodali v Če želite vse preizkusiti sami, lahko prenesete popoln delujoč primer iz .
Razumevanje načel CI/CD, obvladovanje vseh odtenkov dela z GitLab CI in začetek uporabe najboljših praks je mogoče skozi videotečaj . Pridružite se!
Izvor: habr.com
