Определение простыми словами
PaaS — модель, в которой разработчику отдают готовую среду исполнения: операционную систему, веб-сервер, базу данных, очереди и кэш. Достаточно загрузить код через git push или CI, и приложение само разворачивается, получает домен, SSL-сертификат и автоскейлинг. Заниматься обновлением ядра, ставить пакеты и настраивать nginx не нужно.
В отличие от IaaS, где клиент сам управляет виртуальной машиной, в PaaS внутренности скрыты. По сравнению с serverless платформа держит постоянно работающие инстансы, а не запускает функции на каждое событие.
Сравнение
| Параметр | IaaS | PaaS | SaaS |
|---|---|---|---|
| Что получает клиент | Виртуальный сервер | Среду выполнения | Готовое приложение |
| Кто настраивает ОС | Клиент | Провайдер | Провайдер |
| Кто масштабирует | Клиент | Провайдер | Провайдер |
| Гибкость стека | Полная | Ограничена платформой | Минимальная |
| Скорость деплоя | Часы | Минуты | Сразу |
Кейсы использования
- MVP и стартапы — быстрый деплой без админов.
- Команды на Node.js, Python, Ruby, Go, PHP — платформа сама ставит зависимости.
- Микросервисы с автоскейлингом и blue-green деплоем.
- Внутренние корпоративные сервисы, где важно не отвлекаться на инфраструктуру.
- Негативный сценарий: высоконагруженный проект с нестандартным стеком и нужным root-доступом. Платформа ограничит выбор СУБД, версии библиотек и тонкие настройки sysctl, поэтому такие проекты переезжают на IaaS или bare metal.
Технические детали
git remote add platform git@platform.example:my-app.git
git push platform main
platform env:set DATABASE_URL=postgres://...
platform scale web=3 worker=1
platform logs --tail
Сборка и развёртывание поднимаются автоматически: платформа определяет стек по манифесту вроде Procfile, app.json, buildpack или Dockerfile. Тарификация почасовая или по числу инстансов и потреблённой памяти.
🔥 Где это применяется
Частые вопросы
Что выгоднее: PaaS или собственный VPS?
PaaS дороже за ресурсы, но дешевле в обслуживании. Если у команды нет DevOps-инженера, экономия времени перекрывает разницу в цене сервера.
Можно ли в PaaS использовать любую базу данных?
Только те, что поддерживает платформа: обычно PostgreSQL, MySQL, Redis, иногда MongoDB. Экзотические СУБД придётся выносить на отдельный IaaS.
Как мигрировать с PaaS на свой сервер?
Сначала вынести данные и переменные окружения, затем собрать Docker-образ из buildpack-окружения и запустить его на VPS. Чем меньше платформенных API использовалось, тем проще миграция.