1) Системы контроля версий и автоматизация сборки приложений 15 часов
Вы попадаете на работу в стартап, знакомитесь с командой и удивляетесь, как вообще возможно так работать. Желая скорее всё поправить, вы начинаете разбираться в том, как устроена разработка ПО в наши дни, и делаете первые шаги на пути ускорения производства.
- Как устроен жизненный цикл ПО.
- Системы контроля версий. Почему все выбирают Git?
• Организация командной работы с помощью Feature Branch Workflow.
• Организация хранения Git-репозиториев в Gitea.
- Бережливое производство:
• Muda (Потери).
• Ценность и поток создания ценности.
- Бережливое производство:
• Инструменты автоматизации повторяющихся задач.
• Фреймворки для автоматизации сборки проекта.
2) Гибкие методологии и Continuous Integration 15 часов
Ваш стартап покупает IT-гигант — Krupnaya Kompaniya (KK). Тимлид вашей команды становится вашим проводником на пути познания DevOps. Но проблемы с вашим приложением никуда не уходят. Вы узнаёте, что приложение работает плохо на продуктивной среде, а в разработку постоянно приходят новые заявки на исправление дефектов. Из-за этого копится работа, а о выпуске нового функционала и стабильности даже не приходится мечтать.
- Проблематика DevOps:
• Функциональные колодцы.
• Нисходящая спираль.
- Гибкие методологии и DevOps-культура:
• Взаимодействие в команде.
• Современные подходы. Чем обусловлено появление Agile?
• Три пути DevOps: цикл поставки ценности, петли обратной связи, эксперименты и обучение.
- Continuous Integration:
• Организация хранения кода.
• Организация сборки.
• Организация тестирования.
• Быстрое получение обратной связи.
- Сервера Continuous Integration:
• Обзор интерфейса и функционала GitLab CI.
- Измерение качества и статическое тестирование безопасности кода:
• Инструменты статического анализа качества кода: SonarQube, GitLab Analyzer.
• Инструменты статического анализа безопасности кода: SonarQube SAST, GitLab SAST.
3) Сети и основы работы на серверах Linux 15 часов
Вы знакомитесь с системным администратором KK, который рассказывает вам, как устроена сеть и как у него тут всё работает. В процессе демонстрации вы видите, что админ гораздо быстрее управляется командами и перемещениями курсора в консоли, и просите рассказать про эти приёмы. Админ предлагает вам разобраться на примере задачи по переносу сервиса со старого сервера на новый — заодно решить горящий вопрос.
- Основы работы на серверах Linux, работа с командной строкой.
- Дисковая подсистема Linux.
- Права пользователей Linux.
- Основы сетей: проблемы с подключением к удалённому серверу.
- Виртуализация:
• Популярные гипервизоры.
• Виртуальные машины.
• Виртуальные сети.
4) Continuous Delivery и Continuous Deployment 20 часов
Получив очередное за неделю обновление приложения на смартфоне, вы заинтересовались, как часто обновления приходят пользователям. Оказалось, что совсем не часто. А нужно ли чаще?
- Как устроен процесс поставки IT-продукта:
• Что такое процесс поставки.
• Value Stream management.
- Системы хранения артефактов: Nexus.
- Continuous Delivery:
• Визуализация этапов поставки.
• Организация процесса поставки. Delivery Pipeline. Continuous Deployment.
- Методология Twelve-Factor App.
5) Infrastructure as Code и системы управления конфигурацией 20 часов
Вы впервые сталкиваетесь с проблемой в инфраструктуре. Кто-то изменил конфигурацию серверов разработчиков, на которых они проводили эксперименты, и теперь сервера работают настолько неправильно, что больше невозможно их использовать.
- Бэкапирование:
• Организация резервного копирования.
• Виды бэкапов.
• Ротации бэкапов.
- Infrastructure as Code: описываем инфраструктуру кодом, перенимаем опыт разработки.
- Системы управления конфигурацией:
• Ansible (roles, tasks, inventory, vault, awx).
• Знакомство с другими системами: Chef, Salt, Puppet.
6) DBOps: реляционные и нереляционные базы данных 15 часов
Вы встречаетесь с DBA. К вам приходят грозные комментарии от пользователей, что сайт тормозит. Эмпирическим путём вы обнаруживаете, что последнее обновление сильно замедлило работу базы данных.
- Основы теории баз данных:
• Реляционные базы данных: PostgreSQL.
• Основные SQL-запросы.
• Как ускорить выполнение запросов в БД: оптимизация, кэширование, рост мощностей, индексация.
- Организация высокой доступности БД:
• Принципы DBOps.
• Миграция БД с помощью Flyway.
- Нереляционные базы данных: MongoDB.
7) Docker-контейнеризация и хранение данных 20 часов
Вы окажетесь меж двух огней: с одной стороны — разработчики, у которых локально всё работает, а у кого-то из них, возможно, и нет; с другой — отдел эксплуатации, у которого вообще ничего не работает. Разбираемся, как сделать так, чтобы у всех было всё одинаково хорошо, и наконец-то запускаем приложение в проде.
- Контейнеризация:
• Обзор Linux- и Docker-контейнеров.
• Устройство Docker: слои, образы, контейнеры, Docker-файл, Registry.
• Альтернативы Docker (containerd, Podman, LXC, CRI-O).
- Хранение данных: работа с S3, MinIO vs Ceph.
- Хранение и передача чувствительных данных: большой обзор Vault.
8) Микросервисы, балансировка и кэширование 15 часов
Вы готовитесь к выходу новой версии приложения и хотите учесть ошибки прошлого, когда ваш сервис не выдержал трафика и лежал три дня. На этот раз к вам пришёл бизнес и потребовал, чтобы подобного не случилось! Вы настолько погрузитесь в процесс, что привнесёте новые крутые фичи и стратегии поставки.
- Балансировка и кэширование.
- Микросервисы:
• Подходы к организации архитектуры приложения.
• Инструменты для управления микросервисными приложениями: Docker Compose.
- Стратегии поставки и выбор подходящей:
• Какие пользователи бывают.
• Сине-зелёный деплой.
• Канареечный деплой.
9) Kubernetes. Деплой и обеспечение надёжности приложения 50 часов
Вы создаёте сервисную платформу для обеспечения качественной работы всего цикла поставки.
- Оркестрация контейнеров:
• Запуск приложения в современной инфраструктуре.
• Для чего нужны системы оркестрации, и какие они бывают.
• Kubernetes: причины и цели разработки.
- Запуск Kubernetes кластера для тестирования и разработки:
• Как получить Kubernetes: описание 5 основных способов установки.
• Разбор простых команд kubectl.
• Работа с утилитой kubectl.
- Архитектура Kubernetes:
• Основные компоненты и их взаимодействие: scheduler, kubelet, kube-proxy, controller manager, etcd и api-сервер.
- Основные сущности Kubernetes:
• Nodes, Podes, Services, Persistent Volumes, Persistent Volume Claim.
• Манифесты Kubernetes.
• Использование kubectl на уровне подключения к кластеру.
• Просмотр конфигурации Node, Pod'ов, Secrets и т.д.
- Продвинутые сущности Kubernetes:
• ReplicaSet, Deployment, DaemonSet и StatefulSet.
• Liveness, Readiness probe + Init контейнеры.
• Дополнение про kubectl: edit, apply, delete, create.
• Сетевое взаимодействие в кластере.
- Продвинутая работа с утилитой kubectl:
• Дополнительные команды kubectl, флаги, представление сущностей Kubernetes в виде YAML или JSON/YAML файлов.
• Деплой приложения двумя способами: с помощью команды и через YAML-файл.
- Деплой приложений в Kubernetes:
• Деплой фронтенда приложения.
• Деплой и передеплой через ArgoCD.
- Стратегии деплоя:
• Связь Kubernetes и Twelve-Factor App.
• Стратегии деплоя в Kubernetes.
• Как в Kubernetes реализован механизм rollback.
- Практики GitOps для работы с инфраструктурой.
- Написание Helm чарта для деплоя приложения.
- Настройка ArgoCD.
- Использование шаблонизаторов.
10) Логирование и мониторинг ошибок 15 часов
-
Ваша сервисная платформа внезапно перестаёт работать.
- Логирование и мониторинг ошибок:
• Логи Linux.
• Loki.
• Sentry
- Мониторинг:
• Типы метрик, типовые аномалии.
• Алерты.
• GAP-стек (Grafana, Prometheus, Alertmanager).
• Golden Signals.
• Метрики уровня приложения.
- АРМ-системы и распределённый трейсинг.
- CALMS.