自动SaaS缩放

我正在考虑如何最好地设置自动缩放的SaaS应用程序,并已经达到了我不确定如何解决的一个步骤。 要正确地描述这个问题,我最好先解释一下如何看待整个过程:

首先,我将把主站点放在一个单独的处理注册的VPS上,并拥有所有关于实际应用服务器的信息,它们的负载和用户数量等等。 我正在考虑一个cron作业或者其他什么东西会被检查,这样我就可以有更多的用户空间,如果我低于这个数字,就开始自动build立一个新的VPS实例。

我已经决定使用DigitalOcean和他们的API来设置水滴,然后通过在DigitalOcean上创build水滴时,通过在ServerPilot设置脚本中以CloudInit用户元数据的forms发送来连接到ServerPilot。

然后,我可以使用ServerPilot和DigitalOCean API的组合来检查服务器,创build“应用程序”,数据库的,连接域等。

现在到棘手的部分。 我需要以某种方式获得在新创build的服务器上设置的Git存储库,而不需要手动进行SSH连接。

我的select似乎有限。 我从一开始就无法设置一些正常的web-api来pipe理git和app-deploy,因为ServerPilot在运行CloudInit时没有做到这一点。

一种可能性是在CloudInit中包含一个自定义脚本,作为基本的Web API来设置和部署PHP应用程序。 这是当我开始查看Sinatra for Ruby或瓶颈/python。 如果我理解正确,他们可以提供一个没有安装nginx / apache的API端点。 或者,也许我完全在这里?

在继续之前,我想就目前的想法提出意见。

  • 这个计划听起来合理吗?

  • 有没有更好的替代ServerPilot这种用途,我宁愿远离自己的configuration文件?

  • 最好是自己制作新的水滴图像文件,而不是使用ServerPilot,在正常的PHP中包含一个“manager”-app API来设置用户应用程序?

我有点喜欢让ServerPilot处理设置的想法,因为我不是主要的服务器人。 任何input赞赏。