18. Roadmap і наступні кроки¶
Ти пройшов цей урок¶
Якщо ти дійшов до цього файлу і пройшов увесь урок — вітаю. Ти більше не боїшся Linux. Ти розумієш, як твій Python-код живе на реальному сервері.
Але це не кінець — це початок. DevOps і server-side розробка — величезна область знань. Цей roadmap допоможе зрозуміти, де ти зараз і куди рухатися далі.
Де ти зараз¶
flowchart TD
Start["Цей урок ✓"] --> L1["Рівень 1\nВпевнений у Linux"]
L1 --> L2["Рівень 2\nЗапускаю backend"]
L2 --> L3["Рівень 3\nАвтоматизація"]
L3 --> L4["Рівень 4\nКонтейнеризація"]
L4 --> L5["Рівень 5\nDevOps basics"]
L5 --> L6["Рівень 6\nCloud і далі"]
Рівень 1. Впевнено користуватися Linux¶
Що вмієш після цього уроку:
- [ ] Навігація у файловій системі (
cd,ls,pwd,find) - [ ] Робота з файлами (
cp,mv,rm,chmod,chown) - [ ] Розуміння прав доступу (
rwx,755,644,600) - [ ] Керування процесами (
ps,kill,top,jobs) - [ ] Підключення по SSH (
ssh,ssh-keygen,scp) - [ ] Читання логів (
tail -f,journalctl,grep)
Що практикувати далі:
- Щодня працюй у терміналі замість GUI
- Вивчи vim або nano для редагування файлів на сервері
- Познайомся з tmux або screen для постійних сесій
Рівень 2. Вміти запускати backend-проєкт¶
Що вмієш після цього уроку:
- [ ] Встановити залежності через
aptіpip - [ ] Налаштувати
virtualenv - [ ] Налаштувати
.envдля production - [ ] Виконати
migrateіcollectstatic - [ ] Запустити Gunicorn/Uvicorn
- [ ] Налаштувати базовий Nginx
Що практикувати далі:
- Задеплой реальний Django-проєкт на VPS (DigitalOcean, Hetzner)
- Налаштуй HTTPS через Let's Encrypt + Certbot
- Вивчи Django check --deploy — рекомендації для production
Рівень 3. Автоматизувати роботу¶
Що вмієш після цього уроку:
- [ ] Писати Bash-скрипти з змінними, умовами, циклами
- [ ] Використовувати
set -eі exit codes - [ ] Писати
Makefileдля проєкту - [ ] Читати і фільтрувати логи
- [ ] Налаштувати systemd service
Що практикувати далі:
- Напиши повний deploy.sh для свого проєкту
- Вивчи cron для запланованих задач
- Познайомся з logrotate для ротації логів
Рівень 4. Контейнеризація¶
Що вмієш після цього уроку:
- [ ] Написати
Dockerfileдля Django - [ ] Збирати і запускати Docker images
- [ ] Написати
docker-compose.ymlдля стека - [ ] Запустити Django + PostgreSQL + Redis через Compose
- [ ] Виконувати
migrateіshellчерезdocker compose exec
Що практикувати далі: - Оптимізуй Dockerfile: multi-stage builds, мінімальний розмір image - Вивчи Docker volumes і мережі детальніше - Задеплой production-стек з Nginx + Gunicorn у Docker Compose
Рівень 5. DevOps basics¶
Що вмієш після цього уроку:
- [ ] Розуміти CI/CD pipeline
- [ ] Написати базовий GitHub Actions workflow
- [ ] Знати різницю між Staging і Production
- [ ] Розуміти rollback стратегії
- [ ] Мати ментальну модель DevOps культури
Що практикувати далі: - Налаштуй повний CI/CD pipeline для свого проєкту - Вивчи GitHub Actions детальніше: secrets, caching, matrix - Познайомся з автоматизованими E2E тестами в CI
Рівень 6. Далі — cloud і спеціалізація¶
Після Рівнів 1–5 ти готовий рухатися у будь-якому напрямку:
Cloud Platforms¶
| Платформа | Для чого вчити |
|---|---|
| DigitalOcean | Простий старт з VPS і managed databases |
| AWS | Найбільша платформа, EC2, S3, RDS, Lambda |
| GCP | GKE (Kubernetes), Cloud Run, BigQuery |
| Hetzner | Дешевий і надійний VPS для навчання |
Infrastructure as Code¶
Terraform → опис хмарної інфраструктури як код
Ansible → автоматизація налаштування серверів
Pulumi → IaC через Python/TypeScript
Kubernetes¶
Monitoring і Observability¶
Security¶
Firewall (ufw, iptables)
SSL/TLS і сертифікати
Secrets management (HashiCorp Vault)
OWASP топ-10 для web
Рекомендовані ресурси¶
Для практики¶
- OverTheWire: Bandit — ігрове вивчення Linux команд
- Linux Journey — інтерактивний Linux-курс
- Play with Docker — Docker у браузері безкоштовно
Для читання¶
- "The Linux Command Line" — William Shotts (безкоштовно онлайн)
- "Docker Deep Dive" — Nigel Poulton
- Official Django deployment docs: docs.djangoproject.com/en/stable/howto/deployment/
Для відео¶
- TechWorld with Nana (YouTube) — Docker, Kubernetes, DevOps
- Hussein Nasser (YouTube) — Backend engineering, Nginx
Твій перший реальний проєкт¶
Найкращий спосіб закріпити знання — задеплоїти реальний проєкт:
Мінімальний план¶
- Орендуй VPS (DigitalOcean $5/місяць, Hetzner €4/місяць)
- Встанови Ubuntu 22.04
- Підключися по SSH з ключем
- Задеплой свій Django-проєкт: git + virtualenv + Gunicorn + Nginx
- Налаштуй HTTPS через Certbot (безкоштовно)
- Додай systemd service для автоперезапуску
- Налаштуй GitHub Actions для автодеплою
Після цього у тебе є реальний production сервер і живий досвід деплою. Це коштує більше, ніж 10 прочитаних книг.
Підсумок всього уроку¶
flowchart LR
Start["Боявся\nтерміналу"] --> Now["Розумієш\nLinus і сервер"]
Now --> Next1["Деплоїш\nДжанго"]
Now --> Next2["Пишеш\nDocker Compose"]
Now --> Next3["Маєш CI/CD\npipeline"]
Next1 --> Future["Готовий до\nCloud та DevOps"]
Next2 --> Future
Next3 --> Future
Фінальна думка¶
Ти пройшов шлях від "що таке Linux" до розуміння CI/CD, Docker Compose і Kubernetes. Це фундамент, на якому будується вся сучасна backend-розробка.
Найважливіше зараз — практика. Відкрий термінал, орендуй VPS, задеплой свій проєкт. Кожна команда, яку ти набереш руками, стає частиною твого досвіду.
Linux перестає бути страшним, коли ти починаєш ним користуватися щодня.
Самоперевірка (фінальна)¶
- [ ] Я можу підключитися до сервера по SSH і орієнтуватися у файловій системі
- [ ] Я можу задеплоїти Django-проєкт від git clone до запущеного Gunicorn
- [ ] Я можу написати базовий Bash-скрипт і Makefile
- [ ] Я можу запустити Django + PostgreSQL через Docker Compose
- [ ] Я розумію CI/CD pipeline і можу написати GitHub Actions workflow
- [ ] Я знаю, навіщо існує Kubernetes і коли він потрібен
- [ ] Я маю план подальшого навчання