Рады представить новую версию онлайн-самоучителя по 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.
Читайте также в нашем блоге:
Автор: Oleg Zinovyev