4 Star 4 Fork 1

腾讯蓝鲸智云 / bk-saas-edu

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

SaaS 开发课程实战项目

license PRs Welcome

项目介绍

本课程项目要求实现一个蓝鲸 SaaS 应用,具体要求支持以下功能

  1. 该应用需要拉取标准运维的流程模板列表,用户可选择任意一个模板,通过SaaS填写对应参数创建并执行任务。任务执行记录存入该应用的数据库,前端需要展示任务执行记录。
  2. 由于任务创建操作比较敏感,所以需要对用户的操作进行鉴权。需要将本应用接入权限中心,完成权限的管理。需要引入权限中心发布的IAM SDK,然后根据help文件夹《权限中心SDK使用说明》,完成权限模型的注册。
  3. 需要实现 任务查看, 任务创建 两个操作的用户鉴权。当无对应操作权限的时候,需要提供改操作申请权限链接并展示在页面,方便用户点击跳转权限中心申请对应权限。

项目图示

本项目所需要实现的SaaS应为分为前端和后台两部分

1. 前端

作为用户入口,提供给用户查看任务,新建任务页面 页面实现效果参考展示如下(仅供参考):

main.png

2. 后台

  1. API模块:提供查询任务,创建/执行任务,业务拉取,标准运维模板拉取等接口
  2. 权限模块:实现权限模型注册,操作鉴权等功能
  3. Celery模块:实现标准运维任务状态的同步

功能解析

1. 任务管理

应用需要拉取到标准运维流程模板并渲染任务参数表单(注意:不同模板需要的任务参数不相同)。填写参数后创建并执行标准运维任务;列表需要展示正在执行或已执行的任务。

  1. 点击新建,通过配置平台提供的search_business接口获取到用户有权限的业务,并通过标准运维get_template_list接口拉取当前业务的流程模板列表。选择一个模板时,学生需要调用标准运维get_template_info接口获取模板的信息,并根据模板信息在页面显示该模板需要填写的参数。任务创建完成后,需要在应用数据库存储对应任务的执行的操作记录。 可参考如下展示(仅供参考) create.png

  2. 任务列表,中间可能涉及到的状态变更

    • 调用获取任务列表接口时,实时更新任务状态
    • 通过Celery异步任务更新任务状态
  3. 任务查看,点击 查看任务 出现侧弹框。点击侧弹框中的 查看详情 即可跳转到标准运维页面查看任务执行状态。 可参考如下展示(仅供参考): retrieve.png detail.png

    SaaS的列表页需展示字段:任务ID(对应SaaS存储的ID),任务名称、创建时间,部署时间、创建人、状态(需要支持分页) 任务列表可参考如下展示(仅供参考): list.png

  4. 如需调用外部系统接口,请参考接口文档

  5. 标准运维任务状态流转如下图所示

    sops.png

2. 权限中心注册权限模型

基本要求:成功注册权限模型,可以在权限中心申请权限页面看到注册的权限内容,具体检查页面如下。(仅供参考) iam.png

3. 操作鉴权

  1. 获取任务列表接口需要调用IAM SDK检查用户是否有本系统的任务查看权限,有任务查看权限的可以看到所有任务,否则只能看到自己创建的任务。
  2. 点击创建任务按钮时,需要检测当前用户是否拥有任务创建权限,如果没有,则需要生成权限申请URL (注意该URL为后台动态生成),通过弹窗等方式提示用户,并允许用户点击该URL跳转到对应的权限申请页面
  3. 任务创建接口需要调用 IAM SDK 检查用户是否有任务创建权限,如果没有则拒绝创建,并返回提示信息给用户 无权限跳转可参考如下展示(仅供参考): no_perm.png

Roadmap

本项目将结合我们的课程分为五个部分

【Part 1】SaaS 后台框架搭建

  • 结合需求创建model模型
  • 通过DRF提供restful接口,其中标准运维相关接口以mock的形式提供
  • 以装饰器的方式mock权限相关代码

【Part 2】前端页面开发

  • 使用 lesscode 完成任务列表页面
  • 新增部署按钮,刷新按钮,查看任务按钮
  • 新建部署弹框(下拉框,文本输入框)
  • 事件绑定、计算属性、侦听器等
  • 进阶完成 lesscode 暂时无法实现的功能
  • 把所有接口对接至后台接口

【Part 3】APIGateway 接入

  • 讲解APIGateway对应文档查询
  • 把Part3中mock掉的标准运维接口,调整为Gateway调用

【Part 4】异步任务支持

  • 把查询标准运维任务状态的功能,通过celery周期任务实现
  • 完成任务的消息通知,通过celery异步执行

【Part 5】权限中心接入

  • 注册本项目的权限模型到权限中心(任务创建,执行记录查看)
  • 对后台提供的接口结合iam sdk进行鉴权

Support

BlueKing Community

  • BK-CMDB:蓝鲸配置平台(蓝鲸 CMDB)是一个面向资产及应用的企业级配置管理平台。

  • BK-CI:蓝鲸持续集成平台是一个开源的持续集成和持续交付系统,可以轻松将你的研发流程呈现到你面前。

  • BK-BCS:蓝鲸容器管理平台是以容器技术为基础,为微服务业务提供编排管理的基础服务平台。

  • BK-BCS-SaaS:蓝鲸容器管理平台 SaaS 基于原生 Kubernetes 和 Mesos 自研的两种模式,提供给用户高度可扩展、灵活易用的容器产品服务。

  • BK-PaaS:蓝鲸 PaaS 平台是一个开放式的开发平台,让开发者可以方便快捷地创建、开发、部署和管理 SaaS 应用。

  • BK-SOPS:标准运维(SOPS)是通过可视化的图形界面进行任务流程编排和执行的系统,是蓝鲸体系中一款轻量级的调度编排类 SaaS 产品。

  • BK-JOB 蓝鲸作业平台(Job)是一套运维脚本管理系统,具备海量任务并发处理能力。

Contributing

如果你有好的意见或建议,欢迎给我们提 Issues 或 Pull Requests,为蓝鲸开源社区贡献力量。

License

基于 MIT 协议, 详细请参考LICENSE

MIT License Copyright (c) 2022 腾讯蓝鲸 Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

蓝鲸 SaaS 开发对外课程资料 展开 收起
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
1
https://gitee.com/Tencent-BlueKing_admin/bk-saas-edu.git
git@gitee.com:Tencent-BlueKing_admin/bk-saas-edu.git
Tencent-BlueKing_admin
bk-saas-edu
bk-saas-edu
master

搜索帮助