跳转至
首页 解决方案 下载 文档
演示环境

SaaS平台开发手册

本手册指引用户,在社区版已有功能的基础上进行SAAS应用开发,首先部署OpsAny社区版,然后添加开发环境,进行开发。可以直接调用OpsAny社区版中API。

第一步:增加测试环境PaaSAgent

1.使用脚本自动化部署测试环境PaaSAgent

cd /opt/opsany-paas/install
./saas-dev-install.sh install

PaaSAgent为PaaS平台的Agent,用于进行SaaS的部署和管理,默认OpsAny社区版部署时已不在安装该服务,仅用于开发和测试环境使用。该脚本会安装PaaSAgent和RabbitMQ。

2.界面上确认

通过OpsAny社区版的导航,打开【开发中心】-选择【服务器信息】-查看类别为测试服务器的配置正常正确,点击刷新按钮,提示刷新成功即可。

第二步:开始SaaS应用开发

社区版提供了符合OpsAny设计风格的前端开发框架和已经集成完毕的后端开发框架。可以根据开发框架中的说明,开始进行本地开发。

  • 前端开发框架简介: Vue2 + Ant Design of Vue
  • 后端开发框架: Python3 + Django2 + MySQL、MongoDB、Redis

后端开发环境

主要的二次开发文档在后端开发框架的README.md中。

OpsAny后端开发框架,提供给用户之间在OpsAny社区版上开发的能力,集成了OpsAny社区版的统一认证、统一权限、消息通知、动态主题、国际化等内容,实现开箱即用。

前端开发环境

本框架为OpsAny标准的SaaS前端开发框架,集成了OpsAny的用户体系、消息通知、菜单权限体系等,开箱即用,可以快速开发SaaS应用。

PaaSAgent部署SaaS原理

v2.0.0之前版本的SaaS的部署和更新,主要依靠PaaSAgent服务,PaaSAgent顾名思义是PaaS的Agent,是PaaS平台执行SaaS维护的一个Agent,一个PaaS平台可以有测试环境和正式环境的PaaSAgent。目前开发和测试环境依然采用该模式进行部署。

PaaSAgent简介

paasagent目录是PaaS平台中应用引擎(appengine)对应的agent模块源码目录 主要作用是: - agent需要部署在应用服务器上 - 负责接收上层应用引擎(appengine)的请求指令,执行SaaS应用的部署和下架等任务操作(应用运行时环境的构建和进程托管)

技术栈: - framework: labstack/echo - python run time: virtualenv, uwsgi

依赖说明: - paas: 使用内置应用时,从paas服务下载用户上传的saas部署包。 - appengine: 需要调用appengine的接口, 回写SaaS应用的部署日志。

开始进行SaaS测试环境部署前,需要手工安装一下Git命令。

docker exec -it opsany-paas-paasagent-test /bin/sh
yum install -y git

SaaS包部署流程

当开发者在【开发中心】-【内置应用】点击部署时。 PaaSAgent会为每个SaaS创建Python虚拟环境,并且使用Supervisor+uwsgi启动,通过PaaSAgent的Nginx进行转发。所以PaaSAgent容器重启后,需要使用脚本手工启动所有的SaaS平台。

  1. 点击上传按钮时,上传SaaS包。包会被保存到PaaS容器中的/opt/opsany/paas/paas/media/saas_files/目录下。
  2. 点击部署按钮时,PaaSAgent从paas服务下载该文件,保存到paasagent容器的目录下。 具体paas的地址是在paas_agent_config.yaml中配置的PAAS_SERVER_URL参数获取。
  3. paasagent在目录下创建对应saas的Python虚拟环境。
  4. paasagent解压下载的saas包,并安装pkgs下所有的依赖包。
  5. paasagent为saas创建一个supervisor服务,自动生成supervisor的ini配置文件。
  6. paasagent通过supervisor启动saas服务。
  7. 执行django migration操作。
Document