CN107360010B - 一种网站灰度发布方法及装置 - Google Patents
一种网站灰度发布方法及装置 Download PDFInfo
- Publication number
- CN107360010B CN107360010B CN201610300858.9A CN201610300858A CN107360010B CN 107360010 B CN107360010 B CN 107360010B CN 201610300858 A CN201610300858 A CN 201610300858A CN 107360010 B CN107360010 B CN 107360010B
- Authority
- CN
- China
- Prior art keywords
- user
- website
- gray
- version
- version number
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0813—Configuration setting characterised by the conditions triggering a change of settings
- H04L41/082—Configuration setting characterised by the conditions triggering a change of settings the condition being updates or upgrades of network functionality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0866—Checking the configuration
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请公开了一种网站灰度发布方法及装置。发送对网站进行数据访问的用户的参数信息至服务器;接收所述服务器发送的网站版本号,其中,所述网站版本号是所述服务器根据所述参数信息判断所述用户是否为灰度发布的目标用户从而得到的;根据所述网站版本号展示相应版本的网站。在不涉及网站发布环境硬件改造的情况下实现了灰度发布以及灰度版本与正式版本的平滑过渡。
Description
技术领域
本申请属于计算机软件测试领域,具体地说,涉及一种网站灰度发布方法及系统。
背景技术
灰度发布是指在黑与白之间,能够平滑过渡的一种发布方式。A/B test 就是一种灰度发布方式,让一部分用户继续用A,一部分用户开始用B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B 上面来。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度。
现有技术中,灰度发布的一种方式是,独立于现网环境之外部署一个灰度环境,即在原有的生产环境服务器以外,单独安排若干台服务器,并在这些单独的服务器上部署灰度版本的应用,提供给内部或外部的体验用户使用。灰度体验完成后,再对生产使用的服务器进行常规方式的部署发布。这种部署方案下的灰度环境类似于传统测试中使用的预发布环境,但不同的是此环境和生产环境共用正式生产环境的后台接口和数据库数据等。这种部署方式对现网系统的改造较小,灰度环境成本要求低,容易实现,对原有发布方式的改变较小,在灰度体验完成后,还是可以使用原有的发布方式对公众环境进行发布。然而,这种部署方式也存在一定的局限性,当灰度体验结束后,无法平滑的将灰度版本推广到全网用户,还需要对公众环境进行一次传统的中断业务的发布。另外,由于此部署方式是独立于公众生产环境的环境,一般提供的服务器的数量和性能可能会比较有限,因此相关的灰度体验用户的数量也会有所限制,无法进行大面积的灰度体验。
另一种灰度发布的部署方式是将灰度环境和现网环境部署在相同的服务器上,使用不同的端口,从而能够充分利用硬件资源,在硬件资源不足的情况下也能进行灰度发布的部署,且不影响正常生产。当然,这种灰度环境的部署方式侧存在一些短板,两套系统运行在同一套服务器上,在系统忙时,容易出现抢占资源的情况,例如,内存不能共享,参数、规则、缓存数据要重复加载等;与此同时,这一部署方式不容易维护,发布和运维都很麻烦;另外,并不是所有发布都需要灰度,这种部署方式不但要对负载均衡做设置,还需要确保两套系统完好运行。
综上,一种新的网站灰度发布的方法亟待提出。
发明内容
有鉴于此,本申请所要解决的技术问题是提供了一种网站灰度发布方法及装置,可以解决现有技术中,网站灰度发布不能平滑升级、发布工作量大等用户体验不佳的缺陷。
为了解决上述技术问题,本申请公开了一种网站灰度发布方法,包括如下步骤:
发送对网站进行数据访问的用户的参数信息至服务器;
接收所述服务器发送的网站版本号,其中,所述网站版本号是所述服务器根据所述参数信息判断所述用户是否为灰度发布的目标用户从而得到的;
根据所述网站版本号展示相应版本的网站。
其中,所述用户参数信息,具体包括,获取所述用户的IP地址、用户账号、用户地理位置信息、用户访问频度、用户属性。
其中,根据所述网站版本号展示相应版本的网站,具体包括:根据所述网站版本号展示相应的静态网页并通过ajax异步调用所述静态网页对应的数据内容。
本申请公开了一种网站灰度发布方法,位于服务器一侧执行时,包括如下步骤:
接收对网站进行数据访问的用户的参数信息;
根据所述参数信息判断所述用户是否为灰度发布的目标用户;
若为是,则根据预先为所述用户所分配的灰度版本确定所述网站的版本号,并发送所述网站版本号。
其中,根据所述参数信息判断所述用户是否为灰度发布的目标用户,具体包括:获取预设的灰度策略;根据所述灰度策略以及所述参数信息判断所述用户是否为灰度发布的目标用户。
其中,所述灰度策略包括:根据用户的IP地址或账号选择目标用户;或,将用户账号进行数学运算,根据特定运算结果选择目标用户;或,按照用户访问顺序或访问时间选择用户账号访问灰度版本;或,按照用户地理位置分布选择目标用户;或,根据用户访问频度、用户属性选择目标用户。
其中,所述方法还包括:监测所述灰度发布的目标用户,并获取所述灰度发布目标用户的反馈。
其中,所述方法还包括,当所述灰度发布结束且所述灰度发布目标用户无异常反馈时,将所述灰度版本的版本号修改至对应的正式版本号结束灰度发布。
其中,所述方法还包括:根据所述灰度发布目标用户的反馈判断所述灰度版本故障时,将所述灰度版的版本号修改至上一个正式版本对应的版本号。
本申请还公开了一种网站灰度发布装置,位于浏览器一侧执行时,包括如下模块:
第一发送模块,用于发送对网站进行数据访问的用户的参数信息至服务器;
第一接收模块,用于接收所述服务器发送的网站版本号,其中,所述网站版本号是所述服务器根据所述参数信息判断所述用户是否为灰度发布的目标用户从而得到的;
响应模块,用于根据所述网站版本号展示相应版本的网站。
其中,所述用户参数信息具体包括,所述用户的IP地址、用户账号、用户地理位置信息、用户访问频度、用户属性。
其中,所述响应模块具体用于,根据所述网站版本号展示相应的静态网页并通过ajax异步调用所述静态网页对应的数据内容。
本申请还公开了一种网站灰度发布装置,位于浏览器一侧执行时,包括如下模块:
第二接收模块,用于接收对网站进行数据访问的用户的参数信息;
判断模块,用于根据所述参数信息判断所述用户是否为灰度发布的目标用户;
灰度发布模块,若所述判断模块的判断结果为是,则根据预先为所述用户所分配的灰度版本确定所述网站的版本号。
第二发送模块,发送所述网站版本号。
其中,所述判断模块具体用于,获取预设的灰度策略;
根据所述灰度策略以及所述参数信息判断所述用户是否为灰度发布的目标用户。
其中,所述灰度策略包括:根据用户的IP地址或账号选择目标用户;或,将用户账号进行数学运算,根据特定运算结果选择目标用户;或,按照用户访问顺序或访问时间选择用户账号访问灰度版本;或,按照用户地理位置分布选择目标用户;或,根据用户访问频度、用户属性选择目标用户。
所述装置还包括监测模块,所述监测模块用于:监测所述灰度发布的目标用户,并获取所述灰度发布目标用户的反馈。
所述灰度发布模块具体还用于,当所述灰度发布结束且所述灰度发布目标用户无异常反馈时,将所述灰度版本的版本号修改至对应的正式版本号结束灰度发布。
所述灰度发布模块具体还用于,当根据所述灰度发布目标用户的反馈判断所述灰度版本故障时,将所述灰度版的版本号修改至上一个正式版本对应的版本号。与现有技术相比,本申请可以获得包括以下技术效果:
1)在web服务器中嵌入Agent代理服务实现灰度发布,不涉及网站发布环境的物理改造;
2)灰度发布的目标用户和常规用户可以公用同一物理资源,无资源浪费;
3)通过灰度控制web服务器直接修改灰度策略,就能够实现灰度版本与正式版本的平滑无缝过度;
4)网站的前端开发以及后端数据发布分完全分离;
5)web服务器只需发布一次,工作量小,运维简单;
6)理论上被替代的上一个正式版本可以一直存在,避免用户开启上一个正式版本网页又切换不到新版本时可能出现的链接不存在错误,从而进一步提升用户体验。
当然,实施本申请的任一产品必不一定需要同时达到以上所述的所有技术效果。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是本申请实施例一的技术流程图;
图2是本申请实施例二的技术流程图;
图3是本申请实施例三的技术流程图;
图4是本申请实施例四的装置结构示意图;
图5是本申请实施例五的装置结构示意图;
图6是本申请实施例六的实际环境部署图。
具体实施方式
以下将配合附图及实施例来详细说明本申请的实施方式,藉此对本申请如何应用技术手段来解决技术问题并达成技术功效的实现过程能充分理解并据以实施。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/ 输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器 (RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存 (PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
如在说明书及权利要求当中使用了某些词汇来指称特定组件。本领域技术人员应可理解,硬件制造商可能会用不同名词来称呼同一个组件。本说明书及权利要求并不以名称的差异来作为区分组件的方式,而是以组件在功能上的差异来作为区分的准则。如在通篇说明书及权利要求当中所提及的“包含”为一开放式用语,故应解释成“包含但不限定于”。“大致”是指在可接收的误差范围内,本领域技术人员能够在一定误差范围内解决所述技术问题,基本达到所述技术效果。此外,“耦接”一词在此包含任何直接及间接的电性耦接手段。因此,若文中描述一第一装置耦接于一第二装置,则代表所述第一装置可直接电性耦接于所述第二装置,或通过其他装置或耦接手段间接地电性耦接至所述第二装置。说明书后续描述为实施本申请的较佳实施方式,然所述描述乃以说明本申请的一般原则为目的,并非用以限定本申请的范围。本申请的保护范围当视所附权利要求所界定者为准。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。
图1是本申请实施例一的技术流程图,结合图1,本申请一种网站灰度发布方法,位于浏览器一侧执行,包括如下的步骤:
步骤S110:发送对网站进行数据访问的用户的参数信息至服务器;
步骤S120:接收所述服务器发送的网站版本号,其中,所述网站版本号是所述服务器根据所述参数信息判断所述用户是否为灰度发布的目标用户从而得到的;
步骤S130:根据所述网站版本号展示相应版本的网站。
具体的,在步骤S110中,当用户访问网站时,获取用户的参数信息,具体的,所述参数信息包括所述用户的IP地址、用户账号、用户地理位置信息、用户访问频度、用户属性。其中,用户属性进一步可以包括用户上网爱好、用户的年龄性别等等,凡是能对用户进行分类的用户属性都可作为可参考的参数信息。所述用户的参数信息可以是浏览器获取的,也可以是网关获取的,甚至可以是客户端的其他应用程序获取后传给浏览器的,本申请实施例并不限制。
具体的,在步骤S120中,获取用户的参数信息后,浏览器将所述参数信息进一步发送至web服务器,由web服务器来判断当前发起请求的用户是否参与网站的灰度发布。当web服务器判断得到结果后,会向浏览器传送一个代表判断结果的网站版本号。
在步骤S130中,浏览器会接收web服务器的判断结果,即所述网站版本号。所述网站版本号也就是网站对应的JS/CSS版本号。浏览器接收到版本号之后,采用ajax异步数据访问策略调用网站的相应内容。
本实施例中,浏览器一侧通过在用户访问网站时获取用户参数信息并将所述参数信息传送至web服务器,使得web服务器可以根据所述参数信息判断用户应当访问哪一版本的网站,为网站的灰度发布以及灰度策略的执行提供了参数支撑。
图2是本申请实施例二的技术流程图,结合图2,本申请一种网站灰度的发布方法,位于服务器一侧执行,包括如下的步骤:
步骤S210:接收对网站进行数据访问的用户的参数信息;
步骤S220:根据所述参数信息判断所述用户是否为灰度发布的目标用户;
步骤S230:若为是,则根据预先为所述用户所分配的灰度版本确定所述网站的版本号,并发送所述网站版本号。
一般网站通常会有一个web服务器,比较复杂的网站会有单独的应用服务器,web服务器不做复杂业务逻辑,主要向发出请求的浏览器提供文档。
具体的,在步骤S210中,所述参数信息为浏览器在接收到用户发出的数据访问时获取到的。当用户访问网站时,浏览器获取用户的参数信息,具体的,所述参数信息包括所述用户的IP地址、用户账号、用户地理位置信息、用户访问频度、用户属性。其中,用户属性进一步可以包括用户上网爱好、用户的年龄性别等等,凡是能对用户进行分类的用户属性都可作为可参考的参数信息。
具体的,在步骤S220中,获取到发起数据访问的当前用户的参数信息后,根据这些参数信息判断当前用户是否参与了网站的灰度发布。网站在进行灰度发布时,灰度管理员通常会发布灰度策略,所述灰度策略用于告知灰度版本的放量大小以及如何筛选参与灰度发布的目标用户,所述灰度策略通常由灰度控制web服务器发布。
在本申请实施例的技术方案中,中内置一个灰度发布Agent,所述灰度发布Agent与所述灰度控制web服务器进行通信,接收所述灰度web服务器发布的灰度策略,并将所述灰度策略传递至。获取到所述灰度策略后,根据步骤S210中获取到的参数信息判断发出数据访问请求的当前用户是否为灰度发布的目标用户。可选的,具体判断方法如下所述:
预设用户IP地址列表,列表中例举参与灰度发布的用户IP地址或者参与灰度发布的IP段的范围。当获取到发起访问的用户所在的IP地址时,以预设的所述用户IP地址列表进行比对,若用户所在的IP地址在所述用户IP 地址列表中,则判定当前用户为网站灰度发布的目标用户。所述用户IP地址列表可以如下所示:
IP地址 | 访问版本 |
192.168.0.x | 正式版本5.0 |
192.168.0.y | 灰度版本5.1.0 |
192.168.0.z | 灰度版本5.1.1 |
或者所述用户IP地址列表还可以是如下的形式:
IP地址范围 | 访问版本 |
192.168.x.0~192.168.x.125 | 正式版本5.0 |
192.168.y.126~192.168.y.220 | 灰度版本5.1.0 |
192.168.z.221~192.168.z.25 | 灰度版本5.1.1 |
另:预设匹配算法,当用户访问网站时,获用户的账号,并采用所述预设的匹配算法对用户账号进行计算。根据计算所得结果,采取一定的策略选取目标访问用户。例如:可以将账号模除100后得到的取值范围在0-29的用户访问灰度版本,其他用户继续访问上一个正式版本。
另:按照用户访问顺序或者访问时间选择用户访问灰度版本。具体的,可以设置前N个访问用户为灰度发布的目标用户,也可以设置每天某个时间段内的访问用互为灰度发布的目标用户,或者,设置每天某个时间段内对网站发起访问的前N个用户为灰度发布的目标用户。
另:按照用户地理位置分布选择恢复发布的目标用户,具体的,当检测到用户访问所述网站时,获取用户对应的IP地址并根据所述IP地址判断用户所在地理位置,根据用户所在地理位置指定特定地理范围内的用户参与灰度发布。
另:根据用户访问频度、用户属性选择灰度发布的目标用户。对于网站而言,某一用户的访问频度越高,则说明这一用户对网站的需求较多,因此,灰度版本的测试会更有意义。在本实施例一种可行的实施方式中,可以根据用户的访问频度,选择频度较高的用户进行灰度版本发布;或,也可根据用户属性,例如年龄性别等属性信息选择目标用户等。
当然,应当理解,本申请实施例中,上述不同的灰度策略可以单独使用也可以叠加组合进行灰度发布目标用户的选择。例如,可以根所述预设用户 IP地址列表以及用户对网站的访问频度选择灰度发布的目标用户;也应当理解,本申请实施例中,在进行目标用户选择时,可以按照一定的规则选择其中之一或者其中几种策略的叠加方式,此处不再赘述。
具体的,在步骤S230中,若是根据步骤S220判断发起访问的当前用户是灰度发布的目标用户时,查询用户所述的网站灰度版本的版本号,并将版本号传送至浏览器。浏览器接收到版本号之后,采用ajax异步数据访问策略调用网站的相应内容。需要说明的是,本申请实施例中,灰度版本的前端网页和正式版本的前端网页可以位于同一web服务器,也可能单独存放在 CDN或独立的网页web服务器,在发布的时候,需要记录发布的版本号。
优选的,在步骤S230之后,本申请实施例还可包括如下步骤S240~步骤S260。
步骤S240:监测所述灰度发布的目标用户,并获取所述灰度发布目标用户的反馈;当根据所述灰度发布目标用户的反馈判断所述灰度版本故障时,执行步骤S250,当所述灰度发布结束且所述灰度发布目标用户无异常反馈时,执行步骤S260。
步骤S250:将所述灰度版的版本号修改至上一个正式版本对应的版本号。
步骤S260:将所述灰度版本的版本号修改至对应的正式版本号结束灰度发布。在优选步骤中,本申请对灰度发布的过程进行监测,从而保证灰度发布过程的稳定,在初始灰度的时候就可以发现问题、调整并解决问题,以保证灰度版本正常测试。
本申请实施例中,通过在web服务器中嵌入Agent代理服务实现灰度发布,不涉及网站发布环境的物理改造;其次灰度发布的目标用户和常规用户可以公用同一物理资源,无资源浪费;通过灰度控制服务器直接修改灰度策略,就能够实现灰度版本与正式版本的平滑无缝过度;网站的前端开发以及后端数据发布分完全分离;web服务器只需发布一次,工作量小,运维简单;理论上被替代的上一个正式版本可以一直存在,避免用户开启上一个正式版本网页又切换不到新版本时可能出现的链接不存在错误,从而进一步提升用户体验。
图3是本申请实施例三的技术流程图,结合图3,本申请一种网站灰度发布方法,还包括如下可行的实施方式:
步骤S310:应用服务器/web服务器发布网站相应的服务;
步骤S320:网页服务器发布前端网页;
步骤S330:灰度管理员修改灰度发布版本,开始灰度放量;
步骤S340:用户通过浏览器向网站首页发起访问请求;
步骤S350:浏览器获取用户的参数信息并将所述参数信息发送至web 服务器;
步骤S360:web服务器接收用户的所述参数信息,调用内置的灰度发布 Agent,根据所述参数信息判断所述用户是否为灰度发布的目标用户;
若判断为是,则执行步骤S370,若判断为否,执行步骤S380。
步骤S370:根据所述用户所属的灰度版本确定所述网站的版本号,并将所述网站版本号发送至浏览器以使所述浏览器根据接收到的所述网站版本号调用相应的网页内容。
步骤S380:根据用户请求调用相应的服务。
本实施例中,在灰度发布系统的框架结构上,实现了前端网页开发和后端服务器数据提供的彻底分离;与此同时,灰度发布过程不涉及类似硬件部署隔离、负载均衡器修改策略等问题,直接通过在web服务器中嵌入Agent 代理服务实现灰度发布,克服了现有技术中存在的由硬件隔离或资源隔离导致的缺陷。
图4是本申请实施例四的装置结构示意图,结合图4,本申请一种网站灰度发布装置,位于浏览器一侧执行,包括如下的模块:
第一发送模块410,用于发送对网站进行数据访问的用户的参数信息至服务器;
第一接收模块420,用于接收所述服务器发送的网站版本号,其中,所述网站版本号是所述服务器根据所述参数信息判断所述用户是否为灰度发布的目标用户从而得到的响应模块430,用于根据所述网站版本号展示相应版本的网站。
其中,所述用户参数信息,具体包括所述用户的IP地址、用户账号、用户地理位置信息、用户访问频度、用户属性。
其中,所述响应模块430具体用于,根据所述网站版本号展示相应的静态网页并通过ajax异步调用所述静态网页对应的数据内容。
图4对应的装置可以执行图1所示实施例所述方法,其实现原理和技术效果不再赘述。
图5是本申请实施例五的装置结构示意图,结合图5,本申请一种网站灰度发布装置,位于服务器一侧执行,包括如下的模块:
第二接收模块510,用于接收对网站进行数据访问的用户的参数信息;
判断模块520,用于根据所述参数信息判断所述用户是否为灰度发布的目标用户;
灰度发布模块530,若所述判断模块520的判断结果为是,则根据预先为所述用户所分配的灰度版本确定所述网站的版本号;
第二发送模块540,发送所述网站版本号。
其中,所述判断模块520具体用于,获取预设的灰度策略;根据所述灰度策略以及所述参数信息判断所述用户是否为灰度发布的目标用户。
其中,所述灰度策略包括:根据用户的IP地址或账号选择目标用户;或,将用户账号进行数学运算,根据特定运算结果选择目标用户;或,按照用户访问顺序或访问时间选择用户账号访问灰度版本;或,按照用户地理位置分布选择目标用户;或,根据用户访问频度、用户属性选择目标用户。
所述装置还包括监测模块550,所述监测模块用于:监测所述灰度发布的目标用户,并获取所述灰度发布目标用户的反馈。
所述灰度发布模块530具体还用于,当所述灰度发布结束且所述灰度发布目标用户无异常反馈时,将所述灰度版本的版本号修改至对应的正式版本号结束灰度发布。
所述灰度发布模块530具体还用于,当根据所述灰度发布目标用户的反馈判断所述灰度版本故障时,将所述灰度版的版本号修改至上一个正式版本对应的版本号。
图5对应的装置可以执行图2所示实施例所述方法,其实现原理和技术效果不再赘述。
图6是本申请实施例一种网站灰度发布装置的实际环境部署图,结合图 5,在灰度发布的实际部署环境中,包括由灰度管理员操控的灰度控制服务器,正式环境中提供网站各类服务的web服务器以及应用服务器,用于发布前端网页的CDN或独立的网页web服务器以及做负载均衡的设备。
不同于现有技术中灰度环境独立于正式环境的部署方式,本申请技术方案的灰度环境和正式环境部署在相同的web服务器上,充分利用了硬件资源。
本申请实施例中,不涉及到硬件的改造,只需在web服务器内置入 Agent,如图6所示,web服务器通过Agent与灰度控制服务器进行通信,并通过Agent接收灰度策略并实现灰度的发布。另外,不同于现有技术中,将网站的正式版本和灰度版本分别在正式环境的web服务器上发布一遍,又在灰度环境的web服务器发布一遍的繁琐,本申请实施例只需要在正式环境的web服务器上将网站的灰度版本和正式版本发布一遍即可。与此同时,若是将前端网页单独发布到CDN或单独的web服务器上,可以实现前端网页发布以及后端服务发布的完全彻底的分开。考虑到目前互联网开发中前端(js/css/html)和后端服务(提供数据)的开发人员可能属于不同团队,端网页发布以及后端服务发布的完全彻底的分开可以减少发布和联调依赖,提高效率。例如,如果只涉及网页修改,则后端服务不用重新发布。图6对应的设备可以执行图1~图3所示实施例所述方法,其实现原理和技术效果不再赘述。
上述说明示出并描述了本发明的若干优选实施例,但如前所述,应当理解本发明并非局限于本文所披露的形
式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述发明构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。
Claims (18)
1.一种网站灰度发布方法,其特征在于,包括:
发送对网站进行数据访问的用户的参数信息至服务器;
接收所述服务器发送的网站版本号,其中,所述网站版本号是所述服务器根据所述参数信息判断所述用户是否为灰度发布的目标用户从而得到的;
根据所述网站版本号,采用ajax异步数据访问策略调用网站的相应内容,展示相应版本的网站。
2.如权利要求1所述的方法,其特征在于,根据所述网站版本号展示相应版本的网站,具体包括:
根据所述网站版本号展示相应的静态网页并通过ajax异步调用所述静态网页对应的数据内容。
3.如权利要求1所述的方法,其特征在于,所述用户参数信息,具体包括,
获取所述用户的IP地址、用户账号、用户地理位置信息、用户访问频度、用户属性。
4.一种网站灰度发布方法,其特征在于,包括:
接收对网站进行数据访问的用户的参数信息;
根据所述参数信息判断所述用户是否为灰度发布的目标用户;
若为是,则根据预先为所述用户所分配的灰度版本确定所述网站的版本号,并发送所述网站版本号,以使所述网站版本号的接收端根据所述网站版本号,采用ajax异步数据访问策略调用网站的相应内容,展示相应版本的网站。
5.如权利要求4所述的方法,其特征在于,根据所述参数信息判断所述用户是否为灰度发布的目标用户,具体包括:
获取预设的灰度策略;
根据所述灰度策略以及所述参数信息判断所述用户是否为灰度发布的目标用户。
6.如权利要求5所述的方法,其特征在于,所述灰度策略包括:
根据用户的IP地址或账号选择目标用户;或,将用户账号进行数学运算,根据特定运算结果选择目标用户;或,按照用户访问顺序或访问时间选择用户账号访问灰度版本;或,按照用户地理位置分布选择目标用户;或,根据用户访问频度、用户属性选择目标用户。
7.如权利要求4所述的方法,其特征在于,所述方法还包括:
监测所述灰度发布的目标用户,并获取所述灰度发布目标用户的反馈。
8.如权利要求7所述的方法,其特征在于,所述方法还包括,
当所述灰度发布结束且所述灰度发布目标用户无异常反馈时,将所述灰度版本的版本号修改至对应的正式版本号结束灰度发布。
9.如权利要求7所述的方法,其特征在于,所述方法还包括:
当根据所述灰度发布目标用户的反馈判断所述灰度版本故障时,将所述灰度版本 的版本号修改至上一个正式版本对应的版本号。
10.一种网站灰度发布装置,其特征在于,包括如下的模块:
第一发送模块,用于发送对网站进行数据访问的用户的参数信息至服务器;
第一接收模块,用于接收所述服务器发送的网站版本号,其中,所述网站版本号是所述服务器根据所述参数信息判断所述用户是否为灰度发布的目标用户从而得到的;
响应模块,用于根据所述网站版本号,采用ajax异步数据访问策略调用网站的相应内容,展示相应版本的网站。
11.如权利要求10所述的装置,其特征在于,所述响应模块具体用于,
根据所述网站版本号展示相应的静态网页并通过ajax异步调用所述静态网页对应的数据内容。
12.如权利要求10所述的装置,其特征在于,所述用户参数信息,具体包括,
所述用户的IP地址、用户账号、用户地理位置信息、用户访问频度、用户属性。
13.一种网站灰度发布装置,其特征在于,包括如下的模块:
第二接收模块,用于接收对网站进行数据访问的用户的参数信息;
判断模块,用于根据所述参数信息判断所述用户是否为灰度发布的目标用户;
灰度发布模块,若所述判断模块的判断结果为是,则根据预先为所述用户所分配的灰度版本确定所述网站的版本号;
第二发送模块,发送所述网站版本号,以使所述网站版本号的接收端根据所述网站版本号,采用ajax异步数据访问策略调用网站的相应内容,展示相应版本的网站。
14.如权利要求13所述的装置,其特征在于,所述判断模块具体用于,获取预设的灰度策略;
根据所述灰度策略以及所述参数信息判断所述用户是否为灰度发布的目标用户。
15.如权利要求14所述的装置,其特征在于,所述灰度策略包括:
根据用户的IP地址或账号选择目标用户;或,将用户账号进行数学运算,根据特定运算结果选择目标用户;或,按照用户访问顺序或访问时间选择用户账号访问灰度版本;或,按照用户地理位置分布选择目标用户;或,根据用户访问频度、用户属性选择目标用户。
16.如权利要求13所述的装置,其特征在于,所述装置还包括监测模块,所述监测模块用于:
监测所述灰度发布的目标用户,并获取所述灰度发布目标用户的反馈。
17.如权利要求16所述的装置,其特征在于,所述灰度发布模块具体还用于,
当所述灰度发布结束且所述灰度发布目标用户无异常反馈时,将所述灰度版本的版本号修改至对应的正式版本号结束灰度发布。
18.如权利要求16所述的装置,其特征在于,所述灰度发布模块具体还用于,
当根据所述灰度发布目标用户的反馈判断所述灰度版本故障时,将所述灰度版本 的版本号修改至上一个正式版本对应的版本号。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610300858.9A CN107360010B (zh) | 2016-05-09 | 2016-05-09 | 一种网站灰度发布方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610300858.9A CN107360010B (zh) | 2016-05-09 | 2016-05-09 | 一种网站灰度发布方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107360010A CN107360010A (zh) | 2017-11-17 |
CN107360010B true CN107360010B (zh) | 2021-04-16 |
Family
ID=60270773
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610300858.9A Active CN107360010B (zh) | 2016-05-09 | 2016-05-09 | 一种网站灰度发布方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107360010B (zh) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108093096B (zh) * | 2017-12-19 | 2021-06-01 | 五八有限公司 | 服务端的访问链接的升级方法、服务器及存储介质 |
CN108513144A (zh) * | 2018-03-12 | 2018-09-07 | 四川合智聚云科技有限公司 | 一种基于iptv的epg灰度发布方法及其系统 |
CN108536570B (zh) * | 2018-03-28 | 2020-12-25 | 口碑(上海)信息技术有限公司 | 数据直播间灰度压测的方法、装置及系统 |
CN108632085B (zh) * | 2018-04-08 | 2021-05-04 | 深圳乐信软件技术有限公司 | 灰度用户管理方法、装置、平台及存储介质 |
CN109726099B (zh) * | 2018-04-12 | 2024-03-19 | 惠商云服(北京)科技有限公司 | 一种应用灰度发布方法、装置及设备 |
CN110661835B (zh) * | 2018-06-29 | 2023-05-02 | 马上消费金融股份有限公司 | 一种灰度发布方法及其处理方法、节点及系统和存储装置 |
CN109240728A (zh) * | 2018-11-20 | 2019-01-18 | 北京千丁互联科技有限公司 | 一种软件升级方法及装置 |
CN110007921B (zh) * | 2018-12-04 | 2022-07-15 | 创新先进技术有限公司 | 一种代码发布方法及装置 |
CN109814910A (zh) * | 2018-12-14 | 2019-05-28 | 深圳壹账通智能科技有限公司 | 自动化灰度发布方法、装置、计算机系统及存储介质 |
CN109857428A (zh) * | 2018-12-29 | 2019-06-07 | 大唐软件技术股份有限公司 | 用于iom系统的灰度发布方法 |
CN110120971B (zh) * | 2019-04-17 | 2022-12-06 | 北京奇艺世纪科技有限公司 | 一种灰度发布方法、装置及电子设备 |
CN110225094B (zh) * | 2019-05-17 | 2022-02-11 | 平安科技(深圳)有限公司 | 负载均衡应用虚拟ip切换方法、装置、计算机设备及存储介质 |
CN110362974A (zh) * | 2019-05-31 | 2019-10-22 | 杭州恩牛网络技术有限公司 | 服务灰度发布方法、装置、介质及电子设备 |
CN110532008A (zh) * | 2019-08-29 | 2019-12-03 | 深圳前海环融联易信息科技服务有限公司 | 一种产品灰度发布方法、装置、计算机设备及存储介质 |
CN110704483A (zh) * | 2019-09-06 | 2020-01-17 | 平安普惠企业管理有限公司 | 用户路由流程定位方法、设备、存储介质及装置 |
CN110784409B (zh) * | 2019-10-31 | 2022-08-09 | 长沙水羊网络科技有限公司 | 一种基于Spring Cloud的微服务灰度发布方法 |
CN110908688A (zh) * | 2019-11-26 | 2020-03-24 | 中国银行股份有限公司 | 应用程序的灰度发布方法及装置 |
CN113055723A (zh) * | 2019-12-27 | 2021-06-29 | 中兴通讯股份有限公司 | 一种版本调测及升级的方法、装置、设备以及存储介质 |
CN111143746B (zh) * | 2019-12-27 | 2023-10-20 | 支付宝(杭州)信息技术有限公司 | 一种灰度任务的发布方法、装置及设备 |
CN111865683B (zh) * | 2020-07-17 | 2023-07-14 | 北京百度网讯科技有限公司 | 虚拟网关版本灰度发布方法、装置、设备以及存储介质 |
CN112650523B (zh) * | 2020-12-02 | 2023-06-16 | 青岛海尔科技有限公司 | 用于灰度发布的数据分流方法及装置、设备 |
CN113127353A (zh) * | 2021-04-20 | 2021-07-16 | 顶象科技有限公司 | 一种灰度发布方法和装置 |
CN113434188A (zh) * | 2021-06-24 | 2021-09-24 | 未鲲(上海)科技服务有限公司 | 灰度放量方法、装置、计算机设备及存储介质 |
CN115357280A (zh) * | 2022-08-09 | 2022-11-18 | 湖南木屋网络科技有限公司 | 软件版本管理方法、装置、服务器及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2648106A1 (en) * | 2012-04-05 | 2013-10-09 | CoreMedia AG | Method and web content management system for A/B testing or multivariate testing of websites on computers being connected to a web content management system |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7975000B2 (en) * | 2005-01-27 | 2011-07-05 | Fmr Llc | A/B testing of a webpage |
CN103095743A (zh) * | 2011-10-28 | 2013-05-08 | 阿里巴巴集团控股有限公司 | 一种灰度发布的处理方法及系统 |
CN103577321B (zh) * | 2012-08-07 | 2016-01-13 | 阿里巴巴集团控股有限公司 | 一种网站页面的多版本并行测试方法和服务器 |
CN104317914B (zh) * | 2014-10-28 | 2018-07-31 | 小米科技有限责任公司 | 数据获取方法和装置 |
CN104966206A (zh) * | 2015-05-12 | 2015-10-07 | 百度在线网络技术(北京)有限公司 | 对移动应用进行灰度发布的方法、装置和系统 |
-
2016
- 2016-05-09 CN CN201610300858.9A patent/CN107360010B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2648106A1 (en) * | 2012-04-05 | 2013-10-09 | CoreMedia AG | Method and web content management system for A/B testing or multivariate testing of websites on computers being connected to a web content management system |
Non-Patent Citations (2)
Title |
---|
A/B Test Tools of Native Mobile Application;Muhammad Adinata等;《IEEE》;20141231;1-6 * |
A/B测试在软件项目开发中的应用探析;张如云;《电脑开发与应用》;20141231;第27卷(第5期);54-56 * |
Also Published As
Publication number | Publication date |
---|---|
CN107360010A (zh) | 2017-11-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107360010B (zh) | 一种网站灰度发布方法及装置 | |
US10498625B1 (en) | Distributed testing service | |
EP3335375B1 (en) | Method and apparatus for virtualized network function scaling that is initiated by network management and/or element management | |
US9883002B2 (en) | Method and system for accessing website | |
US9647892B2 (en) | Cloud-based service resource provisioning based on network characteristics | |
US7953887B2 (en) | Asynchronous automated routing of user to optimal host | |
KR20180125009A (ko) | 데이터 캐싱 방법 및 장치 | |
CN108667882B (zh) | 基于动态权重调整的负载均衡方法、装置和电子设备 | |
TW201711432A (zh) | 對伺服器進行健康檢查的方法及設備 | |
CN107957837B (zh) | 网页应用程序的快捷方式生成方法、装置和终端设备 | |
JP7331073B2 (ja) | 強化されたオンラインプライバシ | |
CN106302640A (zh) | 数据请求处理方法及装置 | |
CN106156231A (zh) | 一种网站容灾方法、装置及系统 | |
US8972968B1 (en) | Alternate service for applications | |
US9348932B2 (en) | Method and apparatus for redirecting webpage requests to appropriate equivalents | |
US20140344447A1 (en) | Method and apparatus for executing application | |
CN110740464A (zh) | 一种nf服务发现方法及设备 | |
US10963538B2 (en) | Client application for web application execution | |
CN111107118A (zh) | 一种图片访问加速方法、装置、设备、系统及存储介质 | |
CN104639666B (zh) | 域名访问方法及装置 | |
US8996607B1 (en) | Identity-based casting of network addresses | |
US10015077B2 (en) | Forwarding current request based on, at least in part, previous request(s) | |
US12028434B2 (en) | Generating early hints informational responses at an intermediary server | |
CN108810070A (zh) | 一种资源共享方法、装置、智能设备和存储介质 | |
CN110769020B (zh) | 一种资源请求处理方法、装置、设备及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |