До основного вмісту
☁

Хмара та DevOps

21 статей у розділі

Розділ про те, що розташоване між одним VDS і хмарою цілком: інструменти, які перетворюють набір серверів на керовану інфраструктуру. Початок — різниця хмарного сервера та звичайного VPS, робота зі S3-сумісним сховищем через MinIO чи готових провайдерів, резервне копіювання через rclone, restic і BorgBackup.

Далі — автоматизація та інфраструктура як код: Terraform і Ansible для опису серверів конфігурацією, деплой через GitHub Actions і GitLab CI/CD, оркестрація контейнерів через Docker Swarm, легкий Kubernetes-кластер на k3s і альтернатива без Kubernetes — HashiCorp Nomad. Окремо розібрані Traefik і Caddy як reverse proxy з автоматичним TLS.

Є матеріали для розподілених систем: WireGuard mesh-мережа між серверами, Consul для service discovery, централізовані логи через Grafana Loki, власний приватний Docker Registry та Ingress для Kubernetes-кластера.

  • Сховища S3 і резервне копіювання в хмару
  • Terraform, Ansible і CI/CD деплой
  • Docker Swarm, k3s і HashiCorp Nomad
  • Мережа і логи розподіленої інфраструктури
Хмарний сервер vs VPS: у чому різниця і що обрати Детальне порівняння хмарних серверів і VPS: архітектура, масштабування, ціни, надійність. Коли обрати хмару, а коли VPS — конкретні критерії вибору. rclone: резервні копії VPS у хмарні сховища Налаштування rclone для автоматичних бекапів VPS у S3, Google Drive, Backblaze B2, Dropbox. Встановлення, конфігурація, шифрування, cron-автоматизація. MinIO на VPS: власне S3-сховище за 15 хвилин Розгортання MinIO — S3-сумісного об'єктного сховища на VPS. Встановлення через Docker, налаштування nginx, SSL, створення бакетів, інтеграція із застосунками. Hetzner Cloud: створення та налаштування серверів через API Робота з Hetzner Cloud: створення серверів, налаштування Firewall, Floating IP, керування через API та hcloud CLI. Найкращий європейський хмарний провайдер. Terraform: інфраструктура як код для VPS і хмари Керування інфраструктурою через Terraform: провайдери Hetzner, DigitalOcean, AWS. Створення серверів, DNS-записів, firewall у коді. Основи IaC. Caddy Server: авто-HTTPS та reverse proxy без болю Налаштування Caddy Server на VPS: автоматичні SSL-сертифікати Let's Encrypt, reverse proxy, PHP, HTTP/3. Приклади конфігурації Caddyfile. Docker Swarm: кластер з кількох VPS без Kubernetes Налаштування Docker Swarm кластера: ноди manager/worker, деплой сервісів, rolling update, secrets. Альтернатива Kubernetes. Uptime Kuma: self-hosted моніторинг серверів та сайтів Встановлення Uptime Kuma через Docker: моніторинг HTTP, TCP, DNS, Docker, сповіщення Telegram, Nginx, публічна Status Page. Kubernetes на VPS: легкий кластер із k3s Встановлення k3s Kubernetes на VPS: мастер і воркер ноди, деплой застосунків, Helm, Ingress з авто-SSL, моніторинг. Kubernetes для невеликих команд. S3 Object Storage: провайдери та інтеграція з PHP Порівняння S3-провайдерів: Hetzner, Cloudflare R2, Backblaze B2, AWS S3. Інтеграція з PHP через AWS SDK, завантаження файлів, WordPress Offload Media. GitHub Actions: автоматичний деплой на VPS CI/CD деплой на VPS через GitHub Actions: SSH деплой PHP проекту, rsync, Laravel artisan, сповіщення Telegram, zero-downtime. Ansible чи Terraform: що обрати і коли поєднувати Ansible і Terraform вирішують різні завдання: Terraform створює сервери, Ansible налаштовує їх. Пояснюємо, коли який інструмент потрібен. GitLab CI/CD: конвеєр автоматичного деплою на VPS Налаштовуємо конвеєр GitLab CI/CD для автоматичного деплою на VPS по SSH: змінні, стадії, відкат релізу при помилці. HashiCorp Nomad: оркестрація контейнерів без Kubernetes HashiCorp Nomad оркеструє контейнери і процеси одним бінарником без складного control plane Kubernetes. Встановлення, job-файл і кластер із серверів. Traefik: reverse proxy з автоматичним TLS для Docker Traefik сам знаходить контейнери Docker і випускає TLS-сертифікати через Let's Encrypt без ручних конфігів. Встановлення, labels і типові помилки. Grafana Loki: централізований збір логів із серверів Grafana Loki збирає логи з кількох VDS в одному місці і шукає по них через Grafana. Встановлення, Promtail, мітки і приклади запитів LogQL. restic і BorgBackup: дедуплікація бекапів VPS restic і BorgBackup стискають резервні копії VPS за рахунок дедуплікації: порівняння, встановлення, автоматизація через cron і перевірка цілісності. WireGuard mesh: приватна мережа між серверами WireGuard mesh об'єднує сервери в приватну зашифровану мережу: встановлення, конфігурація на декількох вузлах і діагностика з'єднання між ними. Consul: service discovery і розподілена конфігурація Consul забезпечує service discovery і розподілену конфігурацію для кластера: архітектура, встановлення, реєстрація сервісів і health check. Приватний Docker Registry на власному сервері Приватний Docker Registry на своєму VPS знімає ліміти Docker Hub: вибір між Registry v2 і Harbor, TLS, авторизація і push образів покроково. Ingress у Kubernetes: ingress-nginx і TLS-сертифікати Ingress у Kubernetes з контролером ingress-nginx маршрутизує трафік за доменами і випускає TLS-сертифікати Let's Encrypt через cert-manager.