CN111324377B - 应用灰度发布方法、系统、设备及存储介质 - Google Patents
应用灰度发布方法、系统、设备及存储介质 Download PDFInfo
- Publication number
- CN111324377B CN111324377B CN202010164829.0A CN202010164829A CN111324377B CN 111324377 B CN111324377 B CN 111324377B CN 202010164829 A CN202010164829 A CN 202010164829A CN 111324377 B CN111324377 B CN 111324377B
- Authority
- CN
- China
- Prior art keywords
- environment
- application
- data
- formal
- version
- 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
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1675—Temporal synchronisation or re-synchronisation of redundant processing components
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2023—Failover techniques
- G06F11/2028—Failover techniques eliminating a faulty processor or activating a spare
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/82—Solving problems relating to consistency
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种应用灰度发布方法、系统、设备及存储介质。通过构建备用环境来实现对灰度环境和正式环境的完全独立运行,在灰度环境需要进行预发布或者正式环境出现故障时,可以通过备用环境来实现对预发布的应用的第一版本继续运行,从而保证了应用在灰度环境进行预发布时不会出现宕机的现象,并且通过备用环境的切换或者切断主从关系来实现对灰度环境的隔离执行,使得灰度环境在执行预发布的应用版本时,不会影响备用环境和正式环境对应用的原始版本的正常运行,从而保证了应用的运行数据的一致性,避免了应用在灰度发布时的宕机现象,大大提高了用户在应用灰度发布时的上线部署时的使用体验。
Description
技术领域
本发明涉及网络技术领域,尤其涉及一种应用灰度发布方法、系统、设备及存储介质。
背景技术
前,互联网已经是成为人们生活中的一部分了,尤其是互联网的购物应用上,而由一个个应用构成的通讯网中,对于应用的上线部署,将会直接影响到了用户对于该部分应用的使用体验。现在的应用部署主要有蓝绿部署、滚动部署、灰度发布/金丝雀发布,而在这些部署模式中,更多是使用灰度发布,灰度发布是指在黑与白之间,能够平滑过渡的一种发布方式。AB test就是一种灰度发布的方式,让一部分用户继续使用A,一部分用户开始使用B,如果用户对B没有什么反对意见,那么将逐步扩大B的使用范围,直到所有用户都使用B。
但是该发布方式,并没有实现环境之间的隔离,使得很容易会存现B的灰度发布与原本生产环境的切割不够,从而影响到原本生产环境的数据,造成脏数据,同时Uat环境与生产环境可能会存在切割过多,导致数据完全不一致,使得在后续的上线部署时验证无法保证正确,可见现有的灰度发布方式常会影响用户对应用的使用体验,对此,亟需提出一种既可以实现数据与生产环境基本一致,且灰度环境确不会影响正式的数据的方案来解决上述问题。
发明内容
本发明的主要目的在于解决现有的灰度发布方式存在应用发布的数据与生产环境的不一致,且灰度环境会影响正式的数据,而降低用户在应用上线部署时使用体验的技术问题。
本发明第一方面提供了一种应用灰度发布方法,所述应用灰度发布方法包括:
构建执行应用的正式环境、灰度环境以及备份环境,其中,所述正式环境用于为用户提供待访问应用的第二版本运行数据,所述灰度环境用于为提供待访问应用的预发布版本运行数据,所述备份环境用于为用户提供待访问应用的第一版本运行数据,所述第一版本运行数据为所述第二版本运行数据的备份版本数据或历史版本数据;
获取用户的应用访问请求,并检测所述灰度环境中是否存在与所述应用访问请求对应的应用的预发布版本运行数据;
若存在,则切断所述备用环境与所述正式环境的主从关联,并启动所述灰度环境执行所述预发布版本运行数据进行应用的发布;
监测所述正式环境中与所述应用访问请求对应的应用的运行数据是否出现故障;
若是,则快速切换至所述备份环境作为所述正式环境,并根据所述预发布版本运行数据对原来的正式环境上对应的应用进行上线部署处理,其中,所述上线部署处理为按照测试环境的测试流程基于所述预发布版本运行数据对应用进行升级操作,并逐步切换用户的使用。
可选的,在本发明第一方面的第一种实现方式中,所述构建执行应用的正式环境、灰度环境和正式环境包括:
通过前台服务和应用服务分别构建灰度环境、正式环境和备用环境的架构;
对每个环境的架构设置独立的配置容器,并采用docker容器部署每个环境;
建立所述正式环境与所述备用环境之间的主从关联,其中,所述主从关联为通过脚本将所述正式环境中产生的数据同步到所述备用环境中。
可选的,在本发明第一方面的第二种实现方式中,所述启动所述灰度环境执行所述预发布版本运行数据进行应用的发布包括:
通过控制所述灰度环境对应的配置容器,获取应用发布的配置文件,其中所述配置文件包括预发布版本运行数据;
提取所述配置文件中的预发布版本运行数据,并采用GIT方式提交至服务器上,并通过所述服务器将所述预发布版本运行数据以镜像的形式发布。
可选的,在本发明第一方面的第三种实现方式中,所述根据所述预发布版本运行数据对原来的正式环境上对应的应用进行上线部署处理包括:
获取用户发送的应用访问请求,并解析所述应用访问请求中请求访问的目标应用;
根据所述目标应用,从原来的正式环境中截取至少两个正在访问所述目标应用的用户切换至所述灰度环境中进行访问,得到访问数据;
根据所述访问数据和所述预发布版本运行数据,修改原来的正式环境中的配置容器的配置文件;
执行修改后的配置文件对原来的正式环境中的目标应用进行上线部署处理。
可选的,在本发明第一方面的第四种实现方式中,所述根据所述预发布版本运行数据对原来的正式环境上对应的应用进行上线部署处理,还包括:
增设用于存储所述至少两个用户访问所述灰度环境上的目标应用时所产生的访问数据的数据缓存节点。
可选的,在本发明第一方面的第五种实现方式中,所述根据所述目标应用,从原来的正式环境中截取至少两个正在访问所述目标应用的用户切换至所述灰度环境中进行访问,得到访问数据包括:
根据所述目标应用,选择所述应用访问请求对应的通信协议的访问用户进行访问环境的切换;
在切换后,判断所述灰度环境中的预发布版本运行数据的运行是否出现故障;
若是,则生成访问结果存储于所述缓存节点中,并通知研发人员对所述预发布版本运行数据进行修改后再发布;
若否,则将访问所产生的应用运行数据、用户数据和访问结果存储于所述缓存节点中。
可选的,在本发明第一方面的第六种实现方式中,在所述执行修改后的配置文件对原来的正式环境中的目标应用进行上线部署处理之后,还包括:
将所述正式环境切换回原来的正式环境,并执行对所述目标应用进行访问;
判断所述目标应用的运行数据是否出现故障;
若是,则从所述备份环境中所述第一版本运行数据对所述目标应用进行退回处理,并通过研发人员对所述预发布版本运行数据进行修改后再发布。
本发明第二方面提供了一种应用灰度发布系统,所述应用灰度发布系统包括:
构建模块,用于构建执行应用的正式环境、灰度环境以及备份环境,其中,所述正式环境用于为用户提供待访问应用的第二版本运行数据,所述灰度环境用于为提供待访问应用的预发布版本运行数据,所述备份环境用于为用户提供待访问应用的第一版本运行数据,所述第一版本运行数据为所述第二版本运行数据的备份版本数据或历史版本数据;
检测模块,用于获取用户的应用访问请求,并检测所述灰度环境中是否存在与所述应用访问请求对应的应用的预发布版本运行数据;
切换发布模块,用于在检测存在预发布版本运行数据时,切断所述备用环境与所述正式环境的主从关联,并启动所述灰度环境执行所述预发布版本运行数据进行应用的发布;
监控模块,用于监测所述正式环境中与所述应用访问请求对应的应用的运行数据是否出现故障;
部署模块,用于在检测出现故障时,快速切换至所述备份环境作为所述正式环境,并根据所述预发布版本运行数据对原来的正式环境上对应的应用进行上线部署处理,其中,所述上线部署处理为按照测试环境的测试流程基于所述预发布版本运行数据对应用进行升级操作,并逐步切换用户的使用。
可选的,在本发明第二方面的第一种实现方式中,所述构建模块包括搭建单元、容器设置单元和主从关联单元,其中:
所述搭建单元用于通过前台服务和应用服务分别搭建灰度环境、正式环境和备用环境的架构;
所述容器设置单元用于对每个环境的架构设置独立的配置容器,并采用 docker容器部署每个环境;
所述主从关联单元用于建立所述正式环境与所述备用环境之间的主从关联,其中,所述主从关联为通过脚本将所述正式环境中产生的数据同步到所述备用环境中。
可选的,在本发明第二方面的第二种实现方式中,所述切换发布模块包括获取单元和发布单元,其中:
所述获取单元用于通过控制所述灰度环境对应的配置容器,获取应用发布的配置文件,其中所述配置文件包括预发布版本运行数据;
所述发布单元用于提取所述配置文件中的预发布版本运行数据,并采用 GIT方式提交至服务器上,并通过所述服务器将所述预发布版本运行数据以镜像的形式发布。
可选的,在本发明第二方面的第三种实现方式中,所述部署模块包括解析单元、截取单元、修改单元和上线部署单元,其中:
所述解析单元用于获取用户发送的应用访问请求,并解析所述应用访问请求中请求访问的目标应用;
所述截取单元用于根据所述目标应用,从原来的正式环境中截取至少两个正在访问所述目标应用的用户切换至所述灰度环境中进行访问,得到访问数据;
所述修改单元用于根据所述访问数据和所述预发布版本运行数据,修改原来的正式环境中的配置容器的配置文件;
所述上线部署单元用于执行修改后的配置文件对原来的正式环境中的目标应用进行上线部署处理。
可选的,在本发明第二方面的第四种实现方式中,所述部署模块还包括缓存单元,其用于增设用于存储所述至少两个用户访问所述灰度环境上的目标应用时所产生的访问数据的数据缓存节点。
可选的,在本发明第二方面的第五种实现方式中,所述截取单元具体用于:
根据所述目标应用,选择所述应用访问请求对应的通信协议的访问用户进行访问环境的切换;
在切换后,判断所述灰度环境中的预发布版本运行数据的运行是否出现故障;
若是,则生成访问结果存储于所述缓存节点中,并通知研发人员对所述预发布版本运行数据进行修改后再发布;
若否,则将访问所产生的应用运行数据、用户数据和访问结果存储于所述缓存节点中。
可选的,在本发明第二方面的第六种实现方式中,所述截取单元还用于:
将所述正式环境切换回原来的正式环境,并执行对所述目标应用进行访问;
判断所述目标应用的运行数据是否出现故障;
若是,则从所述备份环境中所述第一版本运行数据对所述目标应用进行退回处理,并通过研发人员对所述预发布版本运行数据进行修改后再发布。
本发明第三方面提供了一种应用灰度发布设备,包括:存储器和至少一个处理器,所述存储器中存储有指令,所述存储器和所述至少一个处理器通过线路互连;所述至少一个处理器调用所述存储器中的所述指令,以使得所述应用灰度发布设备执行上述的应用灰度发布方法。
本发明的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,当其在计算机上处理器运行时,使得计算机执行上述的应用灰度发布方法。
本发明提供的技术方案中,通过构建备用环境来实现对灰度环境和正式环境的完全独立运行,在灰度环境需要进行预发布或者正式环境出现故障时,可以通过备用环境来实现对预发布的应用的第一版本继续运行,从而保证了应用在灰度环境进行预发布时不会出现宕机的现象,并且通过备用环境的切换或者切断主从关系来实现对灰度环境的隔离执行,使得灰度环境在执行预发布的应用版本时,不会影响备用环境和正式环境对应用的原始版本的正常运行,从而保证了应用的运行数据的一致性,避免了应用在灰度发布时的宕机现象,大大提高了用户在应用灰度发布时的上线部署时的使用体验。
附图说明
图1为本发明实施例中应用灰度发布方法的第一个实施例示意图;
图2为本发明实施例中应用灰度发布方法的第二个实施例示意图;
图3为本发明实施例中应用灰度发布方法的第三个实施例示意图;
图4为本发明实施例中应用灰度发布系统的第一个实施例示意图;
图5为本发明实施例中应用灰度发布系统的第二个实施例示意图;
图6为本发明应用灰度发布设备一实施例的结构示意图。
具体实施方式
本发明实施例提供了一种应用灰度发布方法、装置、设备及存储介质,其中,该方法通过构建备用环境来实现对灰度环境和正式环境的完全独立运行,在灰度环境需要进行预发布或者正式环境出现故障时,可以通过备用环境来实现对预发布的应用的第一版本继续运行,从而保证了应用在灰度环境进行预发布时不会出现宕机的现象,并且通过备用环境的切换或者切断主从关系来实现对灰度环境的隔离执行,使得灰度环境在执行预发布的应用版本时,不会影响备用环境和正式环境对应用的原始版本的正常运行,从而保证了应用的运行数据的一致性,避免了应用在灰度发布时的宕机现象,大大提高了用户在应用灰度发布时的上线部署时的使用体验。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为便于理解,下面对本发明实施例的具体流程进行描述,请参阅图1,其为本发明软件灰度发布方法的流程图。根据不同的需求,该流程图中步骤的顺序可以改变,某些步骤可以省略。
本发明的至少一个实施例中,所述应用灰度发布方法应用于至少一个终端设备与服务器构成的应用灰度发布系统中。所述终端设备和所述服务器之间根据预设协议进行数据传输。优选地,所述预设协议包括,但不限于以下任意一种:HTTP协议(HyperTextTransferProtocol,超文本传输协议)、HTTPS 协议(Hyper Text Transfer Protocol overSecure Socket Layer,以安全为目标的 HTTP协议)等。
本发明的至少一个实施例中,所述服务器可以是单一的服务器,也可以为由几个功能服务器共同组成的服务器群。所述终端设备可以是任意具有网络连接功能的终端,例如,所述终端设备可以为个人计算机、平板电脑、智能手机、个人数字助理(PersonalDigitalAssistant,PDA)、游戏机、交互式网络电视(Internet Protocol Television,IPTV)、智能式穿戴式设备、导航装置等等的可移动设备,或者台式电脑、数字TV等等固定设备。
本发明的至少一个实施例中,所述应用灰度发布系统根据用户发出访问请求通过主负载均衡架构在其中一个应用环境下访问需求应用。所述负载均衡架构根据所述用户的特征信息为所述终端设备分配一个前台服务器(Web Server),以使得所述终端设备通过访问被分配的前台服务器访问与其对应的所述应用服务器(App Server)上的应用内容。所述主负载均衡架构由 F5-NGINX均衡器以及Nginx均衡器构成。所述应用灰度发布系统还可以包括数据库。所述数据库内存储有软件程序执行代码等数据信息。基于上述所说明的系统结构,提出了一种应用灰度发布方法,该方法具体包括以下步骤:
101、构建执行应用的正式环境、灰度环境以及备份环境;
可以理解的是,所述正式环境与备用环境之间存在主从关系,备用环境定时或者实时从正式环境中同步应用的运行数据,在应用的正常线上运行或者是预发布的上线部署时,器正式环境作为主环境执行应用,若主环境出现故障后,切换至备用环境作为正式环境来执行应用,当需要对应用进行灰度的预发布时,会切换正式环境与备用环境之间的主从关系,也即是说所述正式环境(即是生产环境)用于为用户提供待访问应用的第二版本运行数据,所述灰度环境用于为提供待访问应用的预发布版本运行数据,所述备份环境用于为用户提供待访问应用的第一版本运行数据,所述第一版本运行数据为所述第二版本运行数据的备份版本数据或历史版本数据。
在该步骤中,对于上述三个环境的构建具体可以是采用如下构建方式:
通过前台服务和应用服务分别搭建灰度环境、正式环境和备用环境的架构;
对每个环境的架构设置独立的配置容器,并采用docker容器部署每个环境;
建立所述正式环境与所述备用环境之间的主从关联,其中,所述主从关联为通过脚本将所述正式环境中产生的数据同步到所述备用环境中。
在实际应用中,其构建服务器架构的环境具体为:
所述正式环境包括主前台服务器(Web ServerA)以及主应用服务器(AppServerA)。所述灰度环境为根据用户的访问请求访问预发布版本的应用。所述灰度环境包括灰度前台服务器(Web ServerB)以及灰度应用服务器(App Server B)。所述备份环境为根据用户的访问请求访问前一版本的应用数据包。所述备份环境包括备份前台服务器(WebServer C)以及备份应用服务器(App Server C)。所述正式环境、所述灰度环境以及所述备份环境中分别用于执行不同版本的应用。例如,所述正式环境内的应用版本为1.1,所述灰度环境内的应用版本为1.2,所述备份环境内的应用版本为1.0或1.1。
102、获取用户的应用访问请求,并检测所述灰度环境中是否存在与所述应用访问请求对应的应用的预发布版本运行数据;
在该步骤中,在获取到用户发送的应用访问请求后,通过对该请求进行解析处理,得到请求中要求访问的目标应用,然后根据所述目标应用的信息检测灰度环境中的应用数据,而对于需要进行发布的应用,其会预先将开发好的应用的运行数据包加载到灰度环境中;在接收到应用访问请求时,则发起对其请求访问的应用进行检索,检索在灰度环境中是否存在这样的应用的新的版本数据,若存在,则继续执行下一步,若不存在,则根据应用访问请求,从正式环境中选择对应的应用进行访问运行。
103、若存在,则切断所述备用环境与所述正式环境的主从关联,并启动所述灰度环境执行所述预发布版本运行数据进行应用的发布;
在本实施例中,这里切断主从关联主要是切断备用环境与正式环境之间的通讯连接,以实现切断对正式环境的应用的运行数据的备份,由于需要启动应用的灰度发布,在发布的过程中,有可能会导致正式环境中的应用的运行出错,所以通过切断以保证备份环境中的应用的运行数据的不故障,而备份环境中的运行数据除了包括用户访问时的数据之外,还包括应用的版本数据和程序数据包。
在切断主从备份关联的同时,启动灰度环境进行灰度的预发布操作,以实现对应用的正常上线部署。
在实际应用中,灰度环境在对应用进行预发布的过程中具体可以通过配置的单独容器来对预发布的应用的运行数据进行部署,例如采用docker容器化部署,灰度与正式,两个独立的容器,配置文件也不同,数据由脚本从正式同步到灰度环境。发布灰度后,通过vip地址,通知小部分人员验证,验证完成后,发布上线。
104、监测所述正式环境中与所述应用访问请求对应的应用的运行数据是否出现故障;
在该步骤中,对于检测故障可以理解为是用户访问不了,或者是访问服务器找不到链接接口,亦或者是应用运行出错等等,当出现这种情况时,则认为是正式环境中的应用的运行数据故障。
105、若是,则快速切换至所述备份环境作为所述正式环境,并根据所述预发布版本运行数据对原来的正式环境上对应的应用进行上线部署处理。
在该步骤中,所述上线部署处理为按照测试环境的测试流程基于所述预发布版本运行数据对应用进行升级操作,并逐步切换用户的使用。
在本实施例中,对于切换之后的正式环境,其只负责执行原有用户的访问,该切换指的是将原来的正式环境中的所有访问数据接口全部转移到备用环境中执行,例如,环境1是当前主环境,环境2是备用环境,而当在步骤 104中检测到故障时,将环境2转为主环境,环境1停止使用,在转换主环境的同时将原来在环境1中的访问用户的数据全部转接到环境2中访问,由于环境2中备份有环境1的正确数据,所以能保证环境切换的同时数据的正确访问。
在切换环境之后,根据预发布版本运行数据对环境1进行上线部署,而环境2保持正常访问运行,在对环境1的上线部署的同时,会根据灰度发布的进度,适当的从环境2中转移用户的访问,当然在转移环境2中的用户的访问之前,还包括:启动测试环境对灰度发布过程中的环境1的数据进行访问的测试,当检测到测试的运行数据没有故障后,从环境2中切换用户。
在实际应用中,除了上述故障状态下的环境切换上线部署之外,当检测到正式环境没有故障时,其上线部署流程是按照现有的灰度发布进行操作,一旦在灰度发布的过程中,检测到正式环境在上线部署流程中,出现了故障,则将正式环境中的所有用户的访问切换至备份环境中继续执行,并停止正式环境的执行,在此同时,继续执行灰度发布对正式环境进行整体的部署配置,并启动测试环境对灰度环境执行的灰度发布进行测试,当测试通过后,将用户访问逐步冲备用环境中切换回到正式环境中。这样避免了现有技术中只有正式环境和灰度环境的灰度发布,会出现宕机的问题,提高了用户的访问体验。
在实际应用中,其对应用的预发布实质上是对正式环境中的应用进行运行数据的更新和应用版本的升级操作,因此,所述根据所述预发布版本运行数据更新所述正式环境、所述灰度环境以及所述备份环境中的应用的步骤进一步包括:
判断在所述灰度环境下所述运行数据是否达到指定目标;
在所述灰度环境下所述运行数据未达到所述指定目标时,则认为所述灰度环境下对应的应用的运行数据运行不稳定,产生提示信息,以提示系统人员对所述灰度环境下对应的应用的运行数据的代码;
在所述灰度环境下所述运行数据达到所述指定目标时,则认为所述灰度环境下对应的应用版本运行稳定,将所述备份应用环境下的应用的运行数据升级为所述正式环境下的应用的运行数据,并将所述正式环境下的应用的运行数据升级为所述灰度环境下的应用的运行数据。
进一步的,所述指定目标可以为在所述运行数据的故障比例为75%。举例来讲,在所述灰度环境下应用的运行数据为1.2且所述运行数据达到指定目标时,将所述备份环境下的应用的运行数据1.0升级为所述正式环境下的应用的运行数据1.1,并将所述正式环境下的应用的运行数据1.1升级为所述灰度环境下的应用的运行数据1.2。
本发明实施例提供的技术方案中,通过构建执行应用的正式环境、灰度环境以及备份环境,获取用户的应用访问请求,并检测所述灰度环境中是否存在与所述应用访问请求对应的应用的预发布版本运行数据,若存在,则切断所述备用环境与所述正式环境的主从关联,并启动所述灰度环境执行所述预发布版本运行数据进行应用的发布,并且在发布的过程中,检测正式环境中存在故障时,将备用环境作为正式环境实现应用的数据运行和访问;从而保证了应用在灰度环境进行预发布时不会出现宕机的现象,并且通过备用环境的切换或者切断主从关系来实现对灰度环境的隔离执行,使得灰度环境在执行预发布的应用版本时,不会影响备用环境和正式环境对应用的原始版本的正常运行,也进一步保证了应用的运行数据的一致性,与现有技术相比较,本实施例中的应用灰度发布方法将灰度环境、正式环境以及备份环境区分开来,可更好的实现预发布和快速回滚,工作量较少,且减少人工干预。
请参阅图2,以服务器作为执行主体进行详细说明,本发明实施例中应用灰度发布方法的另一个实施例包括:
201、通过前台服务和应用服务分别搭建灰度环境、正式环境和备用环境的架构;
202、对每个环境的架构设置独立的配置容器,并采用docker容器部署每个环境;
203、建立所述正式环境与所述备用环境之间的主从关联,其中,所述主从关联为通过脚本将所述正式环境中产生的数据同步到所述备用环境中。
在本实施例中,对于备用环境、正式环境和灰度环境构建的过程中,器正式环境和灰度环境可以直接使用现有的软件灰度发布方案来进行发布的灰度环境和正式环境的构建,在创建灰度环境和正式环境之后,从两个环境中分割出服务内存组成备用环境,并以所述正式环境为主环境执行已进行上线部署的应用的数据,所述备用环境为从环境执行待进行灰度发布的应用的部署配置数据,并在需要进行应用预发布之前,启动所述备用环境获取所述生产环境的所有数据进行备份存储,并提供切断备用环境和正式环境的功能,在监控到正式环境在执行应用的数据出现故障的同时,切断备用环境对正式环境的备份流程。
204、在检测到存在执行预发布应用的访问请求时,切断所述备用环境与所述正式环境的主从关联;
在该步骤中,对于主从关系的切换,这里优选选择是通过检测对预发布的访问请求来实现,当然除此之外,还可以是设置为实时检测灰度环境中是否存在预发布的应用的运行数据,若从备用环境中选择与预发布的应用的备份接口进行切断,也即是说,这里设置的备用环境与正式环境之间的备份关系,具体是根据不同的应用设置不同的备份接口,该备份接口可以是单独的物理接口,也可以是统一的物理接口,采用不同的通信协议来实现对不同应用的区分;进一步的,还可以是采用物理接口和通信协议相同,而在区分不同的应用备份时,可以根据唯一标识符的方式来区分通信关系,例如,在通信协议中设置通信时间段,并将时间段与应用名称建立对应关系,而在检测到需要切换主从关联时,根据访问请求中请求访问的应用的名称,然后查询对应关系表,从而确定对应的时间段,并将该时间段中的通信停止,或者是将该时间段上的通信资源分配给下一个时间段和/或上一个时间段的应用备份进行使用。
205、通过控制所述灰度环境对应的配置容器,获取应用发布的配置文件,其中所述配置文件包括预发布版本运行数据;
206、提取所述配置文件中的预发布版本运行数据,并采用GIT方式提交至服务器上,并通过所述服务器将所述预发布版本运行数据以镜像的形式发布;
在本实施例中,对于采用GIT方式提交预发布的运行数据可以理解为是对运行数据进行自动部署,这里的自动部署指的是对运行数据的代码进行标签化,通过标签来实现对运行数据进行阶段化部署,并通过容器进行逐一步骤的部署执行,这样的实现方式,逼近减少了人工的参与,还降低成本,提高生产力,高可用,更可靠,性能优化。进一步的,在自动部署的同时,还包括将自动部署后的运行数据转换为镜像数据,镜像数据可以被现有的不同服务器来直接调用复制克隆来实现对应用直替换,从而便于上线的部署。
207、监测所述正式环境中与所述应用访问请求对应的应用的运行数据是否出现故障;
该步骤中的故障检测是与灰度环境的预发布程序同步执行的,即是说,灰度环境独自对于预发布版本运行数据的发布流程,而该流程实质上是应用的上线测试流程,而测试的过程中,正式环境的原来的应用运行数据,继续保持提供用户的访问流程,在灰度环境测试通过后,启动访问切换程序,将正式环境中的用户逐步切换至灰度环境的访问,在全部切换完成后,可以选择将灰度环境直接作为正式环境使用,当然也可以是将切换运行后产生的数据以及应用的运行数据,全部迁移会正式环境中执行;进一步的,这里的数据迁移,具体是在切换访问用户时,会通过设置缓存节点和数据库,通过缓存节点和数据库来缓存访问灰度环境中的应用产生的数据,而迁移时,直接将缓存节点和数据库中的数据镜像到正式环境中的对应存储中即可。
208、若是,快速切换至所述备份环境作为所述正式环境;
209、获取用户发送的应用访问请求,并解析所述应用访问请求中请求访问的目标应用;
210、根据所述目标应用,从原来的正式环境中截取至少两个正在访问所述目标应用的用户切换至所述灰度环境中进行访问,得到访问数据;
211、根据所述访问数据和所述预发布版本运行数据,修改原来的正式环境中的配置容器的配置文件;
212、执行修改后的配置文件对原来的正式环境中的目标应用进行上线部署处理。
在本实施例中,在进行线上部署的过程中,具体包括以下步骤:
将灰度环境中预发布完成的配置文件(在实际应用中会以镜像数据的形式存在),进行该配置文件对原来的正式环境(在实际情况中,为了区分环境会将原来的正式环境设置为备份环境)中的容器进行修改,从而得到新的配置文件,然后进行该容器来对环境上的应用的运行数据进行重新的部署,在部署完成后,可以选择启动测试环境对部署后的应用进行测试,在测试通过后启动应用在线上的运行,也可以选择直接启动线上运行。
在本实施例中,在部署的过程中,还包括增设用于存储所述至少两个用户访问所述灰度环境上的目标应用时所产生的访问数据的数据缓存节点。
进一步的,所述根据所述目标应用,从原来的正式环境中截取至少两个正在访问所述目标应用的用户切换至所述灰度环境中进行访问,得到访问数据包括:
根据所述目标应用,选择所述应用访问请求对应的通信协议的访问用户进行访问环境的切换;
在切换后,判断所述灰度环境中的预发布版本运行数据的运行是否出现故障;
若是,则生成访问结果存储于所述缓存节点中,并通知研发人员对所述预发布版本运行数据进行修改后再发布;
若否,则将访问所产生的应用运行数据、用户数据和访问结果存储于所述缓存节点中。
在本实施例中,在所述执行修改后的配置文件对原来的正式环境中的目标应用进行上线部署处理之后,还包括:
将所述正式环境切换回原来的正式环境,并执行对所述目标应用进行访问;
判断所述目标应用的运行数据是否出现故障;
若是,则从所述备份环境中所述第一版本运行数据对所述目标应用进行退回处理,并通过研发人员对所述预发布版本运行数据进行修改后再发布。
基于上述方法的实施,保证了应用在灰度环境进行预发布时不会出现宕机的现象,并且通过备用环境的切换或者切断主从关系来实现对灰度环境的隔离执行,使得灰度环境在执行预发布的应用版本时,不会影响备用环境和正式环境对应用的原始版本的正常运行,从而保证了应用的运行数据的一致性,避免了应用在灰度发布时的宕机现象,大大提高了用户在应用灰度发布时的上线部署时的使用体验。
在本实施例中,对上述的应用灰度发布方法其实现可以通过修改现有的灰度发布系统来实现,在实际应用中,灰度发布的核心是灰度环境与正式环境是完全独立的,其两者独立这涉及的节点主要包括数据库,缓存,服务器,而实现两者的独立,本申请中,通过利用灰度发布系统中冗余节点设置成备用环境,通过该备用环境来调整正式环境与灰度环境之间的运行冲突,使正式环境的系统稳定性提升。
本发明提供应用灰度发布方法,包括以下步骤:
301、基于正式环境和灰度环境的配置文件,构建备用环境;
在实际应用中,在构建备用环境的过程中,除了设置环境也运行架构之外,还需要设置备用环境与正式环境之间的主从关系,即是数据的备份关联,具体的备用环境中的所有数据与正式环境中的应用线上运行产生的数据一致,数据都由主从获得(主从关系,正式环境为主,备用环境为从,所有主的数据都会同步到从,从而保证数据的一致性)。当正式环境发生问题时,切换的环境,以保证原有的应用访问的稳定性。
302、获取应用的预发布部署文件;
在实际应用中,其预发布部署文件可以理解为是应用的开发文件,基于该开发文件可以提供应用上线的部署文档。
303、将所有正式环境和备用环境的数据停止主从,切断关联;
在该步骤中,对于切断关联,具体是根据主从的建立方式来实现:
根据不同的应用设置不同的备份接口,该备份接口可以是单独的物理接口,也可以是统一的物理接口,采用不同的通信协议来实现对不同应用的区分;进一步的,还可以是采用物理接口和通信协议相同,而在区分不同的应用备份时,可以根据唯一标识符的方式来区分通信关系,使灰度使用不影响正式环境。
例子:本次上线页面下单功能,及统计报表展示,和脚本处理统计数据。
所有数据有(1)mysql数据库,(2)redis缓存。切断主从关联。
304、根据预发布部署文件部署灰度环境;
在实际应用中,在部署灰度环境时,具体是预发布部署文件的单独控制来实现,例如,设置grey为灰度环境的配置,prod为正式环境的配置,通过从预发布部署文件中获取到相对应的应用的线上运行数据,并进行标签化部署设置,得到运行数据的代码,在进行代码部署时,自动覆盖灰度环境中原有的运行数据,当然这里可以是直接对正式环境的覆盖部署,但是在对正式环境的覆盖部署时,需要将正式环境中的访问切换至备用环境中执行(目前采用应用的部署方式是docker容器部署,采用git提交,从配置中心提取由预发布部署文件生成的配置文件,覆盖提交的文件,以镜像的形式发布),保证配置为灰度环境,避免开发疏忽,提交错配置文件。
例子:本次上线,修改grey的配置,增加一个redis缓存节点,重新提交镜像,部署。
305、小部分用户使用灰度,验证本次上线,是否存在问题;
306、若有,则提出开发修改;
在该步骤执行完成后重新到步骤304继续进行预发布的操作步骤。
307、若否、则配置文件,prod配置修改,部署代码,正式上线。
在实际应用中,在灰度环境上线完成后,钉钉会自动发布一条灰度发布成功信息,通知关联的开发及业务等人员。按照测试环境的测试流程,采用自动化测试及人工测试,并行验证是否有问题。如验证,数据的准确性,功能的完善性。下单的整个流程,统计报表的展示情况等。
在步骤306中,在提出重新开发修改的同时,还可以是提出先回退版本,然后开发修改,重新到步骤304、在步骤305通过后,也即是修改后的版本可以进行上线了,钉钉会自动发布一条正式发布成功信息,通知关联的开发及业务等人员。
在实际应用中,将备用环境的数据回滚,开启主从,仅回滚脏数据,已经上线的功能不回滚。发布完成。
通过以上步骤,去除主从关联,以及回滚,开启主从,由程序控制执行。其读取配置信息,自动将主从剥离,删除,回滚,关联添加,这样不会影响备用环境和正式环境对应用的原始版本的正常运行,从而保证了应用的运行数据的一致性,避免了应用在灰度发布时的宕机现象,大大提高了用户在应用灰度发布时的上线部署时的使用体验。
上面对本发明实施例中应用灰度发布方法进行了描述,下面对本发明实施例中应用灰度发布系统进行描述,请参阅图4,本发明实施例中应用灰度发布系统一个实施例包括:
构建模块41,用于构建执行应用的正式环境、灰度环境以及备份环境,其中,所述正式环境用于为用户提供待访问应用的第二版本运行数据,所述灰度环境用于为提供待访问应用的预发布版本运行数据,所述备份环境用于为用户提供待访问应用的第一版本运行数据,所述第一版本运行数据为所述第二版本运行数据的备份版本数据或历史版本数据;
检测模块42,用于获取用户的应用访问请求,并检测所述灰度环境中是否存在与所述应用访问请求对应的应用的预发布版本运行数据;
切换发布模块43,用于在检测存在预发布版本运行数据时,切断所述备用环境与所述正式环境的主从关联,并启动所述灰度环境执行所述预发布版本运行数据进行应用的发布;
监控模块44,用于监测所述正式环境中与所述应用访问请求对应的应用的运行数据是否出现故障;
部署模块45,用于在检测出现故障时,快速切换至所述备份环境作为所述正式环境,并根据所述预发布版本运行数据对原来的正式环境上对应的应用进行上线部署处理,其中,所述上线部署处理为按照测试环境的测试流程基于所述预发布版本运行数据对应用进行升级操作,并逐步切换用户的使用。
本发明实施例提供的技术方案中,通过构建执行应用的正式环境、灰度环境以及备份环境,获取用户的应用访问请求,并检测所述灰度环境中是否存在与所述应用访问请求对应的应用的预发布版本运行数据,若存在,则切断所述备用环境与所述正式环境的主从关联,并启动所述灰度环境执行所述预发布版本运行数据进行应用的发布,并且在发布的过程中,检测正式环境中存在故障时,将备用环境作为正式环境实现应用的数据运行和访问;从而保证了应用在灰度环境进行预发布时不会出现宕机的现象,并且通过备用环境的切换或者切断主从关系来实现对灰度环境的隔离执行,与现有技术相比较,本实施例中的应用灰度发布方法将灰度环境、正式环境以及备份环境区分开来,可更好的实现预发布和快速回滚,工作量较少,且减少人工干预。
请参阅图5,本发明实施例中应用灰度发布系统一个实施例包括:
构建模块41,用于构建执行应用的正式环境、灰度环境以及备份环境,其中,所述正式环境用于为用户提供待访问应用的第二版本运行数据,所述灰度环境用于为提供待访问应用的预发布版本运行数据,所述备份环境用于为用户提供待访问应用的第一版本运行数据,所述第一版本运行数据为所述第二版本运行数据的备份版本数据或历史版本数据;
检测模块42,用于获取用户的应用访问请求,并检测所述灰度环境中是否存在与所述应用访问请求对应的应用的预发布版本运行数据;
切换发布模块43,用于在检测存在预发布版本运行数据时,切断所述备用环境与所述正式环境的主从关联,并启动所述灰度环境执行所述预发布版本运行数据进行应用的发布;
监控模块44,用于监测所述正式环境中与所述应用访问请求对应的应用的运行数据是否出现故障;
部署模块45,用于在检测出现故障时,快速切换至所述备份环境作为所述正式环境,并根据所述预发布版本运行数据对原来的正式环境上对应的应用进行上线部署处理,其中,所述上线部署处理为按照测试环境的测试流程基于所述预发布版本运行数据对应用进行升级操作,并逐步切换用户的使用。
可选的,所述构建模块41包括搭建单元411、容器设置单元412和主从关联单元413,其中:
所述搭建单元411用于通过前台服务和应用服务分别搭建灰度环境、正式环境和备用环境的架构;
所述容器设置单元412用于对每个环境的架构设置独立的配置容器,并采用docker容器部署每个环境;
所述主从关联单元413用于建立所述正式环境与所述备用环境之间的主从关联,其中,所述主从关联为通过脚本将所述正式环境中产生的数据同步到所述备用环境中。
可选的,所述切换发布模块43包括获取单元431和发布单元432,其中:
所述获取单元431用于通过控制所述灰度环境对应的配置容器,获取应用发布的配置文件,其中所述配置文件包括预发布版本运行数据;
所述发布单元432用于提取所述配置文件中的预发布版本运行数据,并采用GIT方式提交至服务器上,并通过所述服务器将所述预发布版本运行数据以镜像的形式发布。
可选的,所述部署模块45包括解析单元451、截取单元452、修改单元 453和上线部署单元454,其中:
所述解析单元451用于获取用户发送的应用访问请求,并解析所述应用访问请求中请求访问的目标应用;
所述截取单元452用于根据所述目标应用,从原来的正式环境中截取至少两个正在访问所述目标应用的用户切换至所述灰度环境中进行访问,得到访问数据;
所述修改单元453用于根据所述访问数据和所述预发布版本运行数据,修改原来的正式环境中的配置容器的配置文件;
所述上线部署单元454用于执行修改后的配置文件对原来的正式环境中的目标应用进行上线部署处理。
可选的,所述部署模块45还包括缓存单元455,其用于增设用于存储所述至少两个用户访问所述灰度环境上的目标应用时所产生的访问数据的数据缓存节点。
可选的,所述截取单元452具体用于:
根据所述目标应用,选择所述应用访问请求对应的通信协议的访问用户进行访问环境的切换;
在切换后,判断所述灰度环境中的预发布版本运行数据的运行是否出现故障;
若是,则生成访问结果存储于所述缓存节点中,并通知研发人员对所述预发布版本运行数据进行修改后再发布;
若否,则将访问所产生的应用运行数据、用户数据和访问结果存储于所述缓存节点中。
可选的,所述截取单元452还用于:
将所述正式环境切换回原来的正式环境,并执行对所述目标应用进行访问;
判断所述目标应用的运行数据是否出现故障;
若是,则从所述备份环境中所述第一版本运行数据对所述目标应用进行退回处理,并通过研发人员对所述预发布版本运行数据进行修改后再发布。
基于与上述本发明应用灰度发布方法相同的实施例说明内容,因此本实施例对应用灰度发布系统的实施例内容不做过多赘述。
上面图4-5从模块化功能实体的角度对本发明实施例中的应用灰度发布系统进行详细描述,下面从硬件处理的角度对本发明实施例中应用灰度发布设备进行详细描述。
图6是本发明应用灰度发布设备一实施例的结构示意图,该应用灰度发布设备1000可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(centralprocessingunits,CPU)1010(例如,一个或一个以上处理器)和存储器1020,一个或一个以上存储应用程序1033或数据1032的存储介质1030(例如一个或一个以上海量存储设备)。其中,存储器1020和存储介质1030可以是短暂存储或持久存储。存储在存储介质1030的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对应用灰度发布设备1000中的一系列指令操作。更进一步地,处理器1010可以设置为与存储介质1030通信,在应用灰度发布设备1000上执行存储介质1030中的一系列指令操作。
基于应用灰度发布设备1000还可以包括一个或一个以上电源1040,一个或一个以上有线或无线网络接口1050,一个或一个以上输入输出接口1060,和/或,一个或一个以上操作系统1031,例如Windows Serve,Mac OS X,Unix, Linux,FreeBSD等等。本领域技术人员可以理解,图6示出的应用灰度发布设备结构并不构成对基于应用灰度发布设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
本发明还提供一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质也可以为易失性计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序(即是指令),当所述指令在计算机上运行时,使得计算机执行所述应用灰度发布方法的步骤,可选的,是通过计算机上的处理器来执行所述计算机程序。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-onlymemory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (9)
1.一种应用灰度发布方法,其特征在于,所述应用灰度发布方法包括:
构建执行应用的正式环境、灰度环境以及备份环境,其中,所述正式环境用于为用户提供待访问应用的第二版本运行数据,所述灰度环境用于为提供待访问应用的预发布版本运行数据,所述备份环境用于为用户提供待访问应用的第一版本运行数据,所述第一版本运行数据为所述第二版本运行数据的备份版本数据或历史版本数据;
获取用户的应用访问请求,并检测所述灰度环境中是否存在与所述应用访问请求对应的应用的预发布版本运行数据;
若存在,则切断所述备份环境与所述正式环境的主从关联,并启动所述灰度环境执行所述预发布版本运行数据进行应用的发布;
监测所述正式环境中与所述应用访问请求对应的应用的运行数据是否出现故障;
若是,则快速切换至所述备份环境作为所述正式环境,并根据所述预发布版本运行数据对原来的正式环境上对应的应用进行上线部署处理,其中,所述上线部署处理为按照测试环境的测试流程基于所述预发布版本运行数据对应用进行升级操作,并逐步切换用户的使用;
所述根据所述预发布版本运行数据对原来的正式环境上对应的应用进行上线部署处理包括:
获取用户发送的应用访问请求,并解析所述应用访问请求中请求访问的目标应用;
根据所述目标应用,从原来的正式环境中截取至少两个正在访问所述目标应用的用户切换至所述灰度环境中进行访问,得到访问数据;
根据所述访问数据和所述预发布版本运行数据,修改原来的正式环境中的配置容器的配置文件;
执行修改后的配置文件对原来的正式环境中的目标应用进行上线部署处理。
2.根据权利要求1所述的应用灰度发布方法,其特征在于,所述构建执行应用的正式环境、灰度环境和正式环境包括:
通过前台服务和应用服务分别搭建灰度环境、正式环境和备用环境的架构;
对每个环境的架构设置独立的配置容器,并采用docker容器部署每个环境;
建立所述正式环境与所述备用环境之间的主从关联,其中,所述主从关联为通过脚本将所述正式环境中产生的数据同步到所述备用环境中。
3.根据权利要求2所述的应用灰度发布方法,其特征在于,所述启动所述灰度环境执行所述预发布版本运行数据进行应用的发布包括:
通过控制所述灰度环境对应的配置容器,获取应用发布的配置文件,其中所述配置文件包括预发布版本运行数据;
提取所述配置文件中的预发布版本运行数据,并采用GIT方式提交至服务器上,并通过所述服务器将所述预发布版本运行数据以镜像的形式发布。
4.根据权利要求1所述的应用灰度发布方法,其特征在于,所述根据所述预发布版本运行数据对原来的正式环境上对应的应用进行上线部署处理,还包括:
增设用于存储所述至少两个用户访问所述灰度环境上的目标应用时所产生的访问数据的数据缓存节点。
5.根据权利要求4所述的应用灰度发布方法,其特征在于,所述根据所述目标应用,从原来的正式环境中截取至少两个正在访问所述目标应用的用户切换至所述灰度环境中进行访问,得到访问数据包括:
根据所述目标应用,选择所述应用访问请求对应的通信协议的访问用户进行访问环境的切换;
在切换后,判断所述灰度环境中的预发布版本运行数据的运行是否出现故障;
若是,则生成访问结果存储于所述缓存节点中,并通知研发人员对所述预发布版本运行数据进行修改后再发布;
若否,则将访问所产生的应用运行数据、用户数据和访问结果存储于所述缓存节点中。
6.根据权利要求5所述的应用灰度发布方法,其特征在于,在所述执行修改后的配置文件对原来的正式环境中的目标应用进行上线部署处理之后,还包括:
将所述正式环境切换回原来的正式环境,并执行对所述目标应用进行访问;
判断所述目标应用的运行数据是否出现故障;
若是,则从所述备份环境中所述第一版本运行数据对所述目标应用进行退回处理,并通过研发人员对所述预发布版本运行数据进行修改后再发布。
7.一种应用灰度发布系统,其特征在于,所述应用灰度发布系统包括:
构建模块,用于构建执行应用的正式环境、灰度环境以及备份环境,其中,所述正式环境用于为用户提供待访问应用的第二版本运行数据,所述灰度环境用于为提供待访问应用的预发布版本运行数据,所述备份环境用于为用户提供待访问应用的第一版本运行数据,所述第一版本运行数据为所述第二版本运行数据的备份版本数据或历史版本数据;
检测模块,用于获取用户的应用访问请求,并检测所述灰度环境中是否存在与所述应用访问请求对应的应用的预发布版本运行数据;
切换发布模块,用于在检测存在预发布版本运行数据时,切断所述备份环境与所述正式环境的主从关联,并启动所述灰度环境执行所述预发布版本运行数据进行应用的发布;
监控模块,用于监测所述正式环境中与所述应用访问请求对应的应用的运行数据是否出现故障;
部署模块,用于在检测出现故障时,快速切换至所述备份环境作为所述正式环境,并根据所述预发布版本运行数据对原来的正式环境上对应的应用进行上线部署处理,其中,所述上线部署处理为按照测试环境的测试流程基于所述预发布版本运行数据对应用进行升级操作,并逐步切换用户的使用;
所述根据所述预发布版本运行数据对原来的正式环境上对应的应用进行上线部署处理包括:
获取用户发送的应用访问请求,并解析所述应用访问请求中请求访问的目标应用;
根据所述目标应用,从原来的正式环境中截取至少两个正在访问所述目标应用的用户切换至所述灰度环境中进行访问,得到访问数据;
根据所述访问数据和所述预发布版本运行数据,修改原来的正式环境中的配置容器的配置文件;
执行修改后的配置文件对原来的正式环境中的目标应用进行上线部署处理。
8.一种应用灰度发布设备,其特征在于,所述应用灰度发布设备包括:存储器和至少一个处理器,所述存储器中存储有指令,所述存储器和所述至少一个处理器通过线路互连;
所述至少一个处理器调用所述存储器中的所述指令,以使得所述应用灰度发布设备执行如权利要求1-6中任一项所述的应用灰度发布方法。
9.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-6中任一项所述的应用灰度发布方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010164829.0A CN111324377B (zh) | 2020-03-11 | 2020-03-11 | 应用灰度发布方法、系统、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010164829.0A CN111324377B (zh) | 2020-03-11 | 2020-03-11 | 应用灰度发布方法、系统、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111324377A CN111324377A (zh) | 2020-06-23 |
CN111324377B true CN111324377B (zh) | 2023-03-24 |
Family
ID=71171580
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010164829.0A Active CN111324377B (zh) | 2020-03-11 | 2020-03-11 | 应用灰度发布方法、系统、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111324377B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111949311B (zh) * | 2020-08-12 | 2023-08-25 | 中国工商银行股份有限公司 | 灰度发布方法及系统 |
CN112764765A (zh) * | 2021-01-21 | 2021-05-07 | 中信银行股份有限公司 | 一种应用灰度发布方法、系统及计算机可读存储介质 |
CN112860576A (zh) * | 2021-03-16 | 2021-05-28 | 中国工商银行股份有限公司 | 一种基于灰度验证的业务处理方法、装置及设备 |
CN113419949B (zh) * | 2021-06-21 | 2024-03-19 | 平安银行股份有限公司 | 数据处理的异常检测方法、装置、设备及存储介质 |
CN115242615B (zh) * | 2022-06-29 | 2023-04-14 | 北京聚通达科技股份有限公司 | 服务器的运行管理方法、装置、电子设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE4330188A1 (de) * | 1993-09-01 | 1995-03-02 | Manfred Dipl Chem Dr R Ziegler | Verfahren zur Bestimmung der Immunogenität von Anordnungen oder Materialien für Implantate zur Bewertung ihrer Biokompatibilität im menschlichen oder tierischen Körper |
CN109726099A (zh) * | 2018-04-12 | 2019-05-07 | 平安普惠企业管理有限公司 | 一种应用灰度发布方法、装置及设备 |
CN109815111A (zh) * | 2018-12-13 | 2019-05-28 | 深圳壹账通智能科技有限公司 | 灰度测试方法、装置、计算机设备及存储介质 |
CN110032393A (zh) * | 2019-04-18 | 2019-07-19 | 恒生电子股份有限公司 | 一种微服务发布方法、装置、设备及介质 |
CN110647335A (zh) * | 2019-07-26 | 2020-01-03 | 平安科技(深圳)有限公司 | 软件灰度发布方法、装置、电子设备及存储介质 |
-
2020
- 2020-03-11 CN CN202010164829.0A patent/CN111324377B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE4330188A1 (de) * | 1993-09-01 | 1995-03-02 | Manfred Dipl Chem Dr R Ziegler | Verfahren zur Bestimmung der Immunogenität von Anordnungen oder Materialien für Implantate zur Bewertung ihrer Biokompatibilität im menschlichen oder tierischen Körper |
CN109726099A (zh) * | 2018-04-12 | 2019-05-07 | 平安普惠企业管理有限公司 | 一种应用灰度发布方法、装置及设备 |
CN109815111A (zh) * | 2018-12-13 | 2019-05-28 | 深圳壹账通智能科技有限公司 | 灰度测试方法、装置、计算机设备及存储介质 |
CN110032393A (zh) * | 2019-04-18 | 2019-07-19 | 恒生电子股份有限公司 | 一种微服务发布方法、装置、设备及介质 |
CN110647335A (zh) * | 2019-07-26 | 2020-01-03 | 平安科技(深圳)有限公司 | 软件灰度发布方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111324377A (zh) | 2020-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111324377B (zh) | 应用灰度发布方法、系统、设备及存储介质 | |
US10237118B2 (en) | Efficient application build/deployment for distributed container cloud platform | |
US12081637B2 (en) | Embedded database as a microservice for distributed container cloud platform | |
US20220179682A1 (en) | Task processing method, apparatus, and system based on distributed system | |
CN106557384B (zh) | 基于Linux的数据处理方法、装置和系统 | |
US20210004292A1 (en) | Automatically configuring boot sequence of container systems for disaster recovery | |
US8214686B2 (en) | Distributed processing method | |
US20180143856A1 (en) | Flexible job management for distributed container cloud platform | |
US20040117414A1 (en) | Method and system for automatically updating operating systems | |
JP6788178B2 (ja) | 設定支援プログラム、設定支援方法及び設定支援装置 | |
US20070244999A1 (en) | Method, apparatus, and computer product for updating software | |
US20160077919A1 (en) | Methods and apparatus to perform site recovery of a virtual data center | |
US20030217131A1 (en) | Processing distribution using instant copy | |
CN103226493A (zh) | 多操作系统业务的部署方法和系统 | |
CN111897558A (zh) | 容器集群管理系统Kubernetes升级方法和装置 | |
CN111552489A (zh) | 用户态文件系统热升级方法、装置、服务器及介质 | |
CN113315754A (zh) | 容器出访防火墙智能联动方法及装置、设备、介质 | |
CN114286366A (zh) | 无线网格网络升级方法、装置、主节点及存储介质 | |
CN115643168B (zh) | 一种节点超融合升级方法、装置、设备及存储介质 | |
CN110113217B (zh) | 微服务管理方法、装置、管理平台及存储介质 | |
CN112351098B (zh) | 拷机服务集群系统、控制方法、装置及介质 | |
WO2015114417A1 (en) | Data migration method and systems | |
JP2009151470A (ja) | 印刷制御装置および、印刷制御方法ならびに印刷制御方法を実行するプログラム | |
CN113760843A (zh) | 一种站点部署方法及终端 | |
CN114185590A (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 |