
HashiCorp představila nový projekt na . Využívá soubor založený na HCL pro popis sestavení, dodání a vydání aplikací pro různé cloudové platformy, od Kubernetes po AWS a Google Cloud Run. Je možné si představit, že Waypoint je kombinací Terraform a Vagrant pro popis procesu sestavení, dodání a vydání vašich aplikací.
Zůstávajíc věrná sama sobě, HashiCorp vydala Waypoint jako open-source, přičemž obsahuje také mnoho příkladů. Úroveň orchestrátoru závisí na vás, Waypoint je dodáván jako spustitelný soubor, který můžete spustit přímo na vašem notebooku nebo z nástroje CI/CD, který si vyberete. Cíl pro nasazení aplikací si rovněž vybíráte vy, protože Waypoint podporuje Kubernetes, Docker, Google Cloud Run, AWS ECS a další.
Po přečtení úžasných a skvělých aplikací, které poskytla HashiCorp, jsme se rozhodli podívat blíže na orchestraci Waypoint pomocí GitLab CI/CD. Abychom to udělali, vezmeme jednoduchou aplikaci Node.js běžící na AWS ECS z repozitáře příkladů.
Po zklonování repozitáře se podíváme na strukturu aplikace, která zobrazuje jednu stránku:

Jak jste si mohli všimnout, v tomto projektu není Dockerfile. Nebyly přidány do příkladu, protože je v zásadě nepotřebujeme, jelikož se o ně postará Waypoint. Podívejme se podrobněji na soubor waypoint.hcl, abychom pochopili, co bude dělat:
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"
}
}
}Během fáze sestavení Waypoint použije Cloud Native Buildpacks (), aby určil programovací jazyk projektu a vytvořil obraz pro Docker bez použití Dockerfile. V podstatě se jedná o stejnou technologii, kterou používá GitLab v části v kroku Auto Build. Je příjemné vidět, že CNB od CNCF získává stále větší popularitu mezi uživateli v oboru.
Jakmile je obraz sestaven, Waypoint jej automaticky nahraje do naší AWS ECR registru, aby byl připraven k dodání. Po dokončení sestavení krok dodání využívá pro nasazení naší aplikace do našeho účtu AWS.
Z mého notebooku — vše je snadné. Nainstaluji Waypoint, který je již ověřený v mém účtu AWS, a „prostě to funguje“. Ale co když chci vyrazit za hranice svého notebooku? Nebo náhle chci tento nasazení automatizovat jako součást svého celkového CI/CD pipeline, ve které probíhají mé aktuální integrační testy, bezpečnostní testy a další? To je ta část příběhu, kde přichází na scénu GitLab CI/CD!
N.B. Pokud teprve plánujete implementaci CI/CD nebo chcete začít používat osvědčené postupy pro budování pipeline, podívejte se na nový kurz Slěrma. . Nyní je dostupný za cenu předobjednávky.
Waypoint v GitLab CI/CD
Pro orchestraci všeho v GitLab CI/CD se podívejme, co potřebujeme v našem souboru. .gitlab-ci.yml:
- Nejprve potřebujeme základní obraz pro jeho spuštění. Waypoint funguje na jakékoli distribuci Linuxu, potřebuje pouze Docker, takže můžeme spustit s generickým obrazem Docker.
- Dále musíme nainstalovat Waypoint do tohoto obrazu. V budoucnu můžeme vytvořit a tento proces kontejnerizovat pro sebe.
- Nakonec spustíme příkazy Waypoint.
Výše je uvedeno vše, co náš pipeline potřebuje k spuštění potřebných skriptů pro nasazení, ale pro nasazení do AWS potřebujeme ještě jednu věc: musíme se autorizovat do našeho účtu AWS. V popisu Waypoint o autentizaci a autorizaci. HashiCorp tento týden také vydal působivý projekt . Ale prozatím můžeme prostě zpracovat autentizaci a autorizaci sami.
Pro autentizaci GitLab CICD do AWS existuje několik možností. První možností je použití integrovaného . Ten se hodí, pokud vaše tým již používá Vault pro správu přihlašovacích údajů. Další způsob, který se hodí, pokud vaše tým spravuje autorizaci pomocí AWS IAM — zkontrolujte, zda úlohy dodávky jsou spuštěny prostřednictvím , autorizované k provádění nasazení prostřednictvím IAM. Ale pokud se jen chcete seznámit s Waypoint a chcete to udělat rychleji, existuje poslední možnost — přidat své klíče AWS API a Secret do AWS_ACCESS_KEY_ID a AWS_SECRET_ACCESS_KEY.
Shromáždíme všechno dohromady
Jakmile máme vyřešenou autentizaci, můžeme začít! Náš finální .gitlab-ci.yml vypadá takto:
waypoint:
image: docker:latest
stage: build
services:
- docker:dind
# Definujte proměnné prostředí, např. `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 releaseVidíte, že začínáme s obrazem docker:latest a nastavujeme několik proměnných prostředí potřebných pro Waypoint. V sekci script stahujeme nejnovější verzi spustitelného souboru Waypoint a instalujeme jej do /usr/local/bin. Protože je náš runner již autorizován v AWS, dále jednoduše spustíme waypoint init, build, deploy a release.
Výstup úlohy pro sestavení nám ukáže endpoint, kam jsme aplikaci nasadili:

Waypoint je jedním z , které skvěle spolupracují s GitLabem. Například kromě dodání aplikace můžeme orchestraci podkladové infrastruktury provádět pomocí . Pro standardizaci bezpečnosti SDLC můžeme také integrovat pro správu tajemství a tokenů v CI/CD pipelinech, což poskytuje komplexní řešení pro vývojáře a administrátory, kteří se spoléhají na správu tajemství při vývoji, testování i produkčním použití.
Společná řešení, která vytvořili HashiCorp a GitLab, pomáhají společnostem najít nejlepší způsob vývoje aplikací, zajišťujícím konzistentní správu dodacích toků a infrastruktury. Waypoint udělal další krok správným směrem a my se těšíme na další vývoj projektu. Můžete se dozvědět více o Waypoint , také stojí za to prostudovat a projektu. Přidali jsme naše poznatky do . Pokud chcete vše vyzkoušet na vlastní kůži, můžete si vzít kompletní funkční příklad v .
Pochopit principy CI/CD, osvojit si všechny nuance práce s Gitlab CI a začít aplikovat nejlepší praktiky lze kurzem . Připojte se!
Zdroj: habr.com
