Deckhouse Application: с нуля до профи
Практический курс по разработке Deckhouse Application: Kubernetes, Deckhouse, Werf и Nelm с нуля до профессионального уровня.
Смотреть программу курса Начать с M0Этот курс превращает разработчика без опыта работы с Kubernetes в профессионального разработчика Deckhouse Application — пользовательских workload’ов платформы Deckhouse. Курс целиком посвящён Application: тема Module раскрывается только в объёме, необходимом Application-разработчику для понимания зависимостей и платформы, самостоятельная разработка Module — вне рамок курса.
Как устроен курс
- 12 модулей, 87 уроков, которые нужно проходить строго по порядку — каждый следующий урок опирается на предыдущие.
- Каждый урок — новое self-hosted open source приложение (лицензии MIT/Apache-2.0/GPL/AGPL), возрастающей сложности.
- Практический кластер —
kind+ Deckhouse CE, разворачивается в модуле M0 и используется во всех последующих уроках. - Прогресс и ответы на вопросы самопроверки сохраняются в
localStorageвашего браузера — без регистрации и смс. Прогресс можно сбросить в любой момент кнопкой в подвале сайта.
Сквозные связи, которые курс объясняет системно
flowchart TB
Dev["Разработчик"] -->|"werf build / d8 package build"| Registry["OCI Registry (packages/modules/...)"]
Registry -->|"ModuleSource / PackageRepository"| Deckhouse["Deckhouse controller"]
Deckhouse -->|"устанавливает"| Module["Module (ModuleConfig)"]
Deckhouse -->|"сканирует версии"| APV["ApplicationPackageVersion"]
APV -->|"kind: Application"| AppCR["Application CR"]
AppCR -->|"requirements.modules.mandatory"| Module
AppCR -->|"рендерит через Nelm"| K8sRes["K8s ресурсы (Deployment/Service/PVC/...)"]
Module -->|"предоставляет CRD/сервисы"| K8sRes
K8sRes -->|"аннотации werf.io/\*"| Nelm["Nelm (render to plan to apply)"]
Смотрите также шпаргалки по инструментам и глоссарий терминов курса.
Программа курса
M0 — Старт: окружение и первый практический кластер
Карта экосистемы, установка инструментов, локальный кластер kind + Deckhouse CE
3
урока
M1 — Kubernetes с нуля
Pod, Deployment, Service, ConfigMap/Secret, Volumes, Probes, Ingress, Gateway API, Jobs, RBAC — на 11 новых OSS-приложениях
11
уроков
M2 — Deckhouse Platform глазами Application-разработчика
Application vs Module, устройство Deckhouse, Module как зависимость, линтеры платформы
4
урока
M3 — Docker и Werf: сборка образов
Dockerfile-builder и Stapel-builder, линковка образов, секреты сборки, cleanup registry
7
уроков
M4 — Helm → Nelm: рендер и деплой
Анатомия Helm-чарта, почему Nelm сменил Helm 3, три стадии Nelm, CLI, секреты в шаблонах
6
уроков
M5 — Разработка Application: глубокое погружение
Ядро курса. Анатомия пакета, package.yaml, контракт настроек, CRD платформы, хуки, d8 package, статусная модель
10
уроков
M6 — Application ↔ Module ↔ K8s: связи и зависимости
requirements.modules.mandatory, pgadmin+managed-postgres, паттерны Nelm для зависимостей, PVC
8
уроков
M7 — Продвинутый Nelm: полный справочник аннотаций
Ordering/dependencies, lifecycle, tracking, log-аннотации, sensitive-данные, use-case'ы, подводные камни
9
уроков
M8 — Продвинутый Werf
Линковка образов вглубь, cache-репозитории, content-based тегирование, bundle, cleanup, distroless, converge
7
уроков
M9 — Публикация: Registry, CI/CD, линтеры
Анатомия registry, pkglint на практике, dmtlint (теория и анализ), semver, .gitlab-ci.yml, чеклист приёмки
7
уроков
M10 — Production Operations
Мониторинг, дашборды/алерты, логи, HPA/VPA/PDB, storage, backup, security, troubleshooting
10
уроков
M11 — Капстоун
Сборка mid-size self-hosted приложения «с нуля до прод-релиза»: Firefly III
5
уроков