软件程序的灰度发布控制方法和灰度发布控制装置制造方法及图纸

技术编号:12883199 阅读:60 留言:0更新日期:2016-02-17 15:35
根据本发明专利技术,提出了一种软件程序的灰度发布控制方法,包括:从软件程序的功能函数中确定该软件程序的核心函数;针对所确定的软件程序的所有核心函数,确定修改后的待发布的最新的软件程序相对于当前正在运行的软件程序的整体源码变化率;以及在所述整体源码变化率超过或等于预定的阈值的情况下,将所述最新的软件程序作为试用版本而将当前正在运行的软件程序作为稳定版本进行灰度分布。

【技术实现步骤摘要】

本专利技术涉及软件处理领域,具体涉及一种软件程序的灰度发布控制方法和灰度发 布控制装置,能够通过对软件的灰度发布与否进行判定,并利用用户对灰度发布版本的反 馈结果对灰度发布过程进行控制,从而减少软件发布的风险。
技术介绍
当前随着移动互联网的快速发展,各种SaaS(软件即服务)软件厂商为了抢占宝 贵的市场机会,都加快了SaaS系统软件发布和更新的速度。有些大的软件公司甚至开发了 可每日发布的软件发布平台。但是随着软件发布时间的缩短和发布频率的增加,软件发布 带来的风险也越来越明显。如果新发布的软件存在明显的技术问题,对公司带来的损失是 非常严重的。 为了控制和减少软件发布的风险,一些互联网公司开始采用新的软件发布方式即 灰度发布。在灰度发布中,同时发布稳定版本的软件和试用版本的软件,设定大部分的客户 继续之前的稳定版本的软件,而只设定小部分的用户访问试用版本,这样即使试用版本的 软件存在问题影响范围只是有限的小部分用户,从而有效减少了软件发布的风险。 例如,中国专利申请No:201110333921. 6提供了一种灰度发布的处理方法及系 统,如图1所示,它把稳定版本的软件和试用版本的软件分别放在不同的服务器上,在运行 服务器前端添加了代理服务器,在代理服务器中安装了试用IP列表和客户访问判断模块。 在用户A请求服务时,先在代理服务器中判断该A客户是否在试用IP列表中。如果在就把 请求转发到试用版本中,如果不在试用IP列表中就把请求转发到稳定版本中。 但是这样的灰度发布存在以下三个问题: (1)由于灰度发布过程中需要同时维护多个版本的软件,所以相比传统发布方式, 灰度发布要花费软件人员更多的时间和精力,因此需要有一种方法,能够在软件系统每次 更新之前判断是否真的需要做灰度发布; (2)在一般的灰度发布过程中,试用用户占所有用户的比例以及试用用户列表都 是随机选择和生成的,没有一个具体的数学模型去计算这样的参数值; (3)传统的软件发布过程仅仅考虑软件厂商的自己的利益而没有真正考虑终端客 户的感受,比如SaaS系统更换了软件的前端页面设计,将会影响到终端客户的使用方式和 使用感受。所以应该考虑让终端客户也参与到SaaS系统的发布和更新过程中。
技术实现思路
为了解决现有技术的上述问题提出了本专利技术。因此,本专利技术的目的之一是提出一 种软件程序的灰度发布控制方法和灰度发布控制装置,能够通过对软件的灰度发布与否进 行判定,并利用用户对灰度发布版本的反馈结果对灰度发布过程进行控制,从而减少软件 发布的风险。 为了实现上述目的,根据本专利技术,提出了一种软件程序的灰度发布控制方法,包 括:从软件程序的功能函数中确定该软件程序的核心函数;针对所确定的软件程序的所有 核心函数,确定修改后的待发布的最新的软件程序相对于当前正在运行的软件程序的整体 源码变化率;以及在所述整体源码变化率超过或等于预定的阈值的情况下,将所述最新的 软件程序作为试用版本而将当前正在运行的软件程序作为稳定版本进行灰度分布。 优选地,所述方法还包括:在对该软件程序进行灰度分布时,对于该软件程序中源 码变化率较大的核心函数,根据运行日志信息确定其所对应的通常访问用户和通常访问时 间,从而确定针对所述灰度发布的试用用户和试用时间。 优选地,所述核心函数是通过根据从软件运行服务器中获取的该软件程序的运行 日志信息进行函数的调用频率分析而确定的。 优选地,所述核心函数是通过由程序开发者指定来确定的。 优选地,所述方法还包括:在进行灰度发布时,根据实时从试用版本的运行服务器 中获取的作为日志记录的函数出错率和客户对新版本的使用反馈信息,判断是停用该试用 版本还是将该试用版本采用为新的稳定版本。 优选地,所述软件程序包括软件即服务程序,即,SaaS软件程序。 另外,根据本专利技术,还提出了一种软件程序的灰度发布控制装置,包括:从软件程 序的功能函数中确定该软件程序的核心函数的单元;针对所确定的软件程序的所有核心函 数,确定修改后的待发布的最新的软件程序相对于当前正在运行的软件程序的整体源码变 化率的单元;以及在所述整体源码变化率超过或等于预定的阈值的情况下,将所述最新的 软件程序作为试用版本而将当前正在运行的软件程序作为稳定版本进行灰度分布的单元。 本专利技术能够根据系统的检测和用户的反馈来减少软件版本发布的风险,同时提高 软件由试用版转化为稳定版本的效率。通过该系统的应用,软件试用人员能够通过简单易 用的用户图形界面提供使用软件系统的反馈信息,以助于系统的改进。同时,软件开发人员 能够及时得到系统和用户对程序代码功能、质量等的反馈,及时提高软件开发及修正的进 度。【附图说明】 通过参考以下组合附图对所采用的优选实施方式的详细描述,本专利技术的上述目 的、优点和特征将变得更显而易见,其中: 图1是示出了传统发布和灰度发布的系统结构差别的图。 图2是示出了根据本专利技术的处于灰度发布系统中的灰度发布控制服务器的具体 结构的框图。 图3是示出了根据本专利技术的灰度发布系统架构的一个示例的图。 图4是示出了根据本专利技术的灰度发布方法的主要流程的图。 图5是示出了根据本专利技术的灰度发布方法的过程001的具体处理的流程图。 图6是示出了根据本专利技术的灰度发布方法的过程002的具体处理的流程图。 图7是示出了灰度发布客户反馈GUI(图形用户界面)的一个示例的示意图。 图8是示出了根据本专利技术的灰度发布方法的过程003的具体处理的流程图。【具体实施方式】 为使本专利技术的上述目的、特征和优点更加明显易懂,以下结合附图和具体实施例 进一步详细描述本专利技术。需要说明的是,附图中的各结构只是示意性的而不是限定性的,以 使本领域普通技术人员最佳地理解本专利技术的原理,其不一定按比例绘制。下面将结合附图 对本专利技术的实施例进行详细说明。 本专利技术的特征是在原来开发服务器、运行服务器和代理服务器之外,添加了灰度 发布控制器。如图2所示,该灰度发布控制服务器与开发服务器、运行服务器和代理服务器 相连接,从开发服务器、运行服务器获取相关数据,并基于数据分析结果来设置代理服务器 从而实现灰度发布的控制。 图2示出了根据本专利技术的处于灰度发布系统中的灰度发布控制服务器的具体结 构。该灰度发布控制服务器主要包括4个模块 : 1.运行分析模块 该运行分析模块与软件运行服务器(图2所示的运行服务器1和/或运行服务器 2)连接,并从软件运行服务器中获取运行日志信息。由于软件的每一个功能和任务的都是 基于程序中一个或者多个的功能函数来实现,而这些函数被调用一次就在运行日志中增加 一条记录,记录包含了调用用户信息、函数名字、被调用时间以及执行结果等。 通过分析这些日志信息,我们可以统计出功能函数被调用的顺序和每个功能函数 被调用的次数等。作为示例,可以将调用函数频率最高的前N个函数称为核心函数,其中N 是用户可以设定的值。当然,选择核心函数的方式并不局限于此。 有些函数调用频率不高但是非常重要,如果出错的话软件发布风险非常高,对于 这种核心函数系统提供了一种交互界面,自动显示出所有功能函数以及他们之间的调用关 系,由开发者手动指定哪些是核心函数。 2.源码变化分析模块 程序员在修改和测试完最新的软件源码后会提交到源码管理服务器上本文档来自技高网
...

【技术保护点】
一种软件程序的灰度发布控制方法,包括:从软件程序的功能函数中确定该软件程序的核心函数;针对所确定的软件程序的所有核心函数,确定修改后的待发布的最新的软件程序相对于当前正在运行的软件程序的整体源码变化率;以及在所述整体源码变化率超过或等于预定的阈值的情况下,将所述最新的软件程序作为试用版本而将当前正在运行的软件程序作为稳定版本进行灰度分布。

【技术特征摘要】

【专利技术属性】
技术研发人员:鲁时雨李军
申请(专利权)人:株式会社日立制作所
类型:发明
国别省市:日本;JP

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1