- PVSM.RU - https://www.pvsm.ru -

Представляем онлайн-самоучитель по Kubernetes и деплою с werf для разработчиков

Рады представить новую версию онлайн-самоучителя по werf [1], нашей CI/CD-утилите с открытым кодом!

Общая идея самоучителя — познакомить разработчиков с Kubernetes, показав на простых приложениях (готовы примеры для Ruby on Rails, Node.js и Laravel), как можно развертывать приложения в K8s с помощью werf [2]. Это отличная возможность быстро освоить практические основы K8s без погружения в его объемную теоретическую базу. Если вы еще не решили, как провести новогодние каникулы с пользой, — вот вам идея.

Представляем онлайн-самоучитель по Kubernetes и деплою с werf для разработчиков - 1

Для кого

Самоучитель ориентирован в первую очередь на разработчиков, которые хотели бы познакомиться с практической составляющей в обеспечении непрерывной доставки своих приложений в 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].

Представляем онлайн-самоучитель по Kubernetes и деплою с werf для разработчиков - 2

В разделе «Реалистичные приложения» рассматривается пример создания простейшего приложения на одном из выбранных фреймворков — 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].

P. S. 

Читайте также в нашем блоге:

Автор: 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