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

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

Для кого

Самоучитель ориентирован в первую очередь на разработчиков, которые хотели бы познакомиться с практической составляющей в обеспечении непрерывной доставки своих приложений в K8s.

Инженеры эксплуатации, которые сталкиваются с задачами по CI/CD в своей работе, тоже найдут в самоучителе много полезного — особенно в его последнем разделе с лучшими практиками.

Что внутри

Материалы включают базовую теорию и практику, охватывают и разработку (Dev), и эксплуатацию (Ops). Самоучитель рассчитан на «ванильный» Kubernetes-кластер, но инструкции и примеры нетрудно адаптировать под кастомизированные сборки.

Сейчас доступны разделы:

  • «Первые шаги» — подходит для всех пользователеей и не привязан к определенному фреймворку;

  • руководства по реалистичным приложениям на Ruby on Rails, Node.js и Laravel (позже появятся и другие фреймворки);

  • «Лучшие практики деплоя» — еще один универсальный раздел, который помогает правильно развертывать приложения в Kubernetes, управлять их жизненным циклом и ресурсами.

Все они опубликованы в версиях на двух языках: русском и английском. Приводимые в них инструкции доступны для операционных систем Linux, macOS и Windows.

Особенности разделов

В «Первых шагах» рассказывается, как собрать Docker-образ и развернуть его в Kubernetes с помощью werf. В качестве приложения используется простой shell-скрипт: при обращении на endpoint /ping он возвращает pong

Последовательно рассматриваются стадии:

  • сборки образа;

  • подготовки окружения; 

  • деплоя в кластер;

  • дальнейшей жизни приложения (изменение в его коде или его инфраструктуре).

Также «Первые шаги» знакомят с некоторыми ресурсами в Kubernetes и основными функциями werf v1.2.

В разделе «Реалистичные приложения» рассматривается пример создания простейшего приложения на одном из выбранных фреймворков — Rails, Node.js и Laravel. Приложение постепенно прибавляет в функциональности, становясь все более реалистичным.

Для этого оно проходит через:

  • настройку логирования;

  • раздачу ассетов;

  • работу с базой данных — на примере MySQL, которая разворачивается прямо в кластере как StatefulSet;

  • работу с файлами в Kubernetes — на примере S3-хранилища MinIO;

  • работу с конфигурациями и секретами с помощью в ConfigMap и Secret.

В «Лучших практиках деплоя» рассказано, как правильно развертывать высокодоступные приложения в Kubernetes, управлять их жизненным циклом и ресурсами. Среди прочего даны рекомендации по настройке:

  • healthcheck’ов — readiness- и liveness-проб;

  • реплик приложения;

  • стратегий обновления.

Что дальше

Попробуйте самоучитель, а мы будем очень рады обратной связи, которую можно также оставлять в Telegram-чате werf_ru!

Скоро самоучитель пополнится новыми примерами реалистичных приложений на других языках/фреймворках: Java (Spring Boot), Python (Django) и Go. Разработка материалов ведется в открытом репозитории.

P. S. 

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