
HashiCorp har præsenteret et nyt projekt og få en fungerende kommando. . Det bruger en HCL-baseret fil til at beskrive bygning, levering og frigivelse af applikationer til forskellige cloud-platforme, fra Kubernetes til AWS og Google Cloud Run. Waypoint kan tænkes som en kombination af Terraform og Vagrant til at beskrive processen for bygning, levering og frigivelse af dine applikationer.
Uden at ændre sig selv, har HashiCorp udgivet Waypoint med open source, og der følger en række eksempler med. Niveauet for orkestratoren er op til dig, Waypoint leveres som en eksekverbar fil, som du kan køre direkte på din bærbare computer eller fra det CI/CD-værktøj, du vælger. Målet for udrulning af applikationer vælges også af dig, da Waypoint understøtter Kubernetes, Docker, Google Cloud Run, AWS ECS og andre.
Efter at have læst de fantastiske og imponerende applikationer, der er tilgængelige fra HashiCorp, besluttede vi at tage et nærmere kig på orkestrationen af Waypoint ved hjælp af GitLab CI/CD. For at gøre dette vil vi tage en simpel Node.js-applikation, der kører på AWS ECS, fra eksempelsamlingen.
Efter at have klonet repositoryet vil vi se på strukturen af applikationen, der viser én side:

Som du måske har bemærket, er der ikke noget Dockerfile i dette projekt. De er ikke tilføjet i eksemplet, da de ikke er nødvendige for os, da Waypoint vil tage sig af dem for os. Lad os se nærmere på filen waypoint.hcl, for at forstå, hvad den vil gøre:
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"
}
}
}På byggetrinnet bruger Waypoint Cloud Native Buildpacks (), for at bestemme programmeringssproget for projektet og oprette et Docker-billede uden brug af Dockerfile. Grundlæggende er det den samme teknologi, som GitLab bruger til ved trin Auto Build. Det er dejligt at se, at CNB fra CNCF får mere og mere udbredelse blandt branchens brugere.
Så snart billedet er bygget, vil Waypoint automatisk uploade det til vores AWS ECR-register, så det er klart til levering. Efter bygningen bruger leveringsfasen til at udrul vores applikation i vores AWS-konto.
Fra min bærbare computer er alt enkelt. Jeg installerer Waypoint, som allerede er godkendt i min AWS-konto, og det "bare fungerer". Men hvad nu hvis jeg ønsker at gå ud over min bærbare computer? Eller hvis jeg pludselig vil automatisere denne implementering som en del af min samlede CI/CD-pipeline, hvor mine nuværende integrationstests, sikkerhedstests og andre kører? Det er her GitLab CI/CD kommer ind i billedet!
N.B. Hvis du lige planlægger implementeringen af CI/CD eller ønsker at begynde at anvende bedste praksis for opbygning af pipelines, tjek den nye Sløyrm kursus. . Det er nu tilgængeligt til en forudbestillingspris.
Waypoint i GitLab CI/CD
For at orkestrere alt dette i GitLab CI/CD lad os se på, hvad vi har brug for i vores fil. .gitlab-ci.yml:
- Først og fremmest har vi brug for et grundlæggende billede til at køre inde i. Waypoint fungerer på enhver Linux-distribution, den kræver kun Docker, så vi kan starte med et generisk Docker-billede.
- Dernæst skal vi installere Waypoint i dette billede. I fremtiden kan vi samle og containerisere denne proces for os selv.
- Endelig vil vi køre Waypoint-kommandoer.
Ovenfor er alt beskrevet, hvad vores pipeline har brug for for at køre de nødvendige scripts til at udføre implementeringen, men til implementering i AWS har vi brug for en ting mere: vi skal autorisere os i vores AWS-konto. I Waypoint-beskrivelsen for autentificering og autorisering. HashiCorp har også frigivet et imponerende projekt . Men indtil videre kan vi bare tage og håndtere autentificeringen og autoriseringen selv.
Til autentificering af GitLab CICD i AWS er der flere muligheder. Den første mulighed er at bruge den indbyggede . Det vil være passende, hvis dit team allerede bruger Vault til at administrere legitimationsoplysninger. En anden metode, der passer, hvis dit team håndterer autorisering gennem AWS IAM - tjek at leveringsopgaverne kører gennem , autoriseret til at udføre implementeringer gennem IAM. Men hvis du blot vil lære Waypoint at kende og vil gøre det hurtigere, er der en sidste mulighed - at tilføje dine AWS API-nøgler og hemmelige nøgler i AWS_ACCESS_KEY_ID og AWS_SECRET_ACCESS_KEY.
Samler det hele
Når vi har styr på autentificeringen, kan vi begynde! Vores endelige .gitlab-ci.yml ser sådan ud:
waypoint:
image: docker:latest
stage: build
services:
- docker:dind
# Definér miljøvariabler, f.eks. `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 releaseDu ser, at vi starter med billedet docker:latest og sætter nogle miljøvariabler, som Waypoint kræver. I sektionen script henter vi den seneste version af Waypoint eksekverbar fil og installerer den i /usr/local/bin. Da vores runner allerede er godkendt i AWS, kører vi blot waypoint init, build, deploy og release.
Udgangen fra build-opgaven vil vise os endpointet, hvor vi har implementeret applikationen:

Waypoint er en af som fungerer glimrende sammen med GitLab. For eksempel kan vi, ud over implementeringen af applikationen, orkestrere den underliggende infrastruktur ved hjælp af For standardisering af sikkerhed i SDLC kan vi også integrere til at håndtere hemmeligheder og tokens i CI/CD pipelines, hvilket giver en samlet løsning for udviklere og administratorer, der er afhængige af hemmelighedshåndtering under udvikling, test og produktion.
Samarbejds løsninger udviklet af HashiCorp og GitLab hjælper virksomheder med at finde den bedste måde at udvikle applikationer på, hvilket sikrer konsekvent management af leveringsstreams og infrastruktur. Waypoint tog endnu et skridt i den rigtige retning, og vi ser frem til yderligere udvikling af projektet. Du kan læse mere om Waypoint , det er også værd at undersøge og projektet. Vi har tilføjet den viden, vi har opnået, til Hvis du vil prøve alt i praksis selv, kan du finde et komplet fungerende eksempel i .
For at forstå principperne bag CI/CD, mestre alle nuancerne ved at arbejde med GitLab CI og begynde at anvende bedste praksis, kan du tage videokurset . Kom med!
Kilde: habr.com
