
HashiCorp esitles uut projekti jÀrgnevaga . See kasutab HCL-pÔhist faili rakenduste koostamiseks, tarnimiseks ja vÀljalaskmiseks erinevatele pilveplatvormidele, sealhulgas Kubernetes, AWS ja Google Cloud Run. Waypointit vÔib vÔrrelda Terraformi ja Vagrandi kombinatsiooniga, mis kirjeldab teie rakenduste koostamise, tarnimise ja vÀljalaskeprotsessi.
Oma avatuse sĂ€ilitades on HashiCorp vĂ€lja andnud avatud lĂ€htekoodiga Waypointi, millele on lisatud mitmeid nĂ€idiseid. Orkestratsiooni tase jÀÀb teie valida, kuna Waypoint on vĂ€ljastatud kĂ€ivitatava failina, mida saate kĂ€ivitada otse oma sĂŒlearvutis vĂ”i valitud CI/CD orkestratsiooni tööriistast. Rakenduste juurutamise eesmĂ€rk on samuti teie valida, kuna Waypoint toetab Kubernetesit, Dockerit, Google Cloud Runi, AWS ECS-i ja teisi.
PÀrast fantastiliste ja uhkete rakendustest, mille on pakkunud HashiCorp, otsustasime lÀhemalt vaadata Waypointi orkestratsiooni GitLabi CI/CD abil. Selleks vÔtame kasutusele lihtsa Node.js rakenduse, mida kÀitatakse AWS ECS-is, ja toome selle nÀidispoest.
PĂ€rast reposti kloonimist vaatame rakenduse struktuuri, mis kuvab ĂŒhte lehte:

Kuidas te ilmselt mĂ€rkisite, selles projektis puudub Dockerfile. Need ei ole nĂ€ites lisatud, kuna nad ei ole meile ĂŒldiselt vajalikud, sest Waypoint hoolitseb nende eest meie eest. Vaatame lĂ€hemalt faili waypoint.hcl, et mĂ”ista, mida see teeb:
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"
}
}
}Kogumise etapis kasutab Waypoint Cloud Native Buildpacks (), et mÀÀrata projekti programmeerimiskeel ja luua Docker image ilma Dockerfile'i kasutamata. PĂ”himĂ”tteliselt on see sama tehnoloogia, mida GitLab kasutab Auto Build'i sammul. Tore on nĂ€ha, et CNB CNCF poolt on tööstuses ĂŒha enam levinud.
Kuni pilt on kogutud, laadib Waypoint selle automaatselt meie AWS ECR registrisse, et see oleks valmis tarnimiseks. Kogumise lÔppedes kasutatakse tarnimise sammus meie rakenduse juurutamiseks meie AWS kontole.
Minu sĂŒlearvutist â kĂ”ik on lihtne. Panen paika Waypointi, mis on juba minu AWS kontoga autentitud, ja see âlihtsalt töötabâ. Aga mis juhtub, kui ma tahan minna kaugemale oma sĂŒlearvutist? VĂ”i Ă€kki tahan automatiseerida seda juurutamist osana oma CI/CD kogumisst, kus kĂ€ivitatakse mu praegused integratsiooni testid, turvatestid ja muud? Just siin tulebki mĂ€ngu GitLab CI/CD!
N.B. Kui plaanite alles CI/CD juurutamist vĂ”i soovite alustada parimate praktikate rakendamist torujuhtmete loomisel, vaadake SlĂ«rma uut kursust. . See on nĂŒĂŒd saadaval ettetellimise hinnaga.
Waypoint GitLab CI/CD-s
Kogu selle orkestreerimiseks GitLab CI/CD-s vaatame, mida me vajame meie failis. .gitlab-ci.yml:
- Esmalt on vajalik pÔhikuju, mille sees seda kÀivitada. Waypoint töötab igas Linuxi jaotuses, vajab vaid Dockerit, nii et saame alustada generic Docker pildist.
- SeejÀrel tuleb Waypoint see pilt installida. Tulevikus saame luua ja konteineriseerida selle protsessi enda jaoks.
- LÔpuks kÀivitame Waypointi kÀsud.
Ălaltoodud on kĂ”ik, mida meie sĂŒsteem vajab rakenduste skriptide kĂ€ivitamiseks, kuid AWS-is kĂ€ivitamiseks vajame veel ĂŒhte asja: peame enda AWS-i kontole sisse logima. Waypointi dokumentatsiooni pĂ”hjal autentimise ja autoriseerimise kohta. HashiCorp avaldas sel nĂ€dalal ka muljetavaldava projekti . Kuid praegu saame lihtsalt ise autentimise ja autoriseerimise kĂ€sitleda.
AWS-i autentimiseks GitLab CICD-s on mitmeid vĂ”imalusi. Esimene valik on sisseehitatud . See sobib, kui teie meeskond juba kasutab Vaulti volituste haldamiseks. Teine viis, mis sobib, kui teie tiim haldab autoriseerimist AWS IAM-i kaudu â veenduge, et tarnetooted kĂ€ivitatakse. , mis on volitatud kĂ€ivitama IAM-i kaudu rakendust. Kuid kui soovite lihtsalt Waypointiga tutvuda ja seda kiiremini teha, on viimane variant â lisada oma AWS API ja Secret vĂ”tmed AWS_ACCESS_KEY_ID ja AWS_SECRET_ACCESS_KEY.
Koondame kÔik kokku
NĂŒĂŒd, kui oleme autentimisega toime tulnud, saame alustada! Meie lĂ”plik .gitlab-ci.yml nĂ€eb vĂ€lja nii:
waypoint:
image: docker:latest
stage: build
services:
- docker:dind
# MÀÀrake keskkonnamuutujad, nt `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 releaseNÀete, et alustame pildist docker:latest ja mÀÀrame mÔned keskkonnamuutujad, mis on Waypointi jaoks vajalikud. Jaotises script me laadime alla Waypointi viimase versiooni ja paigaldame selle /usr/local/bin. Kuna meie runner on juba AWS-is autoriseeritud, kÀivitame lihtsalt waypoint init, build, deploy ja release.
Kogumise ĂŒlesande vĂ€ljund nĂ€itab meile lĂ”pp-punkti, kuhu rakenduse vĂ€lja panime:

Waypoint on ĂŒks , mis töötavad hĂ€sti GitLabiga. NĂ€iteks rakenduse tarnimise kĂ”rval saame orkestreerida aluse infrastruktuuri . SDLC turva standardiseerimiseks saame samuti integreerida salajasusteemide ja tokenite haldamiseks CI/CD torudes, pakkudes terviklikku lahendust arendajatele ja administraatoritele, kes sĂ”ltuvad saladuste haldamisest arendamisel, testimisel ja ka tööstuslikul kasutamisel.
HashiCorpi ja GitLabi koostöös loodud lahendused aitavad ettevĂ”tetel leida parima rakenduste arendamise viisi, tagades sujuva tarnete haldamise ja infrastruktuuri. Waypoint tegi veel ĂŒhe sammu Ă”iges suunas ning ootame innukalt projekti edasist arengut. Lisainformatsiooni saamiseks Waypointi kohta , tasub uurida ja projekti. Omandasime meie teadmised . Kui soovite kĂ”ike ise praktikas proovida, siis saate tĂ€ispika töötava nĂ€ite .
CI/CD pÔhimÔtete mÔistmiseks, GitLab CI töödetailide omandamiseks ja parimate praktikate rakendamiseks on vÔimalik osaleda videokursusel . Liituge!
Allikas: habr.com
