CN112948278A - 基于灰度数据库的产品灰度发布方法、装置、设备和介质 - Google Patents

基于灰度数据库的产品灰度发布方法、装置、设备和介质 Download PDF

Info

Publication number
CN112948278A
CN112948278A CN202110527405.0A CN202110527405A CN112948278A CN 112948278 A CN112948278 A CN 112948278A CN 202110527405 A CN202110527405 A CN 202110527405A CN 112948278 A CN112948278 A CN 112948278A
Authority
CN
China
Prior art keywords
gray
environment
database
test
gray level
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.)
Granted
Application number
CN202110527405.0A
Other languages
English (en)
Other versions
CN112948278B (zh
Inventor
冯建强
顾敏苏
纪海音
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Taiping Financial Technology Services Shanghai Co Ltd Shenzhen Branch
Original Assignee
Taiping Financial Technology Services Shanghai Co Ltd Shenzhen Branch
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Taiping Financial Technology Services Shanghai Co Ltd Shenzhen Branch filed Critical Taiping Financial Technology Services Shanghai Co Ltd Shenzhen Branch
Priority to CN202110527405.0A priority Critical patent/CN112948278B/zh
Publication of CN112948278A publication Critical patent/CN112948278A/zh
Application granted granted Critical
Publication of CN112948278B publication Critical patent/CN112948278B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3676Test management for coverage analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3692Test management for test results analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请涉及一种基于灰度数据库的产品灰度发布方法、装置、设备和介质。所述方法包括:接收灰度环境构建指令,并构建灰度数据库;获取预先上传至灰度服务发布文件目录下的第一发布包,根据第一发布包在灰度数据库中部署灰度环境;在灰度环境中进行产品灰度测试,在产品灰度测试的测试结果为测试成功时,接收生产环境部署任务,并获取预先上传至生产服务发布文件目录下的第二发布包,并基于第二发布包在生产数据库中部署生产环境;在生产环境中进行可用性测试,并在可用性测试的结果为测试成功时,进行产品发布。采用本方法能够可以减少生产环境验证所需要的时长,减少影响范围。

Description

基于灰度数据库的产品灰度发布方法、装置、设备和介质
技术领域
本申请涉及数据库技术领域,特别是涉及一种基于灰度数据库的产品灰度发布方法、装置、设备和介质。
背景技术
在传统的软件系统逐步演进的生命周期中,软件更新发布是其中必不可少的环节,系统在上线后为业务用户提供相关服务,提高发布动作的有效性及减少发布影响时间可以直接提升系统的服务等级协议,通过应用自动化部署可以有效改进了发布质量。
然而,传统的系统发布场景下,发布与验证紧密关联,由于生产验证与生产部署在同一个流程中,发布完成的验证阶段,一旦出现发布的问题直接影响所有用户,导致发布影响范围大。
发明内容
基于此,有必要针对上述技术问题,提供一种能够减少生产环境验证所需时长和影响范围的基于灰度数据库的产品灰度发布方法、装置、设备和介质。
一种基于灰度数据库的产品灰度发布方法,所述方法包括:
接收灰度环境构建指令;
根据所述灰度环境构建指令,构建灰度数据库;
获取预先上传至灰度服务发布文件目录下的第一发布包,并根据所述第一发布包在所述灰度数据库中部署灰度环境;
在所述灰度环境中进行产品灰度测试,并在所述产品灰度测试的测试结果为测试成功时,接收生产环境部署任务,并获取预先上传至生产服务发布文件目录下的第二发布包,并基于所述第二发布包在生产数据库中部署生产环境;
在所述生产环境中进行可用性测试,并在所述可用性测试的结果为测试成功时,进行产品发布。
在其中一个实施例中,所述在所述灰度环境中进行产品灰度测试,包括:
获取内网环境下配置的网络代理,外网环境下指定的虚拟私人网络;
获取灰度网络地址匹配规则,并根据所述灰度网络地址匹配规则,在所述内网环境下通过所述网络代理和/或在所述外网环境下通过所述虚拟私人网络连接对应的灰度终端;
对所述灰度终端进行灰度测试,所述灰度测试包括功能测试和/或接口测试。
在其中一个实施例中,所述根据所述灰度环境构建指令,构建灰度数据库,包括:
根据所述灰度环境构建指令停止灰度数据库服务,并完成所述灰度数据库的数据文件的冷备份;
启动预先构建的所述灰度数据库的从节点,并关闭主从同步策略以构建灰度数据库。
在其中一个实施例中,所述获取预先上传至灰度服务发布文件目录下的第一发布包,并根据所述第一发布包在所述灰度数据库中部署灰度环境,包括:
获取预先上传至灰度服务发布文件目录下的第一发布包中的第一数据脚本文件;
在所述灰度数据库中执行所述第一数据脚本文件以在从镜像仓库获取到发布镜像,并在灰度应用服务器节点根据所述发布镜像进行镜像部署,根据所述第一发布包中的资源文件进行资源部署。
在其中一个实施例中,所述在所述产品灰度测试的测试结果为测试成功时,还包括:
接收灰度环境回退任务;
根据所述灰度环境回退任务停止应用服务以及灰度数据库服务,并通过冷备份的数据文件恢复所述灰度数据库;
启动灰度数据库,并重新开启主从同步策略。
在其中一个实施例中,所述基于所述第二发布包在生产数据库中部署生产环境,包括:
在生产数据库中执行所述第二发布包中的数据脚本文件,以从镜像仓库获取到发布镜像,并在生产服务器节点根据所述发布镜像进行镜像部署,根据所述第二发布包中的资源文件进行资源部署。
在其中一个实施例中,所述在所述生产环境中进行可用性测试之后,还包括:
当所述可用性测试的结果为测试失败时,则进行服务回滚以及前端资源备份回滚,并通过所述生产数据库的回退脚本完成所述生产数据库的发布回滚。
一种基于灰度数据库的产品灰度发布装置,所述装置包括:
第一接收模块,用于接收灰度环境构建指令;
灰度数据库构建模块,用于根据所述灰度环境构建指令,构建灰度数据库;
灰度环境部署模块,用于获取预先上传至灰度服务发布文件目录下的第一发布包,并根据所述第一发布包在所述灰度数据库中部署灰度环境;
灰度环境测试模块,用于在所述灰度环境中进行产品灰度测试;
生产环境部署模块,用于在所述产品灰度测试的测试结果为测试成功时,接收生产环境部署任务,并获取预先上传至生产服务发布文件目录下的第二发布包,并基于所述第二发布包在生产数据库中部署生产环境;
生产环境测试模块,用于在所述生产环境中进行可用性测试,并在所述可用性测试的结果为测试成功时,进行产品发布。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任意一个实施例中的方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一个实施例中的方法的步骤。
上述基于灰度数据库的产品灰度发布方法、装置、设备和介质,通过灰度环境前置发布测试环节,以代替生产环境的中的测试,即将产品灰度测试放置在灰度环境中进行,在生产环境仅进行产品可用性测试,从而可以减少生产环境验证所需要的时长,且由于通过灰度环境进行测试,还可以减少影响范围。
附图说明
图1为一个实施例中基于灰度数据库的产品灰度发布方法的应用环境图;
图2为一个实施例中基于灰度数据库的产品灰度发布方法的流程示意图;
图3为另一个实施例中基于灰度数据库的产品灰度发布方法的流程示意图;
图4为一个实施例中基于灰度数据库的产品灰度发布装置的结构框图;
图5为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的基于灰度数据库的产品灰度发布方法,可以应用于如图1所示的应用环境中。其中,终端(图中未示出)通过网络与生产数据库节点和灰度数据库单节点进行通信,其中终端接收灰度环境构建指令;根据灰度环境构建指令,构建灰度数据库;获取预先上传至灰度服务发布文件目录下的第一发布包,并根据第一发布包在灰度数据库,即灰度数据库单节点中部署灰度环境,在灰度环境中进行产品灰度测试,并在产品灰度测试的测试结果为测试成功时,接收生产环境部署任务,并获取预先上传至生产服务发布文件目录下的第二发布包,并基于第二发布包在生产数据库,即生产数据库节点中部署生产环境,在生产环境中进行可用性测试,并在可用性测试的结果为测试成功时,进行产品发布。其中,终端可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,生产数据库节点和灰度数据库单节点可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
此外,在详细介绍本申请之前,先对本申请所涉及的各个专业术语进行解释:
Katalon:一款简单却有强大的自动化解决能力的工具,可用于测试用例脚本快速录制。
Docker:一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器或Windows 机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。
Jenkins:是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。
Binlog:MySQL数据库的二进制日志,用于记录用户对数据库操作的SQL语句,常用于构建数据库主从节点同步。
VPN: Virtual Private Network虚拟专用网络。
PC: Personal Computer 个人计算机。
APP: Application手机移动应用程序。
在一个实施例中,如图2所示,提供了一种基于灰度数据库的产品灰度发布方法,以该方法应用于终端为例进行说明,该终端部署有Jenkins项目,在其他实施例中,该Jenkins项目可以替换为其他的运维发布平台,该方法包括以下步骤:
S202:接收灰度环境构建指令。
具体地,灰度环境构建指令可以是管理人员登录终端中的Jenkins项目或者其他运维发布平台,在运维发布平台上触发得到的,具体地,Jenkins项目或者其他运维发布平台上设置有灰度环境构建选项,管理人员通过选取对应的系统,并点击该系统的该选项以使得终端接收灰度环境构建指令。
可选地,在接收灰度环境构建指令之前,由系统发布人员通过FTP工具手动上传生产发布包至指定灰度服务发布文件目录下,其中灰度发布文件目录对于应用部署服务器、灰度数据库节点服务器共享。其中生产发布包括:前端资源文件、应用发布文件镜像、数据库发布脚本,也即下文中的第一发布包。然后将应用发布镜像推送至镜像仓库,其中镜像仓库对于发布测试阶段和生产发布阶段是共享的,也即灰度环境和生产环境共用一个镜像仓库。
S204:根据灰度环境构建指令,构建灰度数据库。
具体地,灰度数据库是指图1中的灰度数据库单节点,其是生产数据库的从节点。其中此处的灰度数据库的构件主要是为了将灰度数据库与生产数据库进行隔离,从而避免灰度环境对生产环境的影响,以减少影响的范围。
具体地,在分布式数据库中,会有一个主节点数据库作为“写数据库”,其它从节点数据库通过数据同步的方式将主节点数据库产生的变化数据同步至本地,这样形成了数据库灾备与负载均衡的基本数据库集群架构,1主2从指的是,目前生产环境现有数据库有三个节点,其中一个是主节点(写入程序产生的数据),两个是从节点。其中此处,主节点是生产数据库,从节点的其中一个为灰度数据库单节点。
S206:获取预先上传至灰度服务发布文件目录下的第一发布包,并根据第一发布包在灰度数据库中部署灰度环境。
具体地,此步骤是灰度环境的部署,该灰度环境的部署主要是依赖于第一发布包中的前端资源文件、应用发布文件镜像、数据库发布脚本。且第一发布包是预先上传至灰度服务发布文件目录下的,也就是说上传至图1中的存储模块中。因此直接将上述第一发布包在灰度数据库中进行执行,即可以完成灰度环境的部署。
S208:在灰度环境中进行产品灰度测试。
具体地,此处的产品灰度测试包括但不限于功能测试、接口测试以及可用性测试等,从而以测试产品在灰度环境下是否可以正常运行,若是测试通过,则存储测试成功的测试结果,若是测试不通过,则提示失败,以对第一发布包进行修改,并重新上传修改后的第一发布包。
S210:在产品灰度测试的测试结果为测试成功时,接收生产环境部署任务,并获取预先上传至生产服务发布文件目录下的第二发布包,并基于第二发布包在生产数据库中部署生产环境。
具体地,上文中是灰度发布以及测试阶段,本步骤开始则为生产阶段。
具体地,发布管理人员登录Jenkins平台触发生产环境部署任务,其中部署的方式与上文中的灰度环境构建指令的触发方式类似,在此不再赘述。
第二发布包则是预先上传至生产部署服务器的,即开启入口限流控制,通过命令将灰度发布目录资源推送至生产部署服务器,包括前端资源文件、数据库发布脚本,由于灰度环境与生产环境共用一个镜像仓库,应用镜像无需同步。
该生产环境的部署主要是依赖于第二发布包中的前端资源文件、应用发布文件镜像、第二数据库发布脚本。且第二发布包是预先上传至灰度服务发布文件目录下的,也就是说上传至图1中的存储模块中。因此直接将上述第二发布包在生产数据库中进行执行,即可以完成生产环境的部署。
S212:在生产环境中进行可用性测试,并在可用性测试的结果为测试成功时,进行产品发布。
具体地,在生产环境中仅进行可用性测试,而对于功能测试和接口测试等全部移动至灰度环境中,从而可以减少生产环境的测试的步骤,减少生产环境受影响的时间与范围,且在可用性测试通过后,则直接进行产品发布。
上述基于灰度数据库的产品灰度发布方法,在生产区将测试环节与部署环节彻底解耦,通过对等灰度环境前置完成发布测试,测试次数与时间不在受到限制,生产环境只做部署动作与可用性测试,减少生产环境受影响的时间与范围,在满足合规性要求的情况下扩大功能测试覆盖率,在对等生产环境的情况下保证测试产出的数据不留痕。通过灰度环境前置发布测试环节,以代替生产环境的中的测试,即将产品灰度测试放置在灰度环境中进行,在生产环境仅进行产品可用性测试,从而可以减少生产环境测试所需要的时长,且由于通过灰度环境进行测试,还可以减少影响范围。
在其中一个实施例中,在灰度环境中进行产品灰度测试,包括:获取内网环境下配置的网络代理,外网环境下指定的虚拟私人网络;获取灰度网络地址匹配规则,并根据灰度网络地址匹配规则,在内网环境下通过网络代理和/或在外网环境下通过虚拟私人网络连接对应的灰度终端;对灰度终端进行灰度测试,灰度测试包括功能测试和/或接口测试。
在首次部署时,需要在内外网Nginx层配置灰度网络地址匹配规则,并通过云数据库同步工具或Mysql数据文件全量初始化灰度数据库节点。内外网指定灰度环境测试客户端的IP,通过匹配访问终端(移动端、PC端)的网络地址在Nginx转发至灰度环境,具体地,结合图1中,首先内外网的终端进入内网服务器或者DMZ服务器,然后通过该两个服务器中的灰度网络地址匹配规则为终端分配对应的环境,若是满足该匹配规则,则进入灰度环境,即路由至灰度服务器节点,否则路由至生产环境,即进入生产服务集群中。
具体地在公司内网环境下配置指定网络代理,外部网络环境下连接指定的VPN,达到灰度IP规则匹配的条件,使用Katalon连接登录APP、PC终端进行功能测试用例、接口测试用例的自动化测试,或者是通过手动测试,并通过调用服务注册中心服务查询接口获取服务可用性结果,若测试不通过则重新上传发布包。
上述实施例中,通过灰度网络地址匹配规则进行路由缩小生产发布测试时影响用户范围。
在其中一个实施例中,根据灰度环境构建指令,构建灰度数据库,包括:根据灰度环境构建指令停止灰度数据库服务,并完成灰度数据库的数据文件的冷备份;启动预先构建的灰度数据库的从节点,并关闭主从同步策略以构建灰度数据库。
具体地,此处主要是执行灰度数据库服务停机,完成灰度数据库节点的数据文件冷备份,从而启动灰度数据库从节点,关闭Binlog主从同步策略,以实现灰度数据库的构建。
在其中一个实施例中,获取预先上传至灰度服务发布文件目录下的第一发布包,并根据第一发布包在灰度数据库中部署灰度环境,包括:获取预先上传至灰度服务发布文件目录下的第一发布包中的第一数据脚本文件;在灰度数据库中执行第一数据脚本文件以在从镜像仓库获取到发布镜像,并在灰度应用服务器节点根据发布镜像进行镜像部署,根据第一发布包中的资源文件进行资源部署。
具体地,在灰度数据库下自动执行发布目录下数据脚本文件,在灰度应用服务器节点完成应用微服务Docker镜像部署、前端资源文件部署。即利用之前推送到镜像仓库中的应用镜像进行部署。
在实际应用中,首先将第一发布包上传至灰度服务发布文件目录下,然后在灰度数据库中执行第一数据脚本文件以在从镜像仓库获取到发布镜像,从而在灰度应用服务器节点根据发布镜像进行镜像部署,根据第一发布包中的资源文件进行资源部署这样实现灰度环境的部署。
在其中一个实施例中,在产品灰度测试的测试结果为测试成功时,还包括:接收灰度环境回退任务;根据灰度环境回退任务停止应用服务以及灰度数据库服务,并通过冷备份的数据文件恢复灰度数据库;启动灰度数据库,并重新开启主从同步策略。
具体地,发布管理人员登录Jenkins平台触发灰度环境回退任务。执行Docker命令停止应用服务,执行命令停止灰度数据库节点,通过冷备的数据文件自动同步恢复灰度数据库节点,启动灰度数据库实例,开启主从同步策。即开启从数据库主节点同步至灰度数据库节点的策略,其中Mysql数据库系统已有该配置项。
在其中一个实施例中,基于第二发布包在生产数据库中部署生产环境,包括:在生产数据库中执行第二发布包中的数据脚本文件,以从镜像仓库获取到发布镜像,并在生产服务器节点根据发布镜像进行镜像部署,根据第二发布包中的资源文件进行资源部署。
具体地,发布管理人员登录Jenkins平台触发生产环境部署任务。
即在部署服务器中通过Mysql客户端执行发布目录下数据脚本文件。
在生产应用服务器节点完成应用镜像部署、前端资源文件部署,前端资源旧版本备份。
这样通过调用服务注册中心服务查询接口获取服务可用性结果,如有外系统对接测试则人工介入配合外系统测试,测试成功则结束。
在其中一个实施例中,在生产环境中进行可用性测试之后,还包括:当可用性测试的结果为测试失败时,则进行服务回滚以及前端资源备份回滚,并通过生产数据库的回退脚本完成生产数据库的发布回滚。
具体地,在可用性测试失败时,则进行生产发布回滚,即执行Docker命令重新部署旧版本镜像完成应用服务回滚,执行命令完成前端资源备份回滚,通过数据库回退脚本完成数据库发布回滚,最后人工介入测试回滚是否生效。
具体地,结合图3所示,图3为另一个实施例中基于灰度数据库的产品灰度发布方法的流程示意图,在该实施例中,包括灰度发布与测试阶段以及生产发布阶段。
灰度发布与测试阶段包括:
首先进行发布包上传,即由系统发布人员通过FTP工具手动上传生产发布包至指定灰度服务发布文件目录(灰度发布文件目录对应用部署服务器、数据库节点服务器共享),将应用发布镜像推送至镜像仓库。
然后进行灰度数据库构建,即发布管理人员登录Jenkins平台触发灰度环境构建与部署任务。执行灰度数据库服务停机,完成灰度数据库节点的数据文件冷备份,启动灰度数据库从节点,关闭Binlog主从同步策略。
接着进行灰度环境部署,即在灰度数据库下自动执行发布目录下数据脚本文件,在灰度应用服务器节点完成应用微服务Docker镜像部署、前端资源文件部署。
再进行灰度环境测试,即在公司内网环境下配置指定网络代理,外部网络环境下连接指定的VPN,达到灰度IP规则匹配的条件,使用Katalon连接登录APP、PC终端进行功能测试用例、接口测试用例的自动化测试,通过调用服务注册中心服务查询接口获取服务可用性结果,若测试不通过则重新上传发布包,并重新执行上述步骤。
在测试结束后,则进行灰度环境回退,即发布管理人员登录Jenkins平台触发灰度环境回退任务。执行Docker命令停止应用服务,执行命令停止灰度数据库节点,通过冷备的数据文件自动同步恢复灰度数据库节点,启动灰度数据库实例,开启主从同步策略。
以上是灰度发布与测试阶段的处理,而生产发布阶段则包括:
首先进行发布资源同步,即开启入口限流控制,通过命令将灰度发布目录资源推送至生产部署服务器,包括前端资源文件、数据库发布脚本,由于灰度环境与生产环境共用一个镜像仓库,应用镜像无需同步。
其次进行生产环境自动化部署,包括发布管理人员登录Jenkins平台触发生产环境部署任务,包括:在部署服务器中通过Mysql客户端执行发布目录下数据脚本文件。在生产应用服务器节点完成应用镜像部署、前端资源文件部署,前端资源旧版本备份。
然后进行生产环境的可用性测试,即在生产网关集群同区域环境中获取服务可用性结果,如有外系统对接测试则人工介入配合外系统测试,测试成功则结束。
最后,若是可用性测试失败,则执行Docker命令重新部署旧版本镜像完成应用服务回滚,执行命令完成前端资源备份回滚,通过数据库回退脚本完成数据库发布回滚,最后人工介入测试回滚是否生效。
上述实施例中,通过灰度网络地址路由缩小生产发布测试时影响用户范围,且通过自主构建灰度数据库从节点,扩大功能测试覆盖率,进行完整的操作性功能测试,最后通过灰度环境前置发布测试环节,替代生产环境的功能测试,减少生产环境测试所需时长。
应该理解的是,虽然图2和图3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2和图3中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图4所示,提供了一种基于灰度数据库的产品灰度发布装置,包括:第一接收模块100、灰度数据库构建模块200、灰度环境部署模块300、灰度环境测试模块400、生产环境部署模块500和生产环境测试模块600,其中:
第一接收模块100,用于接收灰度环境构建指令;
灰度数据库构建模块200,用于根据灰度环境构建指令,构建灰度数据库;
灰度环境部署模块300,用于获取预先上传至灰度服务发布文件目录下的第一发布包,并根据第一发布包在灰度数据库中部署灰度环境;
灰度环境测试模块400,用于在灰度环境中进行产品灰度测试;
生产环境部署模块500,用于在产品灰度测试的测试结果为测试成功时,接收生产环境部署任务,并获取预先上传至生产服务发布文件目录下的第二发布包,并基于第二发布包在生产数据库中部署生产环境;
生产环境测试模块600,用于在生产环境中进行可用性测试,并在可用性测试的结果为测试成功时,进行产品发布。
在其中一个实施例中,上述的灰度环境测试模块400包括:
网络配置获取单元,用于获取内网环境下配置的网络代理,外网环境下指定的虚拟私人网络;
连接单元,用于获取灰度网络地址匹配规则,并根据灰度网络地址匹配规则,在内网环境下通过网络代理和/或在外网环境下通过虚拟私人网络连接对应的灰度终端;
灰度测试单元,用于对灰度终端进行灰度测试,灰度测试包括功能测试和/或接口测试。
在其中一个实施例中,上述灰度环境部署模块300包括:
冷备份单元,用于根据灰度环境构建指令停止灰度数据库服务,并完成灰度数据库的数据文件的冷备份;
构建单元,用于启动预先构建的灰度数据库的从节点,并关闭主从同步策略以构建灰度数据库。
在其中一个实施例中,上述灰度环境部署模块300还包括:
第一数据脚本获取单元,用于获取预先上传至灰度服务发布文件目录下的第一发布包中的第一数据脚本文件;
第一部署单元,用于在灰度数据库中执行第一数据脚本文件以在从镜像仓库获取到发布镜像,并在灰度应用服务器节点根据发布镜像进行镜像部署,根据第一发布包中的资源文件进行资源部署。
在其中一个实施例中,上述基于灰度数据库的产品灰度发布装置还包括:
第二接收模块,用于接收灰度环境回退任务;
回复模块,用于根据灰度环境回退任务停止应用服务以及灰度数据库服务,并通过冷备份的数据文件恢复灰度数据库;启动灰度数据库,并重新开启主从同步策略。
在其中一个实施例中,上述生产环境部署模块500还用于在生产数据库中执行第二发布包中的数据脚本文件,以从镜像仓库获取到发布镜像,并在生产服务器节点根据发布镜像进行镜像部署,根据第二发布包中的资源文件进行资源部署。
在其中一个实施例中,上述基于灰度数据库的产品灰度发布装置还包括:
回滚模块,用于当可用性测试的结果为测试失败时,则进行服务回滚以及前端资源备份回滚,并通过生产数据库的回退脚本完成生产数据库的发布回滚。
关于基于灰度数据库的产品灰度发布装置的具体限定可以参见上文中对于基于灰度数据库的产品灰度发布方法的限定,在此不再赘述。上述基于灰度数据库的产品灰度发布装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图5所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、运营商网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种基于灰度数据库的产品灰度发布方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图5中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:接收灰度环境构建指令;根据灰度环境构建指令,构建灰度数据库;获取预先上传至灰度服务发布文件目录下的第一发布包,并根据第一发布包在灰度数据库中部署灰度环境;在灰度环境中进行产品灰度测试,并在产品灰度测试的测试结果为测试成功时,接收生产环境部署任务,并获取预先上传至生产服务发布文件目录下的第二发布包,并基于第二发布包在生产数据库中部署生产环境;在生产环境中进行可用性测试,并在可用性测试的结果为测试成功时,进行产品发布。
在一个实施例中,处理器执行计算机程序时所实现的在灰度环境中进行产品灰度测试,包括:获取内网环境下配置的网络代理,外网环境下指定的虚拟私人网络;获取灰度网络地址匹配规则,并根据灰度网络地址匹配规则,在内网环境下通过网络代理和/或在外网环境下通过虚拟私人网络连接对应的灰度终端;对灰度终端进行灰度测试,灰度测试包括功能测试和/或接口测试。
在一个实施例中,处理器执行计算机程序时所实现的根据灰度环境构建指令,构建灰度数据库,包括:根据灰度环境构建指令停止灰度数据库服务,并完成灰度数据库的数据文件的冷备份;启动预先构建的灰度数据库的从节点,并关闭主从同步策略以构建灰度数据库。
在一个实施例中,处理器执行计算机程序时所实现的获取预先上传至灰度服务发布文件目录下的第一发布包,并根据第一发布包在灰度数据库中部署灰度环境,包括:获取预先上传至灰度服务发布文件目录下的第一发布包中的第一数据脚本文件;在灰度数据库中执行第一数据脚本文件以在从镜像仓库获取到发布镜像,并在灰度应用服务器节点根据发布镜像进行镜像部署,根据第一发布包中的资源文件进行资源部署。
在一个实施例中,处理器执行计算机程序时所实现的在产品灰度测试的测试结果为测试成功时,还包括:接收灰度环境回退任务;根据灰度环境回退任务停止应用服务以及灰度数据库服务,并通过冷备份的数据文件恢复灰度数据库;启动灰度数据库,并重新开启主从同步策略。
在一个实施例中,处理器执行计算机程序时所实现的基于第二发布包在生产数据库中部署生产环境,包括:在生产数据库中执行第二发布包中的数据脚本文件,以从镜像仓库获取到发布镜像,并在生产服务器节点根据发布镜像进行镜像部署,根据第二发布包中的资源文件进行资源部署。
在一个实施例中,处理器执行计算机程序时所实现的在生产环境中进行可用性测试之后,还包括:当可用性测试的结果为测试失败时,则进行服务回滚以及前端资源备份回滚,并通过生产数据库的回退脚本完成生产数据库的发布回滚。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:接收灰度环境构建指令;根据灰度环境构建指令,构建灰度数据库;获取预先上传至灰度服务发布文件目录下的第一发布包,并根据第一发布包在灰度数据库中部署灰度环境;在灰度环境中进行产品灰度测试,并在产品灰度测试的测试结果为测试成功时,接收生产环境部署任务,并获取预先上传至生产服务发布文件目录下的第二发布包,并基于第二发布包在生产数据库中部署生产环境;在生产环境中进行可用性测试,并在可用性测试的结果为测试成功时,进行产品发布。
在一个实施例中,计算机程序被处理器执行时所实现的在灰度环境中进行产品灰度测试,包括:获取内网环境下配置的网络代理,外网环境下指定的虚拟私人网络;获取灰度网络地址匹配规则,并根据灰度网络地址匹配规则,在内网环境下通过网络代理和/或在外网环境下通过虚拟私人网络连接对应的灰度终端;对灰度终端进行灰度测试,灰度测试包括功能测试和/或接口测试。
在一个实施例中,计算机程序被处理器执行时所实现的根据灰度环境构建指令,构建灰度数据库,包括:根据灰度环境构建指令停止灰度数据库服务,并完成灰度数据库的数据文件的冷备份;启动预先构建的灰度数据库的从节点,并关闭主从同步策略以构建灰度数据库。
在一个实施例中,计算机程序被处理器执行时所实现的获取预先上传至灰度服务发布文件目录下的第一发布包,并根据第一发布包在灰度数据库中部署灰度环境,包括:获取预先上传至灰度服务发布文件目录下的第一发布包中的第一数据脚本文件;在灰度数据库中执行第一数据脚本文件以在从镜像仓库获取到发布镜像,并在灰度应用服务器节点根据发布镜像进行镜像部署,根据第一发布包中的资源文件进行资源部署。
在一个实施例中,计算机程序被处理器执行时所实现的在产品灰度测试的测试结果为测试成功时,还包括:接收灰度环境回退任务;根据灰度环境回退任务停止应用服务以及灰度数据库服务,并通过冷备份的数据文件恢复灰度数据库;启动灰度数据库,并重新开启主从同步策略。
在一个实施例中,计算机程序被处理器执行时所实现的基于第二发布包在生产数据库中部署生产环境,包括:在生产数据库中执行第二发布包中的数据脚本文件,以从镜像仓库获取到发布镜像,并在生产服务器节点根据发布镜像进行镜像部署,根据第二发布包中的资源文件进行资源部署。
在一个实施例中,计算机程序被处理器执行时所实现的在生产环境中进行可用性测试之后,还包括:当可用性测试的结果为测试失败时,则进行服务回滚以及前端资源备份回滚,并通过生产数据库的回退脚本完成生产数据库的发布回滚。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种基于灰度数据库的产品灰度发布方法,其特征在于,所述方法包括:
接收灰度环境构建指令;
根据所述灰度环境构建指令,构建灰度数据库;
获取预先上传至灰度服务发布文件目录下的第一发布包,并根据所述第一发布包在所述灰度数据库中部署灰度环境;
在所述灰度环境中进行产品灰度测试,并在所述产品灰度测试的测试结果为测试成功时,接收生产环境部署任务,并获取预先上传至生产服务发布文件目录下的第二发布包,并基于所述第二发布包在生产数据库中部署生产环境;
在所述生产环境中进行可用性测试,并在所述可用性测试的结果为测试成功时,进行产品发布。
2.根据权利要求1所述的方法,其特征在于,所述在所述灰度环境中进行产品灰度测试,包括:
获取内网环境下配置的网络代理,外网环境下指定的虚拟私人网络;
获取灰度网络地址匹配规则,并根据所述灰度网络地址匹配规则,在所述内网环境下通过所述网络代理和/或在所述外网环境下通过所述虚拟私人网络连接对应的灰度终端;
对所述灰度终端进行灰度测试,所述灰度测试包括功能测试和/或接口测试。
3.根据权利要求1所述的方法,其特征在于,所述根据所述灰度环境构建指令,构建灰度数据库,包括:
根据所述灰度环境构建指令停止灰度数据库服务,并完成所述灰度数据库的数据文件的冷备份;
启动预先构建的所述灰度数据库的从节点,并关闭主从同步策略以构建灰度数据库。
4.根据权利要求3所述的方法,其特征在于,所述获取预先上传至灰度服务发布文件目录下的第一发布包,并根据所述第一发布包在所述灰度数据库中部署灰度环境,包括:
获取预先上传至灰度服务发布文件目录下的第一发布包中的第一数据脚本文件;
在所述灰度数据库中执行所述第一数据脚本文件以在从镜像仓库获取到发布镜像,并在灰度应用服务器节点根据所述发布镜像进行镜像部署,根据所述第一发布包中的资源文件进行资源部署。
5.根据权利要求3所述的方法,其特征在于,所述在所述产品灰度测试的测试结果为测试成功时,还包括:
接收灰度环境回退任务;
根据所述灰度环境回退任务停止应用服务以及灰度数据库服务,并通过冷备份的数据文件恢复所述灰度数据库;
启动灰度数据库,并重新开启主从同步策略。
6.根据权利要求1至5任意一项所述的方法,其特征在于,所述基于所述第二发布包在生产数据库中部署生产环境,包括:
在生产数据库中执行所述第二发布包中的数据脚本文件,以从镜像仓库获取到发布镜像,并在生产服务器节点根据所述发布镜像进行镜像部署,根据所述第二发布包中的资源文件进行资源部署。
7.根据权利要求1至5任意一项所述的方法,其特征在于,所述在所述生产环境中进行可用性测试之后,还包括:
当所述可用性测试的结果为测试失败时,则进行服务回滚以及前端资源备份回滚,并通过所述生产数据库的回退脚本完成所述生产数据库的发布回滚。
8.一种基于灰度数据库的产品灰度发布装置,其特征在于,所述装置包括:
第一接收模块,用于接收灰度环境构建指令;
灰度数据库构建模块,用于根据所述灰度环境构建指令,构建灰度数据库;
灰度环境部署模块,用于获取预先上传至灰度服务发布文件目录下的第一发布包,并根据所述第一发布包在所述灰度数据库中部署灰度环境;
灰度环境测试模块,用于在所述灰度环境中进行产品灰度测试;
生产环境部署模块,用于在所述产品灰度测试的测试结果为测试成功时,接收生产环境部署任务,并获取预先上传至生产服务发布文件目录下的第二发布包,并基于所述第二发布包在生产数据库中部署生产环境;
生产环境测试模块,用于在所述生产环境中进行可用性测试,并在所述可用性测试的结果为测试成功时,进行产品发布。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
CN202110527405.0A 2021-05-14 2021-05-14 基于灰度数据库的产品灰度发布方法、装置、设备和介质 Active CN112948278B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110527405.0A CN112948278B (zh) 2021-05-14 2021-05-14 基于灰度数据库的产品灰度发布方法、装置、设备和介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110527405.0A CN112948278B (zh) 2021-05-14 2021-05-14 基于灰度数据库的产品灰度发布方法、装置、设备和介质

Publications (2)

Publication Number Publication Date
CN112948278A true CN112948278A (zh) 2021-06-11
CN112948278B CN112948278B (zh) 2021-07-13

Family

ID=76233889

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110527405.0A Active CN112948278B (zh) 2021-05-14 2021-05-14 基于灰度数据库的产品灰度发布方法、装置、设备和介质

Country Status (1)

Country Link
CN (1) CN112948278B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113377400A (zh) * 2021-06-16 2021-09-10 广州博冠信息科技有限公司 软件升级方法、装置、存储介质及电子设备
CN113468064A (zh) * 2021-07-19 2021-10-01 京东科技控股股份有限公司 灰度测试方法、装置、电子设备与存储介质
CN113568655A (zh) * 2021-07-26 2021-10-29 河北幸福消费金融股份有限公司 灰度发布系统、方法和存储介质
CN113760302A (zh) * 2021-09-09 2021-12-07 四川虹美智能科技有限公司 基于Jenkins的UI包部署方法及系统
CN114328275A (zh) * 2022-03-10 2022-04-12 太平金融科技服务(上海)有限公司深圳分公司 系统测试方法、装置、计算机设备和存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008018075A2 (en) * 2006-08-09 2008-02-14 Brand Partner Llc A floating beverage topping
US20120114930A1 (en) * 2010-11-04 2012-05-10 Nitto Denko Corporation Pressure-sensitive adhesive sheet
CN105653440A (zh) * 2014-11-13 2016-06-08 阿里巴巴集团控股有限公司 一种灰度发布方法和装置
CN109101265A (zh) * 2017-06-14 2018-12-28 中国移动通信集团重庆有限公司 灰度发布的方法和系统
CN109726099A (zh) * 2018-04-12 2019-05-07 平安普惠企业管理有限公司 一种应用灰度发布方法、装置及设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008018075A2 (en) * 2006-08-09 2008-02-14 Brand Partner Llc A floating beverage topping
US20120114930A1 (en) * 2010-11-04 2012-05-10 Nitto Denko Corporation Pressure-sensitive adhesive sheet
CN105653440A (zh) * 2014-11-13 2016-06-08 阿里巴巴集团控股有限公司 一种灰度发布方法和装置
CN109101265A (zh) * 2017-06-14 2018-12-28 中国移动通信集团重庆有限公司 灰度发布的方法和系统
CN109726099A (zh) * 2018-04-12 2019-05-07 平安普惠企业管理有限公司 一种应用灰度发布方法、装置及设备

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113377400A (zh) * 2021-06-16 2021-09-10 广州博冠信息科技有限公司 软件升级方法、装置、存储介质及电子设备
CN113468064A (zh) * 2021-07-19 2021-10-01 京东科技控股股份有限公司 灰度测试方法、装置、电子设备与存储介质
CN113568655A (zh) * 2021-07-26 2021-10-29 河北幸福消费金融股份有限公司 灰度发布系统、方法和存储介质
CN113760302A (zh) * 2021-09-09 2021-12-07 四川虹美智能科技有限公司 基于Jenkins的UI包部署方法及系统
CN113760302B (zh) * 2021-09-09 2023-04-07 四川虹美智能科技有限公司 基于Jenkins的UI包部署方法及系统
CN114328275A (zh) * 2022-03-10 2022-04-12 太平金融科技服务(上海)有限公司深圳分公司 系统测试方法、装置、计算机设备和存储介质

Also Published As

Publication number Publication date
CN112948278B (zh) 2021-07-13

Similar Documents

Publication Publication Date Title
CN112948278B (zh) 基于灰度数据库的产品灰度发布方法、装置、设备和介质
CN110389900B (zh) 一种分布式数据库集群测试方法、装置及存储介质
CN106528224B (zh) 一种Docker容器的内容更新方法、服务器及系统
US10795709B2 (en) Systems and method for deploying, securing, and maintaining computer-based analytic environments
CN112035228B (zh) 一种资源调度方法及装置
CN110995473B (zh) 一种业务节点的控制方法及相关设备
CN110609732A (zh) 应用程序部署方法、装置、计算机设备和存储介质
WO2018117966A1 (en) Methods, systems, and portal using software containers for accelerating aspects of data analytics application development and deployment
CN112256388A (zh) 基于容器的区块链网络部署方法、装置、设备及存储介质
US10585785B2 (en) Preservation of modifications after overlay removal from a container
CN112291298B (zh) 异构系统的数据传输方法、装置、计算机设备和存储介质
US11151025B1 (en) Generating software test plans based at least in part on monitored traffic of a production application
CN110196804B (zh) 业务的测试方法和装置、存储介质、电子装置
US20220019523A1 (en) Executing integration scenario regression tests in customer landscapes
US20220103555A1 (en) Service deployment method, device, system, and computer-readable storage medium
US10824642B2 (en) Data synchronization architecture
Sandobalin et al. ARGON: A model-driven infrastructure provisioning tool
CN110531984B (zh) 代码编译方法、装置、系统、计算机设备和存储介质
CN117056240A (zh) 一种支持离线Jar包的数据元件开发调试方法和系统
Buzato et al. Efficient resources utilization by different microservices deployment models
CN111400374B (zh) 一种面向数据挖掘的容器化数据探索隔离区及其使用方法
CN117009238A (zh) 数据测试方法、装置、电子设备、存储介质和程序产品
CN109711124B (zh) 管理移动设备方法、装置、计算机设备和存储介质
EP4130982A1 (en) Network-based solution module deployment platform
CN112564979B (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