[发明专利]一种基于React Native的灰度热部署系统有效
申请号: | 202110119988.3 | 申请日: | 2021-01-28 |
公开(公告)号: | CN112817624B | 公开(公告)日: | 2022-10-04 |
发明(设计)人: | 赵存;高宇健;欧平均 | 申请(专利权)人: | 杭州衣科信息技术股份有限公司 |
主分类号: | G06F8/65 | 分类号: | G06F8/65;G06F8/658;G06F8/71;G06F16/242;G06F16/2455;G06F16/28 |
代理公司: | 杭州天昊专利代理事务所(特殊普通合伙) 33283 | 代理人: | 程皓 |
地址: | 311100 浙江省杭州市临*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 react native 灰度 部署 系统 | ||
1.一种基于React Native的灰度热部署系统,其特征在于:包括gitlab runner模块、web端模块、服务端模块和客户端模块;
gitlab runner模块用于执行打包任务,通过开源代码托管平台,部署基于该平台的运行服务,该运行服务通过相应执行任务文件进行运作,任务文件实现执行的任务,其包括依赖下载、打包;任务文件通过开源代码托管平台相应的对外接口进行触发;
web端模块用于灰度发布,触发gitlab runner模块的打包功能,打包结束后会将包上传到服务器,完成一次打包任务;服务器收到打包文件后,会将这次发布的版本及灰度方式存储到数据库中,完成一次应用发布;
服务端模块用于存储、下发打包的执行任务文件;服务端模块包括数据库表packages和packages_diff,其中packages表记录每次版本的发布,信息包括包下载链接、版本号、灰度方式、是否存在diff包、是否可下载;packages_diff表记录每次发布的diff后的文件信息;当服务端收到gitlab runner模块上传的包后,检查packages表是否已存在同版本的包,如果不存在,记录该次发布的相应信息到表packages;如果存在,则利用文本差异方法生成差异化后的内容,将差异后的内容保存到旧包进行替换,同时记录到packages_diff表,完成一次差异化过程;
当客户端模块的请求到达时,服务端模块根据请求携带的版本号检查packages表,如果不存在对应的版本号,则返回无更新包;如果存在对应的版本号,检查是否满足灰度条件,不满足灰度条件时返回无更新包,满足灰度条件时,检查是否存在差异包,不存在,下发完整的包下载链接,存在,从表packages_diff中获取下载链接返回;
当从web端模块暂停某次灰度发布时,服务端模块会将packages表对应的那条发布记录是否可下载字段标记为否,此时当客户端模块请求触达时返回无更新包;
客户端模块,每次客户端模块启动时,请求接口检查更新,服务器模块根据接口参数,返回相关结果,客户端模块拿到返回结果后;如果无更新包,则结束流程;如果有更新包,下载该包;下载完成后,判断是否为差异包,如果不是差异包,保存该包到本地,同时将该包标记为current_package,将正在运行的包标记为previous_package;如果是差异包,则利用文本差异方法合并差异包内容到现有包,并保存到本地,同时将保存的包标记为current_package,将正在运行的包标记为previous_package;
下次启动获取标记为current_package的包运行,如果首次运行current_package包崩溃,则删除current_package标记的包,同时将标记为previous_package的包更改为current_package,供下次启动运行;
其中,文本差异方法采用处理步骤少,且处理上删除后新增,比新增后删除多;其中,通过图的最短路径搜索问题来进行最优选择;具体的,把文件头部相同的最长子串剔除;对于尾部,以较短的字符串为依据求最长子串,后剔除最长子串,文件剩下的部分再做diff包处理。
2.根据权利要求1所述的一种基于React Native的灰度热部署系统,其特征在于:当客户端模块的请求包括版本号、系统版本、网络条件、地区信息。
3.根据权利要求1所述的一种基于React Native的灰度热部署系统,其特征在于:灰度条件的方式为android 系统版本大于8,当请求携带的信息android 系统版本为7时则不满足灰度条件,android 系统版本为9时则满足灰度条件。
4.根据权利要求1所述的一种基于React Native的灰度热部署系统,其特征在于:差异包为下载的包信息里面携带了是否为差异包信息。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州衣科信息技术股份有限公司,未经杭州衣科信息技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110119988.3/1.html,转载请声明来源钻瓜专利网。