
HashiCorp показа нов проект на . Той използва файл на базата на HCL за описание на изграждането, доставката и пускането на приложения за различни облачни платформи, от Kubernetes до AWS и Google Cloud Run. Може да се представи, че Waypoint е комбинация от Terraform и Vagrant за описание на процеса на изграждане, доставка и пускане на вашите приложения.
Без да се променя, HashiCorp пусна Waypoint с отворен код, като към него е приложен набор от примери. Нивото на оркестратора остава за вас; Waypoint идва като изпълним файл, който можете да стартирате направо на вашия лаптоп или от избраният от вас CI/CD инструмент за оркестрация. Целта за внедряване на приложения също е ваша, тъй като Waypoint поддържа Kubernetes, Docker, Google Cloud Run, AWS ECS и други.
След като прочетохме невероятните и страхотни приложения, предоставени от HashiCorp, решихме да погледнем по-близо на оркестрацията на Waypoint с помощта на GitLab CI/CD. За да направим това, ще вземем просто приложение Node.js, стартирано на AWS ECS, от репозитория с примери.
След клониране на репозитория ще разгледаме структурата на приложението, което показва една страница:

Както може би сте забелязали, в този проект няма Dockerfile. Те не са добавени в примера, тъй като не са ни необходими, тъй като Waypoint ще се погрижи за тях вместо нас. Нека разгледаме по-подробно файла waypoint.hcl, за да разберем какво ще прави:
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"
}
}
}На етапа на изграждане Waypoint използва Cloud Native Buildpacks (), за да определи програмния език на проекта и да създаде образ за Docker без използване на Dockerfile. В принципе, това е същата технология, която GitLab използва в частта за на стъпка Auto Build. Приятно е да видим, че CNB от CNCF получава все по-голямо разпространение сред потребителите от индустрията.
След като образът е създаден, Waypoint автоматично ще го качи в нашия AWS ECR регистър, за да бъде готов за доставка. След завършването на изграждането стъпката за доставка използва за внедряване на нашето приложение в нашия AWS акаунт.
От моя лаптоп всичко е просто. Инсталирам Waypoint, който вече е удостоверен в моя AWS акаунт, и то "просто работи". Но какво ще стане, ако искам да изляза извън лаптопа си? Или ако искам да автоматизирам това разгръщане като част от моя общ CI/CD конвейер, където се изпълняват текущите ми интеграционни тестове, тестове за сигурност и т.н.? Тук влиза GitLab CI/CD!
Забележка. Ако все още планирате внедряване на CI/CD или искате да започнете да прилагате най-добрите практики за изграждане на пайплайни, обърнете внимание на новия курс на Слёрма . В момента е наличен на цена за предварителна поръчка.
Waypoint в GitLab CI/CD
За да оркестрираме всичко това в GitLab CI/CD, да видим какво ще ни бъде нужно в нашия файл .gitlab-ci.yml:
- На първо място, необходим е базов образ за стартиране в него. Waypoint работи на всяко Linux дистрибуция, нуждае се само от Docker, така че можем да стартираме с общ образ на Docker.
- След това трябва да инсталираме Waypoint в този образ. В бъдеще можем да създадем и да контейнеризираме този процес за себе си.
- Накрая ще стартираме командите на Waypoint.
По-горе е описано всичко, което ще е нужно на нашия конвейер за изпълнение на скриптовете, необходими за разгръщането, но за разгръщане в AWS, ще ни трябва още нещо: трябва да се удостоверим в нашия AWS акаунт. В описанието на Waypoint за удостоверяване и авторизация. HashiCorp също така тази седмица пусна впечатляващ проект . Но в момента можем просто сами да обработим удостоверяването и авторизацията.
За удостоверяване на GitLab CI/CD в AWS има няколко опции. Първата опция е използването на вграденото . То е подходящо, ако вашият екип вече използва Vault за управление на данни за вход. Все още един вариант, който е подходящ, ако вашият екип управлява авторизацията с AWS IAM — уверете се, че задачите за доставка се стартират през , удостоверен за изпълнение на разгръщането през IAM. Но ако просто искате да се запознаете с Waypoint и искате да го направите по-бързо, има последен вариант — добавете вашите AWS API и Secret ключове в AWS_ACCESS_KEY_ID и AWS_SECRET_ACCESS_KEY.
Събирайки всичко заедно
След като се справихме с удостоверяването, можем да започваме! Нашият окончателен .gitlab-ci.yml изглежда така:
точка пути:
изображение: docker:latest
этап: сборка
сервисы:
- docker:dind
# Определите переменные среды, например, `WAYPOINT_VERSION: '0.1.1'`
переменные:
WAYPOINT_VERSION: ''
WAYPOINT_SERVER_ADDR: ''
WAYPOINT_SERVER_TOKEN: ''
WAYPOINT_SERVER_TLS: '1'
WAYPOINT_SERVER_TLS_SKIP_VERIFY: '1'
скрипт:
- 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 releaseВидите, что мы начинаем с образа docker:latest и устанавливаем несколько переменных окружения, требуемых для Waypoint. В разделе скрипт мы скачиваем последнюю версию исполняемого файла Waypoint и ставим его в /usr/local/bin. Поскольку наш runner уже авторизован в AWS, далее мы просто запускаем waypoint init, build, deploy и release.
Вывод задачи по сборке покажет нам endpoint, куда мы раскатили приложение:

Waypoint одно из , отлично работающих с GitLab. Например, в дополнение к поставке приложения мы можем оркестрировать нижележащую инфраструктуру с помощью . Для стандартизации безопасности SDLC, мы можем также внедрить для управления секретами и токенами в конвейерах CI/CD, предоставляя целостное решение для разработчиков и администраторов, полагающихся на управление секретами при разработке, тестировании, а также промышленном использовании.
Совместные решения, разработанные HashiCorp и GitLab, помогают компаниям найти лучший способ разработки приложений, обеспечивая согласованное управление потоками поставки и инфраструктурой. Waypoint сделали еще один шаг в верном направлении, и мы с нетерпением ожидаем дальнейшего развития проекта. Вы можете узнать больше о Waypoint , также стоит изучить и проекта. Мы добавили полученные нами знания в . Если вы хотите попробовать все в работе самостоятельно, можете взять полный работоспособный пример в .
Понять принципы CI/CD, освоить все тонкости работы с Gitlab CI и начать применять лучшие практики можно, пройдя видеокурс . Присоединяйтесь!
Източник: habr.com
