Автоматическое масштабирование SaaS
Я думаю о том, как наилучшим образом настроить мое SaaS-приложение для автоматического масштабирования, и я достиг шага, который я не знаю, как с этим справиться. Чтобы правильно описать проблему, лучше начать с объяснения того, как я вижу весь этот процесс:
Во-первых, я размещу основной сайт на отдельном VPS, который обрабатывает регистрации и содержит всю информацию о реальных серверах приложений, их загрузке и количестве пользователей и так далее. Я думаю, что задание cron или что-то еще проверит, так что у меня всегда будет место для еще N пользователей, и если я опускаюсь ниже этого числа, запускаю процесс автоматической настройки нового экземпляра VPS.
Я решил использовать DigitalOcean и их API для настройки капель, которые я затем подключу к ServerPilot, отправив в сценарии установки ServerPilot метаданные пользователя CloudInit при создании капли в DigitalOcean.
Затем я могу использовать комбинацию ServerPilot и DigitalOCean API для проверки серверов, создания "приложений", БД, подключения доменов и так далее.
Теперь к хитрой части. Мне нужно как-то настроить репозитории Git на только что созданном сервере, не используя SSH вручную.
Мои варианты здесь кажутся ограниченными. Я не могу с самого начала настроить какой-нибудь нормальный web-api для управления git и развертываниями приложений, так как ServerPilot не справился с этой задачей при запуске CloudInit.
Можно было бы включить в CloudInit собственный скрипт, который служит элементарным веб-API для настройки и развертывания приложений PHP. Это когда я начал смотреть на Sinatra для Ruby или Flask/Bottle для python. Если я правильно понимаю, они могут предоставить конечную точку API без установки nginx/apache. Или, может быть, я здесь совсем?
Прежде чем идти дальше, я бы хотел поделиться своими идеями.
Этот план звучит разумно?
Есть ли лучшие альтернативы ServerPilot для такого использования, где я предпочитаю держаться подальше от конфигурационных файлов сам?
Было бы лучше просто создать свой собственный файл изображения для новых капель и вообще не использовать ServerPilot, включив в него нормальный PHP-менеджер приложения для настройки пользовательских приложений?
Мне нравится идея позволить ServerPilot управлять настройкой, так как я в первую очередь не серверный парень. Любой вклад приветствуется.