- PVSM.RU - https://www.pvsm.ru -
Рады представить новую версию онлайн-самоучителя по werf [1], нашей CI/CD-утилите с открытым кодом!
Общая идея самоучителя — познакомить разработчиков с Kubernetes, показав на простых приложениях (готовы примеры для Ruby on Rails, Node.js и Laravel), как можно развертывать приложения в K8s с помощью werf [2]. Это отличная возможность быстро освоить практические основы K8s без погружения в его объемную теоретическую базу. Если вы еще не решили, как провести новогодние каникулы с пользой, — вот вам идея.
Самоучитель ориентирован в первую очередь на разработчиков, которые хотели бы познакомиться с практической составляющей в обеспечении непрерывной доставки своих приложений в K8s.
Инженеры эксплуатации, которые сталкиваются с задачами по CI/CD в своей работе, тоже найдут в самоучителе много полезного — особенно в его последнем разделе с лучшими практиками.
Материалы включают базовую теорию и практику, охватывают и разработку (Dev), и эксплуатацию (Ops). Самоучитель рассчитан на «ванильный» Kubernetes-кластер, но инструкции и примеры нетрудно адаптировать под кастомизированные сборки.
Сейчас доступны разделы:
«Первые шаги [3]» — подходит для всех пользователеей и не привязан к определенному фреймворку;
руководства по реалистичным приложениям на Ruby on Rails [4], Node.js [5] и Laravel [6] (позже появятся и другие фреймворки);
«Лучшие практики деплоя [7]» — еще один универсальный раздел, который помогает правильно развертывать приложения в Kubernetes, управлять их жизненным циклом и ресурсами.
Все они опубликованы в версиях на двух языках: русском [1] и английском [8]. Приводимые в них инструкции доступны для операционных систем Linux, macOS и Windows.
В «Первых шагах» рассказывается, как собрать Docker-образ и развернуть его в Kubernetes с помощью werf. В качестве приложения используется простой shell-скрипт: при обращении на endpoint /ping
он возвращает pong
.
Последовательно рассматриваются стадии:
сборки образа;
подготовки окружения;
деплоя в кластер;
дальнейшей жизни приложения (изменение в его коде или его инфраструктуре).
Также «Первые шаги» содержат знакомят с некоторыми ресурсами в Kubernetes и основными функциями werf v1.2 [9].
В разделе «Реалистичные приложения» рассматривается пример создания простейшего приложения на одном из выбранных фреймворков — Rails, Node.js и Laravel. Приложение постепенно прибавляет в функциональности, становясь все более реалистичным.
Для этого оно проходит через:
настройку логирования;
раздачу ассетов;
работу с базой данных — на примере MySQL, которая разворачивается прямо в кластере как StatefulSet;
работу с файлами в Kubernetes — на примере S3-хранилища MinIO;
работу с конфигурациями и секретами с помощью в ConfigMap
и Secret
.
В «Лучших практиках деплоя» рассказано, как правильно развертывать высокодоступные приложения в Kubernetes, управлять их жизненным циклом и ресурсами. Среди прочего даны рекомендации по настройке:
healthcheck’ов — readiness- и liveness-проб;
реплик приложения;
стратегий обновления.
Попробуйте самоучитель [1], а мы будем очень рады обратной связи, которую можно также оставлять в Telegram-чате werf_ru [10]!
Скоро самоучитель пополнится новыми примерами реалистичных приложений на других языках/фреймворках: Java (Spring Boot), Python (Django) и Go. Разработка материалов ведется в открытом репозитории [11].
Читайте также в нашем блоге:
Автор: Oleg Zinovyev
Источник [14]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/node-js/370686
Ссылки в тексте:
[1] онлайн-самоучителя по werf: https://ru.werf.io/guides/
[2] werf: https://ru.werf.io/
[3] Первые шаги: https://ru.werf.io/guides/nodejs/100_basic.html
[4] на Ruby on Rails: https://ru.werf.io/guides/rails/200_real_apps/010_basic_app.html
[5] Node.js: https://ru.werf.io/guides/nodejs/200_real_apps/010_basic_app.html
[6] Laravel: https://ru.werf.io/guides/laravel/200_real_apps/010_basic_app.html
[7] Лучшие практики деплоя: https://ru.werf.io/guides/nodejs/300_deployment_practices.html
[8] английском: https://werf.io/guides/
[9] werf v1.2: https://habr.com/ru/company/flant/blog/592715/
[10] werf_ru: https://t.me/werf_ru
[11] в открытом репозитории: https://github.com/werf/website
[12] werf vs. Helm: корректно ли их вообще сравнивать?: https://habr.com/ru/company/flant/blog/554892/
[13] werf vs Docker. Чем лучше собирать образы: https://habr.com/ru/company/flant/blog/565598/
[14] Источник: https://habr.com/ru/post/596981/?utm_source=habrahabr&utm_medium=rss&utm_campaign=596981
Нажмите здесь для печати.