有赞移动关于权限与审批流程的标准化

一、背景

有赞移动有weex发布平台、移动配置中心平台、App分发平台、热修复平台等。这些平台都需要发布,而发布就需要规范化,需要审批制度。如果为各个平台开发这个审批流程,看起来是一种浪费。

首先想到第一种方案:接入现有的前后端发布平台。

移动侧的发布基本是配置类的发布,跟后端应用和前端应用的发布不一样。后端应用和前端应用的发布都是将指定的内容推送到某台或者多台机器进行部署、启动。两者如果硬要做抽象,成本反而更大,而且不易维护。所以放弃第一种方案。

那么是否可以抽象成单独的统一管理平台,进行标准化呢?

二、梳理

首先看一下标准的发布审批流程一般是怎么样的?

第一步:申请人提交发布单

第二步:负责人审批

第三步:申请人发布

而这里申请人和负责人就是以权限为区分。

一般的权限角色有模块负责人、开发、运营、测试等。

其中,审批人是模块负责人,而申请人可以是开发,也可以是模块负责人。而二方平台还可以根据不同角色赋予不同的权限。

2.1 权限

权限实质上指的是用户和模块之间的关系。所以只需要模块的唯一标识和用户的唯一标识,用户的唯一标识由统一的用户认证服务提供,模块的唯一标识由各个二方平台提供。对于二方平台来说,只要提供模块唯一标识和用户唯一标识,然后获得角色即可,然后根据角色进行相应的操作。所以这一层就可以单独抽离出来。现有的前后端发布平台也已经验证了这一点。

2.2 审批

审批需要哪些元素呢? 申请人、审批内容、审批人、审批状态。其中审批内容在各个二方平台是不一样的。

尽管如此,还是可以抽象成两个字段:审批单唯一标识和用于查看审批详情的链接。这两个字段都可以由二方平台提供。所以审批也是可以做抽象的。

三、设计

如何设计这个统一的平台将权限与审批流程标准化呢?首先看一下二方平台和有赞移动权限与审批统一管理平台(以下简称统一管理平台)的交互流程图。


首先,二方平台和统一管理平台都要依赖CAS,CAS是有赞的用户认证平台。这样,就可以基于同个用户进行权限管理。

3.1 二方平台与统一管理平台的交互

从图中可以看到,二方平台与统一管理平台主要有四大交互:添加模块、获取权限、提交发布单、获取发布单状态。

3.1.1 添加模块

模块是最小的可配置权限的元素,比如weex发布平台对应的各个模块、热修复平台对应的App等。需要在发布平台配置权限的时候,就需要选择模块。
所以,二方平台在注册模块的时候,需要同步到发布平台,带上平台和模块的唯一标识,以及模块的名称,增强可读性。

3.1.2 获取权限

权限由统一管理平台管理,模块负责人可以编辑权限,其他人可以申请权限。

二方平台通过携带平台和模块的唯一标识,以及用户的唯一标识,从统一管理平台获取权限,依赖权限进行相应的操作。

3.1.3 提交发布单

移动侧的各个二方平台发布的内容基本是配置类的信息,配置的内容、格式、条件都不一样。

比如weex发布的内容包含平台、环境、规则、描述,和页面列表,如图:


而热修复平台发布的内容包括应用版本、补丁文件、描述、下发模式(规则)等:


首先想到的是将这些配置类内容抽象成内容、规则和描述。但是如果这么做的话,各个二方平台展示时各自需要重新解析,也不便于根据内容里的字段进行搜索。

所以,各个二方平台的发布页面由各个平台自己开发,提交发布单的时候,再将唯一标识符(包含平台、模块、发布单ID等)和发布单详情的url传给统一管理平台,统一管理平台来维护一张审批表,包含发布单唯一标识符、状态、申请人、发布单详情url等。

其中,状态包括待审批、审批通过、审批拒绝。发布单详情url用于审批人在统一管理平台审批时可以跳转查看审批内容详情。

3.1.4 获取发布单状态

各个二方平台有各自的发布单详情表,而审批状态统一从统一管理平台获取。二方平台通过审批状态,判断是否可以进行发布。

3.2 优化改进

3.2.1 权限申请入口

考虑到每次需要添加的权限的时候,都需要模块负责人去权限管理页面添加,对于负责人来说是一种不必要的时间浪费。于是增加权限申请的入口,不仅在统一管理平台可见,在各个二方平台也开发入口,通过再url后面携带平台、模块、角色等参数,跳转到统一管理平台的权限申请页面。申请后,模块负责人会收到通知(企业微信、钉钉或者其他形式),同意申请即可。既减少了模块负责人的操作成本,也减少了模块负责人与申请人的沟通成本。

3.2.2 审批通知与审批结果通知

申请人发起发布申请后,审批人会实时收到通知。而审批人通过/拒绝申请后,申请人也会实时收到通知。减少了二者的沟通成本。

3.2.3 允许关闭审批

可能有一些模块的特殊性(测试模块),或者环境的特殊性(有赞的网络环境分为Daily、QA、Pre、Prod),有些模块在某些环境需要关闭审批,这样更能提高效率。否则在测试环境,每次发布都要审批,着实比较麻烦。

四、总结

由此,所有的审批操作和权限操作都在统一管理平台进行。添加模块、提交发布单和发布、回滚等操作在各自的二方平台进行。统一管理平台以Dubbo的形式向二方平台提供统一标准接口:

  • 接口一:在统一管理平台创建模块

  • 接口二:获取到用户在发布平台的角色

  • 接口三:在统一管理平台创建/撤回审批单

  • 接口四:获取审批单的进度

统一管理平台的后台操作页面,主要是权限管理界面和审批界面。


由此就将发布的审批流程和权限管理进行了标准化。现有的二方平台,以及将来更多二方平台都可以通过统一管理平台提供的接口接入,在统一管理平台上进行权限和审批流程的管理。后续随着二方平台的复杂度变高,权限角色的增加,审批类型的增加都可以很方便地进行扩展和复用。

标准化意义在于降低成本,包括开发成本和使用成本。日常开发中需要更多思考,识别业务中哪些可以标准化哪些需要个性化,然后将可标准化的部分抽象出来做成服务,对于效率和扩展性来说都是更好的选择。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 161,601评论 4 369
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 68,367评论 1 305
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 111,249评论 0 254
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,539评论 0 217
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,967评论 3 295
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,929评论 1 224
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 32,098评论 2 317
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,825评论 0 207
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,609评论 1 249
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,796评论 2 253
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,282评论 1 265
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,603评论 3 261
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,277评论 3 242
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,159评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,959评论 0 201
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 36,079评论 2 285
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,874评论 2 277

推荐阅读更多精彩内容

  • 专业考题类型管理运行工作负责人一般作业考题内容选项A选项B选项C选项D选项E选项F正确答案 变电单选GYSZ本规程...
    小白兔去钓鱼阅读 8,896评论 0 13
  • When it comes to... 语言有一种力量,每每谈到她的时候她总能给你制造一种意境。(或许语言便是我们...
    三羊洋阅读 219评论 0 0
  • 刚刚又重复到一个时间节点 很久之前做过的一个梦境 然后在刚刚谈话中出现了 场景 文字 一幕幕。 难道人生是一个轮回...
    愤怒的团团子阅读 134评论 0 0
  • 安装jdk 1、输入rpm -ivh 安装包名字 2、配置环境变量:输入vi /etc/profile 在最后添加...
    老天爱笨小孩NB阅读 174评论 0 0
  • 一级标题 二级标题 三级标题 图片插入 代码块 一盏灯, 一片昏黄; 一简书, 一杯淡茶。 守着那一份淡定, 品读...
    o迎着风o阅读 185评论 0 0