раздел 06
Масштабирование
Что это
Когда пользователей становится больше, Droplet начинает упираться в ресурсы. Масштабирование - как дать проекту больше мощности, не переписывая его.
Зачем
Чтобы продукт не падал под нагрузкой, но вы не платили за лишнее заранее. Растёте по факту.
Как понять, что упёрлись
| Что упёрлось | Симптомы | Чем смотреть |
|---|---|---|
| CPU | Медленные ответы под нагрузкой | htop, графики в панели DigitalOcean |
| RAM | Процессы падают (OOM), система тормозит | free -h, htop |
| Диск | «No space left» | df -h |
В панели DigitalOcean у каждого Droplet есть вкладка с графиками (Monitoring) - подключите и смотрите тренды, не гадайте.
Resize Droplet
Самый простой способ - увеличить ресурсы того же Droplet. В панели: Droplet - Resize. Есть два варианта:
- CPU and RAM only - можно менять в обе стороны, диск не трогается. Быстро.
- Disk, CPU and RAM - увеличивает и диск, но это необратимо (диск нельзя уменьшить обратно).
Resize требует выключения Droplet на короткое время.
Когда переходить на managed-БД и несколько серверов
- Managed-база (Managed Databases). Когда база критична и нагружена, выносите её из Droplet в managed-сервис: DigitalOcean сам обновляет, бэкапит и следит за доступностью. Дороже, но снимает заботу о данных.
- Несколько серверов. Когда одного Droplet мало даже после resize, ставят Load Balancer перед несколькими Droplet (горизонтальное масштабирование). Требует, чтобы приложение умело работать в нескольких копиях.
Большинство проектов сначала растят вертикально (resize), а к нескольким серверам и managed-БД приходят позже.
На что смотреть
- Мониторинг - без графиков непонятно, что упёрлось.
- Не держать тяжёлые задачи на маленьком Droplet (видео-кодирование, большие сборки, ML) - выносите отдельно или временно увеличивайте.
- Snapshot перед resize - всегда.
Пример
Бот вырос, в Monitoring видно RAM под 90%. Делаете Snapshot, затем Resize (CPU and RAM only) с 1 ГБ до 2 ГБ - короткое выключение, и готово. Позже, если упрётся база, выносите её в Managed Database.
Антипаттерны
- Масштабироваться вслепую без мониторинга.
- Resize без снимка. Рискуете данными, а диск ещё и необратим.
- Сразу строить кластер из нескольких Droplet «на вырост». Пока хватает resize - не усложняйте.
Что дальше
Финальная шпаргалка: путь от создания Droplet до деплоя на одной странице.