基于docker的灰度发布装置及方法

文档序号:10593872阅读:4035来源:国知局
基于docker的灰度发布装置及方法
【专利摘要】本发明实施例提供一种基于docker的灰度发布装置及方法,属于互联网领域。该装置包括:分流策略设置模块用于设置分流策略;分流策略生效模块使所设置的分流策略生效并将生效后的分流策略传送给网络服务器;网络服务器接收用户终端发送的使用请求,将生效后的分流策略与使用请求中的参数信息进行匹配,基于匹配结果将使用请求传送给分流docker部署集群或线上docker部署集群;分流docker部署集群存储新版本网络产品并在接收到使用请求后向用户终端提供新版本网络产品;以及线上docker部署集群存储旧版本网络产品并在接收到使用请求后向用户终端提供旧版本网络产品。本发明实施例能够使使用docker线上环境的网络产品开发商在开发出新版本的网络产品之后有效地进行灰度发布。
【专利说明】
基于docker的灰度发布装置及方法
技术领域
[0001]本发明涉及互联网领域,具体地,涉及一种基于docker的灰度发布装置及方法。
【背景技术】
[0002]Docker是PaaS提供商dotCloud开源的一个基于LXC的应用容器引擎,能够让开发者打包他们的应用及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。
[0003]灰度发布又称体验式发布,是指在黑与白之间,能够平滑过渡的一种发布方式。灰度发布可以保证整体系统的稳定,在初始灰度发布的时候就可以发现、调整问题,以保证其影响度。灰度发布的主要思想就是把影响集中到一个点,然后再发散到一个面,出现意外情况时,很容易回退,避免造成大范围的影响。具体来说,当一款网络产品的新版本上线时,只允许一部分用户使用新版本的网络产品,而让其他用户继续使用旧版本的网络产品,如果使用新版本网络产品的用户对新版本网络产品没有什么反对意见,那么逐步扩大新版本网络产品的发布范围,直至最终把所有用户都迀移到新版本网络产品上来。
[0004]在实现本发明的过程中,发明人发现目前本领域内并没有基于docker线上环境的灰度发布方案。这使得使用docker线上环境的网络产品开发商在开发出新版本网络产品之后,不能有效地进行灰度发布。

【发明内容】

[0005]本发明实施例的目的是提供一种基于docker的灰度发布装置及方法,其能够使得使用docker线上环境的网络产品开发商在开发出新版本网络产品之后有效地进行灰度发布。
[0006]为了实现上述目的,本发明实施例提供一种基于docker的灰度发布装置,该装置包括:分流策略设置模块,用于设置分流策略;分流策略生效模块,用于使所述分流策略设置模块所设置的分流策略生效并将生效后的分流策略传送给网络服务器;所述网络服务器,用于接收用户终端发送的使用请求,将生效后的分流策略与所述使用请求中的参数信息进行匹配,并基于匹配结果而将所述使用请求传送给分流docker部署集群或线上docker部署集群;所述分流docker部署集群,用于存储新版本网络产品,并在接收到所述使用请求之后向所述用户终端提供所述新版本网络产品;以及所述线上docker部署集群,用于存储旧版本网络产品,并在接收到所述使用请求之后向所述用户终端提供所述旧版本网络产品,其中,所述新版本网络产品和所述旧版本网络产品是同一网络产品的不同版本。
[0007]可选地,所述分流策略包括以下至少一者:允许使用所述新版本网络产品的线上流量的百分比、允许使用所述新版本网络产品的IP类型、允许使用所述新版本网络产品的用户账号、允许使用所述新版本网络产品的地理位置、允许使用所述新版本网络产品的用户终端特性和允许使用所述新版本网络产品的用户个人属性。
[0008]可选地,该装置还包括日志分析模块,用于从使用所述新版本网络产品的用户终端获取所述新版本网络产品的运行日志,并对所获取的运行日志进行分析以得到日志分析?艮胃。
[0009]可选地,该装置还包括分流策略存储模块,用于存储所述分流策略设置模块所设置的分流策略。
[0010]可选地,所述分流策略设置模块还用于更新所述分流策略存储模块中的分流策略。
[0011]本发明实施例还提供一种基于docker的灰度发布方法,该方法包括:由分流策略设置模块设置分流策略;由分流策略生效模块使所述分流策略设置模块所设置的分流策略生效并将生效后的分流策略传送给网络服务器;由所述网络服务器接收用户终端发送的使用请求,并将生效后的分流策略与所述使用请求中的参数信息进行匹配;在生效后的分流策略与所述参数信息匹配的情况下,由所述网络服务器将所述使用请求传送给分流docker部署集群,并由所述分流docker部署集群向所述用户终端提供新版本网络产品;以及在生效后的分流策略与所述参数信息不匹配的情况下,由所述网络服务器将所述使用请求传送给线上docker部署集群,并由所述线上docker部署集群向所述用户终端提供旧版本网络产品,其中,所述新版本网络产品和所述旧版本网络产品是同一网络产品的不同版本。
[0012]可选地,所述分流策略包括以下至少一者:允许使用所述新版本网络产品的线上流量的百分比、允许使用所述新版本网络产品的IP类型、允许使用所述新版本网络产品的用户账号、允许使用所述新版本网络产品的地理位置、允许使用所述新版本网络产品的用户终端特性和允许使用所述新版本网络产品的用户个人属性。
[0013]可选地,该方法还包括:由日志分析模块从使用所述新版本网络产品的用户终端获取所述新版本网络产品的运行日志,并对所获取的运行日志进行分析以得到日志分析报生口 ο
[0014]可选地,该方法还包括:由分流策略存储模块存储所述分流策略设置模块所设置的分流策略。
[0015]可选地,该方法还包括:由所述分流策略设置模块更新所述分流策略存储模块中的分流策略。
[0016]由于根据本发明实施例的技术能够设置分流策略,使所设置的分流策略生效,并基于生效后的分流策略与来自用户终端的使用请求中的参数信息之间的匹配而由分流docker部署集群向用户终端提供新版本网络产品或由线上docker部署集群向用户终端提供旧版本网络产品,从而有效地实现了网络产品的灰度发布。
[0017]本发明实施例的其它特征和优点将在随后的【具体实施方式】部分予以详细说明。
【附图说明】
[0018]附图是用来提供对本发明实施例的进一步理解,并且构成说明书的一部分,与下面的【具体实施方式】一起用于解释本发明实施例,但并不构成对本发明实施例的限制。在附图中:
[0019]图1是根据本发明一个实施例的基于docker的灰度发布装置的示意框图;
[0020]图2是根据本发明又一实施例的基于docker的灰度发布装置的示意框图;
[0021]图3是根据本发明又一实施例的基于docker的灰度发布装置的示意框图;
[0022]图4是根据本发明一个实施例的基于docker的灰度发布方法的流程图;以及
[0023]图5是根据本发明一个实施例的用于基于docker的灰度发布装置的计算机系统的结构示意图。
【具体实施方式】
[0024]以下结合附图对本发明实施例的【具体实施方式】进行详细说明。应当理解的是,此处所描述的【具体实施方式】仅用于说明和解释本发明实施例,并不用于限制本发明实施例。
[0025]实施例一
[0026]本发明实施例提供一种基于docker的灰度发布装置I,如图1所示,该装置I可以包括分流策略设置模块10、分流策略生效模块20、网络服务器30、分流docker部署集群40和线上docker部署集群50。以下详细描述这些模块。
[0027]在本实施例中,分流策略设置模块10可以用于设置分流策略。设置分流策略的目的是,在用户终端2请求网络产品时,只向合适的用户终端2提供新版本网络产品,从而当一款网络产品的新版本上线时,只允许一部分用户使用新版本网络产品,而让其他用户继续使用旧版本网络产品,并在使用新版本网络产品的用户对新版本网络产品没有什么反对意见的情况下,逐步扩大新版本网络产品的发布范围,直至最终把所有用户都迀移到新版本网络产品上来。
[0028]在本实施例中,所述分流策略可以包括以下至少一者:
[0029](I)允许使用所述新版本网络产品的线上流量的百分比,例如,在新版本网络产品发布之初,只允许诸如1%的线上流量被分配给新版本网络产品,也即通过限制线上流量来限制新版本网络产品的访问量;
[0030](2)允许使用所述新版本网络产品的IP类型,例如,只允许具有某些类型IP的用户终端使用新版本网络产品,这样就能够使得新版本网络产品首先在诸如公司内部进行试用,并然后逐渐向外扩散;
[0031](3)允许使用所述新版本网络产品的用户账号,这样,就能够只允许某些类型的用户账户首先使用新版本网络产品;
[0032](4)允许使用所述新版本网络产品的地理位置,例如,只允许某些地理区域内的用户终端首先使用新版本网络产品;
[0033](5)允许使用所述新版本网络产品的用户终端特性,其中,用户终端特性可以包括用户终端的分辨率、速度等特性。以网络产品是游戏应用为例,假设该游戏应用的新版本提高了游戏速度,那么可选只允许内存速度很高的用户终端首先体验该新版本的游戏应用;以及
[0034](6)允许使用所述新版本网络产品的用户个人属性,例如用户的性别、年龄、忠诚度等。
[0035]在本实施例中,分流策略生效模块20用于使所述分流策略设置模块10所设置的分流策略生效,并将生效后的分流策略传送给网络服务器30。本发明实施例不对生效方法进行限制,只要能够使分流策略设置模块10所设置的分流策略生效即可。例如,可以采用Nginx的方式来使分流策略生效。其中,Nginx是一个高性能的HTTP和反向代理服务器,其是本领域技术人员熟知的,本文中不进行详细描述。
[0036]在本实施例中,在分流策略生效模块20使所设置的分流策略生效时,一种情况可以是,分流策略生效模块20首先向分流策略设置模块10发送生效请求,然后分流策略设置模块10在接收到生效请求之后向分流策略生效模块10发送所设置的分流策略以便对这些分流策略进行生效;另一种情况可以是,分流策略设置模块10主动将新设置的分流策略发送给分流策略生效模块20以便分流策略能够被生效。
[0037]在本实施例中,所述网络服务器30用于接收用户终端2发送的使用请求,将生效后的分流策略与所述使用请求中的参数信息进行匹配,并基于匹配结果而将所述使用请求传送给分流docker部署集群40或线上docker部署集群50。其中,用户终端2发送的使用请求是用户终端2对网络产品的使用要求。另外,由于用户终端2发送的使用请求中都会包含关于用户终端2、使用者等的相关信息(例如,用户终端的IP地址、用户账号等),因此通过使用请求中包含的参数信息与所生效分流策略的匹配就能够获悉发送使用请求的用户终端2是否满足新版本网络产品的试用要求。
[0038]在本实施例中,所述分流docker部署集群40用于存储新版本网络产品,并在接收到所述使用请求之后向所述用户终端2提供所述新版本网络产品。
[0039]在本实施例中,所述线上docker部署集群50用于存储旧版本网络产品,并在接收到所述使用请求之后向所述用户终端2提供所述旧版本网络产品,其中,所述新版本网络产品和所述I日版本网络产品是同一网络产品的不同版本。
[0040]实施例二
[0041]在实施例一所述的基于docker的灰度发布装置的基础上,如图2所示,在本实施例中,基于docker的灰度发布装置I还可以包括日志分析模块60,用于从使用所述新版本网络产品的用户终端2获取所述新版本网络产品的运行日志,并对所获取的运行日志进行分析以得到日志分析报告。例如,日志分析报告中可以包括业务日志错误请求、用户终端2的稳定性、新版本网络产品的使用次数、新版本网络产品的使用频率等等,以便于为新版本网络产品的全量发布提供可靠的依据和改进依据。
[0042]实施例三
[0043]在实施例一和实施例二的基础上,如图3所示,在本实施例中,基于docker的灰度发布装置I还可以包括分流策略存储模块70,用于存储所述分流策略设置模块10所设置的分流策略。
[0044]在本实施例中,所述分流策略设置模块10还可以用于更新所述分流策略存储模块70中的分流策略,这样,在分流策略设置模块10首次设置了分流策略之后,当再次有新版本的网络产品推出时,分流策略设置模块10就可以通过对分流策略存储模块70中所存储的分流策略进行诸如修改、删除、添加、撤销等操作来更新分流策略存储模块70中所存储的分流策略,这样就大大节省了分流策略的再次设置效率。
[0045]实施例四
[0046]本发明实施例还提供一种基于docker的灰度发布方法,该方法可以适用于图1、图2和图3所示的根据本发明实施例的基于docker的灰度发布装置。
[0047]在本实施例中,如图4所示,该灰度发布方法可以包括以下步骤SI至步骤S5。
[0048]步骤S1、由分流策略设置模块10设置分流策略。
[0049]设置分流策略的目的是,在用户终端2请求网络产品时,只向合适的用户终端2提供新版本的网络产品,从而当一款网络产品的新版本上线时,只允许一部分用户使用新版本的网络产品,而让其他用户继续使用旧版本的网络产品,并在使用新版本的网络产品的用户对新版本的网络产品没有什么反对意见的情况下,逐步扩大新版本网络产品的发布范围,直至最终把所有用户都迀移到新版本的网络产品上来。
[0050]在本实施例中,所述分流策略可以包括以下至少一者:
[0051](I)允许使用所述新版本网络产品的线上流量的百分比,例如,在新版本网络产品发布之初,只允许诸如1%的线上流量被分配给新版本的络产品,也即通过限制线上流量来限制新版本网络产品的访问量;
[0052](2)允许使用所述新版本网络产品的IP类型,例如,只允许具有某些类型IP的用户终端使用新版本网络产品,这样就能够使得新版本网络产品首先在诸如公司内部进行试用,并然后逐渐向外扩散;
[0053](3)、允许使用所述新版本网络产品的用户账号,这样,就能够只允许某些类型的用户账户首先使用新版本网络产品;
[0054](4)允许使用所述新版本网络产品的地理位置,例如,只允许某些地理区域内的用户终端首先使用新版本网络产品;
[0055](5)允许使用所述新版本网络产品的用户终端特性,其中,用户终端特性可以包括用户终端的分辨率、速度等特性,以网络产品是游戏应用为例,假设该游戏应用的新版本提高了游戏速度,那么可选只允许内存速度很高的用户终端首先体验该新版本的游戏应用;以及
[0056](6)允许使用所述新版本网络产品的用户个人属性,例如用户的性别、年龄、忠诚度等。
[0057]步骤S2、由分流策略生效模块20使所述分流策略设置模块10所设置的分流策略生效并将生效后的分流策略传送给网络服务器30。本发明实施例不对生效方法进行限制,只要能够使分流策略设置模块10所设置的分流策略生效即可。例如,可以采用Nginx的方式来使分流策略生效。其中,Nginx是一个高性能的HTTP和反向代理服务器,其是本领域技术人员熟知的,本文中不进行详细描述。
[0058]在本实施例中,在分流策略生效模块20使所设置的分流策略生效时,一种情况可以是,分流策略生效模块20首先向分流策略设置模块10发送生效请求,然后分流策略设置模块10在接收到生效请求之后向分流策略生效模块10发送所设置的分流策略以便对这些分流策略进行生效;另一种情况可以是,分流策略设置模块10主动将新设置的分流策略发送给分流策略生效模块20以便分流策略能够被生效。
[0059]步骤S3、由所述网络服务器30接收用户终端发送的使用请求,将生效后的分流策略与所述使用请求中的参数信息进行匹配。
[0060]其中,用户终端2发送的使用请求是用户终端2对网络产品的使用要求。
[0061]另外,由于用户终端2发送的使用请求中都会包含关于用户终端2、使用者等的相关信息(例如,用户终端的IP地址、用户账号等),因此通过使用请求中包含的参数信息与所生效分流策略的匹配就能够获悉发送使用请求的用户终端2是否满足新版本网络产品的试用要求。
[0062]步骤S4、在生效后的分流策略与所述参数信息匹配的情况下,由所述网络服务器30将所述使用请求传送给分流docker部署集群40,并由分流docker部署集群40向所述用户终端2提供新版本网络产品。
[0063]步骤S5、在生效后的分流策略与所述参数信息不匹配的情况下,由所述网络服务器30将所述使用请求传送给所述线上docker部署集群50,并由所述线上docker部署集群50向所述用户终端2提供所述旧版本网络产品,其中,所述新版本网络产品和所述旧版本网络产品是同一网络产品的不同版本。
[0064]实施例五
[0065]在实施例四所述的基于docker的灰度发布方法的基础上,在本实施例中,所述灰度发布方法还可以包括以下步骤:由日志分析模块60从使用所述新版本网络产品的用户终端2获取所述新版本网络产品的运行日志,并对所获取的运行日志进行分析以得到日志分析报告。例如,日志分析报告中可以包括业务日志错误请求、用户终端2的稳定性、新版本网络产品的使用次数、新版本网络产品的使用频率等等,以便于为新版本网络产品的全量发布提供可靠的依据和改进依据。
[0066]实施例六
[0067]在实施例四和实施例五的基础上,在本实施例中,所述灰度发布方法还可以包括以下步骤:由分流策略存储模块70存储分流策略设置模块10所设置的分流策略。
[0068]在本实施例中,所述灰度发布方法还可以包括以下步骤:由所述分流策略设置模块10更新所述分流策略存储模块70中的分流策略,这样,在分流策略设置模块10首次设置了分流策略之后,当再次有新版本的网络产品推出时,分流策略设置模块10就可以通过对分流策略存储模块70中所存储的分流策略进行诸如修改、删除、添加、撤销等操作来更新分流策略存储模块70中所存储的分流策略,这样就大大节省了分流策略的再次设置效率。
[0069]上述实施例一至实施例六中提到的网络产品可以是在各种客户端(诸如移动终端、电脑(PC)端等)上使用的各种应用。而且,这里的网络产品可以包括互联网产品和非互联网产品。其中互联网产品可以包括通过互联网分发的手机APP、平板电脑APP以及台式电脑应用软件等;非互联网产品可以包括通过局域网等非互联网网络分发的手机APP、平板电脑APP以及台式电脑应用软件等。
[0070]实施例七
[0071]图5是根据本发明一个实施例的用于基于docker的灰度发布装置的计算机系统500的结构示意图。
[0072]如图5所示,计算机系统500可以包括中央处理模块(CPU)501,其可以根据存储在只读存储器(R0M)502中的程序或者从存储部分508加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。在RAM 503中,还可以存储有计算机系统500操作所需的各种程序和数据。CPU 50KROM 502以及RAM 503可以通过总线504彼此相连,而且输入/输出(1/0)接口 505也可以连接至总线504。
[0073]以下部件连接至1/0接口505:包括键盘、鼠标等的输入部分506 ;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分507;包括硬盘等的存储部分508;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器510也根据需要连接至1/0接口 505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入存储部分508。
[0074]特别地,根据本发明的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包含用于执行图4所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质511被安装。
[0075]本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0076]以上结合附图详细描述了本发明实施例的可选实施方式,但是,本发明实施例并不限于上述实施方式中的具体细节,在本发明实施例的技术构思范围内,可以对本发明实施例的技术方案进行多种简单变型,这些简单变型均属于本发明实施例的保护范围。
[0077]另外需要说明的是,在上述【具体实施方式】中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本发明实施例对各种可能的组合方式不再另行说明。
[0078]此外,本发明实施例的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明实施例的思想,其同样应当视为本发明实施例所公开的内容。
【主权项】
1.一种基于docker的灰度发布装置,该装置包括: 分流策略设置模块,用于设置分流策略; 分流策略生效模块,用于使所述分流策略设置模块所设置的分流策略生效并将生效后的分流策略传送给网络服务器; 所述网络服务器,用于接收用户终端发送的使用请求,将生效后的分流策略与所述使用请求中的参数信息进行匹配,并基于匹配结果而将所述使用请求传送给分流docker部署集群或线上docker部署集群; 所述分流docker部署集群,用于存储新版本网络产品,并在接收到所述使用请求之后向所述用户终端提供所述新版本网络产品;以及 所述线上docker部署集群,用于存储旧版本网络产品,并在接收到所述使用请求之后向所述用户终端提供所述旧版本网络产品,其中,所述新版本网络产品和所述旧版本网络产品是同一网络产品的不同版本。2.根据权利要求1所述的装置,其中,所述分流策略包括以下至少一者:允许使用所述新版本网络产品的线上流量的百分比、允许使用所述新版本网络产品的IP类型、允许使用所述新版本网络产品的用户账号、允许使用所述新版本网络产品的地理位置、允许使用所述新版本网络产品的用户终端特性和允许使用所述新版本网络产品的用户个人属性。3.根据权利要求1所述的装置,该装置还包括日志分析模块,用于从使用所述新版本网络产品的用户终端获取所述新版本网络产品的运行日志,并对所获取的运行日志进行分析以得到日志分析报告。4.根据权利要求1所述的装置,该装置还包括分流策略存储模块,用于存储所述分流策略设置模块所设置的分流策略。5.根据权利要求4所述的装置,其中,所述分流策略设置模块还用于更新所述分流策略存储模块中的分流策略。6.一种基于docker的灰度发布方法,该方法包括: 由分流策略设置模块设置分流策略; 由分流策略生效模块使所述分流策略设置模块所设置的分流策略生效并将生效后的分流策略传送给网络服务器; 由所述网络服务器接收用户终端发送的使用请求,并将生效后的分流策略与所述使用请求中的参数信息进行匹配; 在生效后的分流策略与所述参数信息匹配的情况下,由所述网络服务器将所述使用请求传送给分流docker部署集群,并由所述分流docker部署集群向所述用户终端提供新版本网络产品;以及 在生效后的分流策略与所述参数信息不匹配的情况下,由所述网络服务器将所述使用请求传送给线上docker部署集群,并由所述线上docker部署集群向所述用户终端提供旧版本网络产品,其中,所述新版本网络产品和所述旧版本网络产品是同一网络产品的不同版本。7.根据权利要求6所述的方法,其中,所述分流策略包括以下至少一者:允许使用所述新版本网络产品的线上流量的百分比、允许使用所述新版本网络产品的IP类型、允许使用所述新版本网络产品的用户账号、允许使用所述新版本网络产品的地理位置、允许使用所述新版本网络产品的用户终端特性和允许使用所述新版本网络产品的用户个人属性。8.根据权利要求6所述的方法,该方法还包括:由日志分析模块从使用所述新版本网络产品的用户终端获取所述新版本网络产品的运行日志,并对所获取的运行日志进行分析以得到日志分析报告。9.根据权利要求6所述的方法,该方法还包括:由分流策略存储模块存储所述分流策略设置模块所设置的分流策略。10.根据权利要求9所述的方法,该方法还包括:由所述分流策略设置模块更新所述分流策略存储模块中的分流策略。
【文档编号】G06F9/445GK105955761SQ201610506846
【公开日】2016年9月21日
【申请日】2016年6月30日
【发明人】彭亮
【申请人】乐视控股(北京)有限公司, 乐视致新电子科技(天津)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1