OpsAny SaaS平台日常运维¶
SaaS的启动和部署¶
OpsAny SaaS平台的部署和启动有PaaS Agent进行管理,PaaS Agent是PaaS平台的一个代理,用于部署和管理SaaS平台,它接受来自于AppEngine服务的请求,然后根据用户要求进行SaaS的相关管理。
SaaS是如何部署的?SaaS部署分为两种情况: 内置应用和自建应用。内置应用是直接有OpsAny官方开发并提供的一个SaaS包,有固定的格式。自建应用就是通过PaaS提供的开发框架(基于Django框架)自行开发的应用。部署方式稍有不同。
内置SaaS应用部署¶
内置SaaS应用有严格的包结构。例如云管平台的内置包结构如下:
cmp # SaaS应用ID
├── app.yml # SaaS的配置文件,里面定义了依赖的Python包,是否使用Celery等
├── pkgs # SaaS所有依赖的Python模块包
└── src # SaaS源码
部署流程明细:
- 用户上传SaaS包,SaaS包会被上传到PaaS服务的/opt/opsany/paas/paas/media/saas_files/目录下:
docker exec -it opsany-paas-paas /bin/sh
ls /opt/opsany/paas/paas/media/saas_files/
-
用户点击【部署】按钮,PaaSAgent接受到请求,会执行对应的脚本
-
下载SaaS包
- 创建Python虚拟环境
- 解压SaaS包,并根据app.yml中的依赖包进行安装
- 生成Supervisord配置文件
- 使用Supervisor启动SaaS应用,同时实时的将日志进行同步。
自建SaaS应用部署¶
- 用户点击部署自建应用,PaaSAgent执行git clone将对应分支的代码Clone到本地。
- 创建Python虚拟环境
- 读取requirements.txt安装依赖环境
- 生成Supervisord配置文件
- 使用Supervisor启动SaaS应用,同时实时的将日志进行同步。
SaaS配置管理¶
OpsAny SaaS有独立的配置文件,但是目前对于SaaS的配置,主要通过环境变量的方式进行管理。逻辑如下:
- 在安装OpsAny SaaS平台之前,安装脚本通过saas/add_env.py脚本读取install.config中的配置,写入到了数据库中。
- PaaSAgent在部署SaaS时会自动创建一个Supervisor实例,然后将配置以环境变量的形式,写入到Supervisord的配置中。
- SaaS应用启动的时候通过环境变量获取到相关的配置信息。
如何修改SaaS的配置呢,例如修改MySQL的相关信息。
- 修改环境变量。访问 https://{domain}/admin/app_env/appenvvar/ 找到对应的SAAS平台,并修改对应的配置。
- 登录平台。【平台导航】-【开发中心】-【内置应用】-找到对应的应用,点击部署,会重新生成supervisord配置文件,并重启启动SaaS应用。