// Практика · учебные проекты
Проверьте сами: стенды отвечают вживую
Пять учебных заданий: от SQL и скриптов до Kubernetes, конвейера и мониторинга. Все развёрнуты на втором контуре. У каждого — проверки из задания: нажмите «Выполнить», и страница спросит стенд и покажет его настоящий ответ, а не заготовку.
Занятия проходят по видеосвязи: meet.lab.aidyn.stream — откройте ссылку, введите название комнаты, которое даст преподаватель, и разрешите камеру и микрофон. Регистрация не нужна.
Прогон проверок
Агент готов пройти все пять заданий
ответы берутся со стендов вживую
- 01 Flask + PostgreSQL
- 02 Короткие ссылки
- 03 Docker Swarm
- 04 Корпоративный портал
- 05 Финальный Kubernetes
Нажмите «Запустить прогон»: агент пройдёт по заданиям, а здесь появятся команды и ответы стендов.
Сейчас
—
- проверено
- 0
- пройдено
- 0
- не пройдено
- 0
- время
- 0,0 с
Инструменты
Чем пользовался и в каких заданиях
| Инструмент | 01 | 02 | 03 | 04 | 05 |
|---|---|---|---|---|---|
| Linux и Bash | |||||
| Скрипты с проверкой аргументов и кодами возврата | да | да | |||
| cron и таймеры systemd | да | да | |||
| SSH только по ключам, firewall ufw | да | да | |||
| Сертификаты и openssl | да | ||||
| Базы данных | |||||
| PostgreSQL: схема, индексы, планы запросов | да | ||||
| Резервная копия и восстановление | да | ||||
| Redis | да | да | |||
| Контейнеры | |||||
| Dockerfile: сборка в два этапа, запуск не от root | да | да | да | да | |
| Docker Compose | да | да | |||
| Свой реестр образов и Harbor | да | да | да | ||
| Docker Swarm | да | ||||
| Kubernetes | |||||
| Deployment, Service, Ingress | да | да | да | да | |
| StatefulSet и постоянные тома | да | да | да | да | |
| ConfigMap и Secret | да | да | да | да | |
| RBAC | да | да | да | ||
| HPA | да | ||||
| k3s, k3d, Kustomize | да | да | |||
| Автоматизация | |||||
| Ansible: плейбуки, роли, обработчики | да | да | да | ||
| Ansible Vault | да | ||||
| Terraform: VPC, EKS, RDS, ECR | да | ||||
| Git и CI/CD | |||||
| GitLab CI: сборка, тесты, выкат | да | да | да | ||
| Тесты и проверки кода: pytest, flake8, shellcheck, yamllint, ansible-lint | да | да | |||
| Обновление и откат версии | да | да | |||
| Ветки, merge request, теги | да | ||||
| Наблюдаемость | |||||
| Prometheus и правила оповещений | да | да | |||
| Grafana | да | да | |||
| Loki и Promtail | да | ||||
| Разбор сбоев | да | да | |||
01 Большое DevOps-задание
Flask, PostgreSQL и Redis: от SQL до мониторинга
Одно приложение проходит весь путь: база и запросы, образ, Compose, Kubernetes, конвейер с тестами и автоматическим откатом, Terraform для AWS, метрики и журналы.
Сборка
Вход
Приложение
Данные
Наблюдение
- Десять SQL-запросов, у каждого сохранён план выполнения и разбор индексов
- Скрипты слежения за ресурсами и проверки сроков сертификатов
- Образ на Alpine: 91 МБ при пороге 200 МБ, процесс не от root
- Docker Compose из четырёх сервисов, наружу открыт только Nginx
- Kubernetes: том 10 ГиБ под базу, Ingress, HPA от 2 до 5 реплик
- Конвейер: flake8, сборка, pytest с настоящими базой и Redis, покрытие 99%, выкат в кластер
- Автоматический откат: нездоровая версия возвращена сама, сайт ответил на 94 запроса из 94
- HPA под нагрузкой поднял число реплик с 2 до 5 за минуту
- Terraform: модули VPC, EKS, RDS и ECR проходят validate
- Prometheus, Grafana, Loki и Promtail в кластере
Оговорка. Terraform только проверен командой validate — учётной записи AWS для задания нет. Уведомления в Slack не отправлялись: адрес канала не задан.
- PostgreSQL
- Redis
- Flask
- Docker Compose
- Kubernetes
- HPA
- GitLab CI
- Terraform
- Prometheus
- Grafana
- Loki
Репозиторий: infrastructure/devops-test — вход по приглашению
Проверки из задания
02 Итоговый проект курса
Сервис коротких ссылок
Маленькое приложение, вокруг которого собрано всё остальное: свой реестр образов, роль Ansible, кластер k3d, конвейер, мониторинг и разбор двух сбоев.
Вход
Сервис
Данные
Наблюдение
- Стенд поднимается с нуля одной командой и сам проверяет созданную ссылку
- Данные переживают остановку стека и удаление пода базы
- Роль Ansible готовит фронтовые узлы; повторный прогон ничего не меняет
- Обновление без потерь: 350 запросов из 350 во время выката
- Сбой с остановленной базой замечен по оповещению Prometheus за 1 мин 41 с
- Сбой с заниженным лимитом памяти: сервис продолжал отвечать, причина найдена по описанию пода
Оговорка. Проект собран за один день, а не за четыре учебные недели: недельных отчётов нет.
- Python
- PostgreSQL
- Docker Compose
- registry
- Ansible
- Vault
- k3d
- Kustomize
- Prometheus
- Grafana
Репозиторий: infrastructure/shortlink — вход по приглашению
Проверки из задания
03 Docker Swarm
Кластер Swarm с тремя репликами
Свой образ Nginx работает сервисом в три реплики за overlay-сетью на трёх узлах. Серверы готовит и кластер собирает один плейбук Ansible.
Управление
Кластер
Сервис
- Плейбук ставит Docker, настраивает firewall, собирает кластер и разворачивает сервис
- Порты кластера открыты только соседним узлам
- Отказ контейнера: Swarm вернул третью реплику за 17 секунд, сайт отвечал всё время
- Отказ worker: задачи переехали на оставшиеся узлы за 25–30 секунд, сайт отвечал всё время
- Три узла: manager и два worker, по одной реплике на каждом
Оговорка. Второй worker — виртуальная машина на сервере manager, а не отдельный сервер: отказ этого сервера уносит сразу два узла из трёх.
- Docker Swarm
- Ansible
- overlay
- ufw
- Nginx
Репозиторий: infrastructure/swarm-mini-project — вход по приглашению
Проверки из задания
04 Kubernetes · промежуточный проект
Корпоративный портал
Nginx в три реплики за Ingress, настройки из ConfigMap, обязательный секрет, Redis в StatefulSet с томом и две роли с разными правами.
Вход
Приложение
Данные
Доступ
- Значения из ConfigMap видны на странице и в заголовках ответа
- Без секрета под не запускается
- Данные Redis переживают пересоздание пода
- Роль viewer только читает, operator управляет Deployment; секреты закрыты обеим
- Deployment
- ClusterIP
- Ingress
- ConfigMap
- Secret
- PVC
- StatefulSet
- RBAC
Репозиторий: infrastructure/company-portal — вход по приглашению
Проверки из задания
05 Kubernetes · финальный проект
Свой образ и развёртывание через Ansible
Собственный образ Nginx, PostgreSQL в StatefulSet с паролем из секрета, роли student-viewer и student-deployer. Всё разворачивает один плейбук.
Сборка
Вход
Приложение
Данные
Доступ
- Образ собирает конвейер GitLab и кладёт в реестр контура
- Один плейбук разворачивает всё; повторный запуск ничего не меняет
- Пароль базы создаётся при первом запуске и не попадает ни в Git, ни в журнал
- Данные PostgreSQL переживают пересоздание пода
- Dockerfile
- GitLab CI
- Ansible
- Deployment
- Ingress
- Secret
- PVC
- StatefulSet
- RBAC
Репозиторий: infrastructure/k8s-final-project — вход по приглашению
Проверки из задания
Проверки только читают состояние: ничего не создают и не меняют. Значения секретов стенды странице не отдают.