
HashiCorp tregoi një projekt të ri në . Ai përdor një skedar të bazuar në HCL për të përshkruar ndërtimin, dorëzimin dhe lëshimin e aplikacioneve për platforma të ndryshme cloud, duke filluar nga Kubernetes dhe duke përfunduar me AWS dhe Google Cloud Run. Mund të imagjinoni se Waypoint është si kombinimi i Terraform dhe Vagrant për të përshkruar procesin e ndërtimit, dorëzimit dhe lëshimit të aplikacioneve tuaja.
Pa ndryshuar vetveten, HashiCorp lëshoi Waypoint me kod burimi të hapur, gjithashtu vjen me shumë shembuj. Niveli i orkestruesit mbetet për ju, Waypoint vjen si një skedar ekzekutues që mund ta lançoni direkt në laptopin tuaj ose nga mjeti i orkestrimit CI/CD të zgjedhur. Qëllimi për shpërndarjen e aplikacioneve gjithashtu zgjidhet nga ju, pasi Waypoint mbështet Kubernetes, Docker, Google Cloud Run, AWS ECS dhe të tjerë.
Pas leximit të jashtëzakonshme dhe mahnitëse aplikacioneve të ofruara nga HashiCorp, vendosëm të shohim më afër orkestrimin e Waypoint me GitLab CI/CD. Për ta bërë këtë, do të marrim një aplikacion të thjeshtë Node.js, që drejtohet në AWS ECS, nga repozitori i shembujve.
Pas klonimit të repozitorit do të shohim strukturën e aplikacionit që shfaq një faqe:

Siç mund të keni vënë re, në këtë projekt nuk ka Dockerfile. Ato nuk janë shtuar në shembuj, pasi në parim nuk na duhen, sepse Waypoint do të kujdeset për to. Le të shqyrtojmë më në detaje skedarin waypoint.hcl, për të kuptuar se çfarë do të bëjë:
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"
}
}
}Në fazën e ndërtimit, Waypoint përdor Cloud Native Buildpacks (), për të identifikuar gjuhën programuese të projektit dhe për të krijuar një imazh për Docker pa përdorur Dockerfile. Në parim, kjo është e njëjta teknologji që përdor GitLab në pjesën në hapin Auto Build. Gëzuar të shohim se CNB nga CNCF po fiton më shumë popullaritet me përdoruesit nga industria.
Sa herë që imazhi është ndërtuar, Waypoint automatikisht do ta ngarkojë në regjistrin tonë AWS ECR, që të jetë gati për dorëzim. Pas përfundimit të ndërtimit, hapi i dorëzimit përdor për të shpërndarë aplikacionin tonë në llogarinë tonë AWS.
Nga laptopi im - gjithçka është e thjeshtë. Instaloj Waypoint, i cili është autentikuar në llogarinë time AWS, dhe ai "funksionon thjesht". Por, çfarë do të ndodhë nëse dëshiroj të shkoj përtej laptopit tim? Apo papritmas dua të automatizoj këtë shpërndarje si pjesë e pipeline-it tim të përgjithshëm CI/CD, ku ekzekutohen provat e mia të integrimit, provat e sigurisë dhe të tjera? Kjo është pjesa e tregimit ku hyn GitLab CI/CD!
Shënim: Nëse sapo po planifikoni të implementoni CI/CD ose dëshironi të filloni të aplikoni praktikat më të mira për ndërtimin e pipeline-ve, shikoni kursin e ri të Slyrmës. . Tani është i disponueshëm me një çmim parashtrimi.
Waypoint në GitLab CI/CD
Për të orkestruar gjithçka në GitLab CI/CD, le të shohim se çfarë na nevojitet në skedarin tonë .gitlab-ci.yml:
- Së pari, na nevojitet një imazh bazë për të ekzekutuar brenda tij. Waypoint funksionon në çdo distribuim Linux, ka nevojë vetëm për Docker, kështu që mund të ekzekutojmë nga një imazh të përgjithshëm Docker.
- Më pas, duhet të instalojmë Waypoint në këtë imazh. Në të ardhmen, mund të ndërtojmë dhe ta kontenizojmë këtë proces për vete.
- Së fundi, do të ekzekutojmë komandat Waypoint
Më sipër është përshkruar gjithçka që i nevojitet pipeline-it tonë për të ekzekutuar skenaret e nevojshme për shpërndarjen, por për shpërndarjen në AWS, na duhet një gjë tjetër: duhet të autorizohemi në llogarinë tonë AWS. Në përshkrimin e Waypoint-it për autentifikimin dhe autorizimin. HashiCorp gjithashtu lançoi një projekt impresionues këtë javë . Por për momentin, mund ta trajtojmë thjesht vetë autentifikimin dhe autorizimin.
Për autentifikimin e GitLab CICD në AWS, ka disa mundësi. Opcioni i parë - përdorimi i integruar . Do të ishte i dobishëm nëse ekipi juaj tashmë përdor Vault për menaxhimin e kredencialeve. Një tjetër mënyrë, e cila është e përshtatshme nëse ekipi juaj menaxhon autorizimin me AWS IAM - sigurohuni që detyrat e shpërndarjes ekzekutohen përmes , të autorizuar për të ekzekutuar shpërndarjen përmes IAM. Por nëse thjesht dëshironi të njihni Waypoint dhe dëshironi ta bëni këtë më shpejt, ka një mundësi të fundit - shtoni çelësat tuaj AWS API dhe Secret në AWS_ACCESS_KEY_ID dhe AWS_SECRET_ACCESS_KEY.
Mblidhemi të gjithë së bashku
Pasi të kemi sqaruar autentifikimin, mund të fillojmë! Në fundin tonë .gitlab-ci.yml duhet të duket kështu:
waypoint:
image: docker:latest
stage: build
services:
- docker:dind
# Definoni variablat e mjedisit, p.sh. `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 releaseJu lutem vini re në fillim me imazhin docker:latest dhe vendosni disa variabla ambientalë të nevojshëm për Waypoint. Në seksionin script ne shkarkojmë versionin më të fundit të skedarit ekzekutues Waypoint dhe e vendosim atë në /usr/local/bin. Të qenit që runner-i ynë është tashmë i autorizuar në AWS, ne thjesht ekzekutojmë waypoint init, build, deploy dhe release.
Dërgesa e detyrës së ndërtimit do të na tregojë endpoint-in ku e kemi vendosur aplikacionin:

Waypoint është një nga , duke funksionuar shkëlqyer me GitLab. Për shembull, përveç dërgimit të aplikacioneve, ne mund të orkestrojmë infrastrukturën poshtë me anë të . Për të standardizuar sigurinë në SDLC, ne mund të integrojmë gjithashtu për menaxhimin e sekreteve dhe tokenëve në linjat CI/CD, duke ofruar një zgjidhje gjithëpërfshirëse për zhvilluesit dhe administratorët që mbështeten në menaxhimin e sekreteve gjatë zhvillimit, testimit, si dhe përdorimit industrial.
Zgjidhjet bashkëpunuese të zhvilluara nga HashiCorp dhe GitLab ndihmojnë kompanitë të gjejnë mënyrën më të mirë për të zhvilluar aplikacione, duke ofruar menaxhim të qëndrueshëm të rrjedhave të dërgimit dhe infrastrukturës. Waypoint ka bërë një tjetër hap në drejtimin e duhur, dhe ne presim me padurim zhvillimin e mëtejshëm të projektit. Mund të mësoni më shumë për Waypoint , gjithashtu ia vlen të hidhni një sy dhe projektit. Ne kemi shtuar njohuritë tona në . Nëse dëshironi të provoni gjithçka në punë për vetë, mund të merrni një shembull funksional të plotë në .
Të kuptosh parimet e CI/CD, të zotësosh të gjitha nuancat e punës me Gitlab CI dhe të fillosh të zbatosh praktikat më të mira mund të arrihet duke kaluar nëpër kursin video . Bashkohuni!
Burimi: habr.com
