CN111984231A - 一种代码自动化上线的方法及系统 - Google Patents
一种代码自动化上线的方法及系统 Download PDFInfo
- Publication number
- CN111984231A CN111984231A CN202010642432.8A CN202010642432A CN111984231A CN 111984231 A CN111984231 A CN 111984231A CN 202010642432 A CN202010642432 A CN 202010642432A CN 111984231 A CN111984231 A CN 111984231A
- Authority
- CN
- China
- Prior art keywords
- software package
- code
- server
- request
- processing unit
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 41
- 238000012545 processing Methods 0.000 claims abstract description 100
- 230000000875 corresponding effect Effects 0.000 description 32
- 238000010276 construction Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 9
- 238000013461 design Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 238000005096 rolling process Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
-
- 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/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1469—Backup restoration techniques
-
- 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
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration 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)
- Stored Programmes (AREA)
Abstract
本发明实施例提供一种代码自动化上线的方法及系统,包括:请求接收单元通过其应用程序接口API自动接收用户代码上线请求,将接收的用户代码上线请求发送到逻辑处理单元;逻辑处理单元自所述代码上线请求解析出构建源代码所需的开源软件平台内的项目名称,调用开源软件平台API采用构建源代码所需的项目名称构建源代码、以及将构建的源代码生成软件包,并记录此次生成的软件包版本信息;逻辑处理单元自所述代码上线请求解析出代码所要上线的服务器IP地址;逻辑处理单元按代码所要上线的服务器IP地址将软件包推送到对应服务器。通过代码自动化上线处理,增加了上线代码的可控性和稳定性。
Description
技术领域
本发明涉及代码上线领域,具体涉及一种代码自动化上线的方法及系统。
背景技术
在现有技术中,当有新代码上线或者代码更新上线时,通常只能采用单独进行软件包的构建,构建完成后再通过人工单独下发到代码上线的服务器。
在实现本发明过程中,申请人发现现有技术中至少存在如下问题:
所采用的软件间没有互相关联,操作繁琐,都需要手动操作,稳定性无法保证。
发明内容
本发明实施例提供一种代码自动化上线的方法及系统,实现了代码自动化上线处理,避免了现有技术的代码上线及代码回滚操作步骤均采用手工操作的繁琐非流程化的问题。实现了增加上线代码的可控性和稳定性、降低代码上线的故障率,实现了代码回滚。
为达上述目的,一方面,本发明实施例提供一种代码自动化上线的方法,包括:
请求接收单元通过其应用程序接口API自动接收用户代码上线请求,将接收的用户代码上线请求发送到逻辑处理单元;
逻辑处理单元自所述代码上线请求解析出构建源代码所需的开源软件平台内的项目名称,调用开源软件平台API采用构建源代码所需的项目名称构建源代码、以及将构建的源代码生成软件包,并记录此次生成的软件包版本信息;
逻辑处理单元自所述代码上线请求解析出代码所要上线的服务器IP地址;
逻辑处理单元按代码所要上线的服务器IP地址将软件包推送到对应服务器。
另一方面,本发明实施例提供一种代码自动化上线的系统,包括:
请求接收单元,用于通过其应用程序接口API自动接收用户代码上线请求,将接收的用户代码上线请求发送到逻辑处理单元;
逻辑处理单元,用于自所述代码上线请求解析出构建源代码所需的开源软件平台内的项目名称,调用开源软件平台API生成软件包,并记录软件包版本信息;自所述代码上线请求解析出代码所要上线的服务器IP地址;按代码所要上线的服务器IP地址将软件包推送到对应服务器;
开源软件平台,用于在逻辑处理单元的调用下,采用构建源代码所需的项目名称构建源代码、以及将构建的源代码生成软件包。
上述技术方案具有如下有益效果:在代码上线软件开发过程中,从接收代码构建请求、代码构建、代码推送、代码上线、分批回滚,都采用自动化处理,不需要人员的手工介入,实现了代码自动化上线处理,避免了现有技术的代码上线及代码回滚操作步骤均采用手工操作的繁琐非流程化的问题。实现了增加上线代码的可控性和稳定性、降低代码上线的故障率,实现了代码回滚。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例的代码自动化上线方法的流程图;
图2是本发明实施例的代码自动化上线系统的结构图;
图3是本发明实施例自动化代码自动上线及代码回滚的逻辑示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,结合本发明的实施例一,提供一种代码自动化上线的方法,包括:
S101:请求接收单元21通过其应用程序接口API自动接收用户代码上线请求,将接收的用户代码上线请求发送到逻辑处理单元22;
S102:逻辑处理单元22自所述代码上线请求解析出构建源代码所需的开源软件平台23内的项目名称,调用开源软件平台API采用构建源代码所需的项目名称构建源代码、以及将构建的源代码生成软件包,并记录此次生成的软件包版本信息;
S103:逻辑处理单元22自所述代码上线请求解析出代码所要上线的服务器IP地址;
S104:逻辑处理单元22按代码所要上线的服务器IP地址将软件包推送到对应服务器。
优选地,在逻辑处理单元22按代码所要上线的服务器IP地址将软件包推送到对应服务器之前,还包括:
S105:开源软件平台23将生成的软件包命名为带版本号的软件包名称,自动调用数据备份工具24的推送命令,通过数据备份工具24的推送命令将生成的软件包推送到数据备份工具24并保存;以及,
S106:逻辑处理单元22自数据备份工具24内拉取代码上线所对应的软件包,将拉取的软件包命名为不带版本号的软件包名称;
S107:记录此次上线的软件包版本信息到数据库25。
优选地,所述代码所要上线的服务器IP地址包括多个,所述代码自动化上线的方法还包括:
S108:逻辑处理单元22自所述代码上线请求解析出对代码所要上线的服务器IP地址的分组信息;其中,所述分组信息包括每一个服务器IP地址对应的组;
所述步骤104具体包括:
S1041:逻辑处理单元22根据所述分组信息,以组为单位将自数据备份工具24内拉取的软件包推送到第一组服务器IP地址对应的各服务器;
S1042:在接收到用户分组继续请求之后,逻辑处理单元22根据所述分组信息,以组为单位将自数据备份工具24内拉取的软件包推送到下一组服务器IP地址对应的各服务器。
优选地,还包括:
S109:逻辑处理单元22自所述代码上线请求解析出需要在代码上线的服务器上执行的命令;
所述代码自动化上线的方法,还包括:
S109:以组为单位将自数据备份工具24内拉取的软件包推送到任一组服务器IP地址对应的各服务器后,逻辑处理单元22即时调用远程命令管理工具26,通过远程命令管理工具26在该组的每台服务器上执行相应的命令;
S110:当该组的各服务器执行完成后,请求接收单元21通过其API自动接收所述用户分组继续请求,并将接收的用户分组继续请求发送给逻辑处理单元22。
优选地,包括:
S120:请求接收单元21通过其应用程序接口API自动接收用户软件包回滚请求,将接收的用户软件包回滚请求发送到逻辑处理单元22,所述用户软件包回滚请求包括所要回滚的带版本号的软件包名称、软件包回滚的服务器IP地址;
S130:逻辑处理单元22根据所要回滚的带版本号的软件包名称,自数据备份工具24内拉取所要回滚的软件包,将拉取的软件包命名为不带版本号的软件包名称;
S140:逻辑处理单元22按软件包回滚的服务器IP地址将自数据备份工具24内拉取的软件包推送到对应服务器。
优选地,所述用户软件包回滚请求还包括分组信息和需要在软件包回滚的服务器上执行的命令;
步骤140具体包括:
S140-1:逻辑处理单元22根据所述分组信息,以组为单位将自数据备份工具24内拉取的软件包推送到第一组软件包回滚的服务器IP地址对应的各服务器;即时调用远程命令管理工具26,通过远程命令管理工具26在该组的每台服务器上执行相应的命令;
S150:当该组的各服务器执行完成后,请求接收单元21通过其API自动接收所述用户分组继续请求,并将接收的用户分组继续请求发送给逻辑处理单元22;
S160:在接收到用户分组继续请求之后,逻辑处理单元22根据所述分组信息,以组为单位将自数据备份工具24内拉取的软件包推送到下一组软件包回滚的服务器IP地址对应的各服务器;即时调用远程命令管理工具26,通过远程命令管理工具26在该组的每台服务器上执行相应的命令;
S170:直至最后一组的各服务器执行完成,则软件包回滚完成并记录此次回滚的软件包版本信息到数据库25。
如图2所示,结合本发明的实施例二,还提供一种代码自动化上线的系统,包括:
请求接收单元21,用于通过其应用程序接口API自动接收用户代码上线请求,将接收的用户代码上线请求发送到逻辑处理单元22;
逻辑处理单元22,用于自所述代码上线请求解析出构建源代码所需的开源软件平台23内的项目名称,调用开源软件平台API生成软件包,并记录软件包版本信息;自所述代码上线请求解析出代码所要上线的服务器IP地址;按代码所要上线的服务器IP地址将软件包推送到对应服务器;
开源软件平台23,用于在逻辑处理单元22的调用下,采用构建源代码所需的项目名称构建源代码、以及将构建的源代码生成软件包。
优选地,还包括数据备份工具24和数据库25,其中:
开源软件平台23,还用于将生成的软件包命名为带版本号的软件包名称,自动调用数据备份工具24的推送命令,通过数据备份工具24的推送命令将生成的软件包推送到数据备份工具24;
数据备份工具24,用于接收开源软件平台23推送的软件包并保存;
所述逻辑处理单元22,还用于自数据备份工具24内拉取代码上线所对应的软件包,将拉取的软件包命名为不带版本号的软件包名称;并记录此次上线的软件包版本信息到数据库25。
优选地,所述代码所要上线的服务器IP地址包括多个;
所述逻辑处理单元22,还用于自所述代码上线请求解析出对代码所要上线的服务器IP地址的分组信息;其中,所述分组信息包括每一个服务器IP地址对应的组;根据所述分组信息,以组为单位将软件包推送到该自数据备份工具24内拉取的软件包推送到第一组服务器IP地址对应的各服务器;以及,在接收到用户分组继续请求之后,根据所述分组信息,以组为单位将自数据备份工具24内拉取的软件包推送到下一组服务器IP地址对应的各服务器。
优选地,还包括远程命令管理工具26,其中:
所述逻辑处理单元22,还用于自所述代码上线请求解析出需要在代码上线的服务器上执行的命令;
在以组为单位将自数据备份工具24内拉取的软件包推送到任一组服务器IP地址对应的各服务器后,即时调用远程命令管理工具26,通过远程命令管理工具26在该组的每台服务器上执行相应的命令;
远程命令管理工具26,用于在逻辑处理单元22的调用下,在该组的每台服务器上执行相应的命令;
所述请求接收单元21,还用于当该组的各服务器执行完成后,通过其API自动接收所述用户分组继续请求,并将接收的用户分组继续请求发送给逻辑处理单元。
优选地,包括:
所述请求接收单元21,还用于通过其应用程序接口API自动接收用户软件包回滚请求,将接收的用户软件包回滚请求发送到逻辑处理单元22,所述用户软件包回滚请求包括所要回滚的带版本号的软件包名称、软件包回滚的服务器IP地址;
所述逻辑处理单元22,还用于根据所要回滚的带版本号的软件包名称,自数据备份工具24内拉取所要回滚的软件包,将拉取的软件包命名为不带版本号的软件包名称;按软件回滚的服务器IP地址将自数据备份工具24内拉取的软件包推送到对应服务器。
优选地,所述用户软件包回滚请求还包括分组信息和需要在软件包回滚的服务器上执行的命令;
所述逻辑处理单元22,还用于根据所述分组信息,以组为单位将自数据备份工具24内拉取的软件包推送到第一组软件包回滚的服务器IP地址对应的各服务器;即时调用远程命令管理工具26,通过远程命令管理工具26在该组的每台服务器上执行相应的命令;
所述请求接收单元21,还用于当该组的各服务器执行完成后,通过其API自动接收所述用户分组继续请求,并将接收的用户分组继续请求发送给逻辑处理单元22;
所述逻辑处理单元22,还用于在接收到用户分组继续请求之后,根据所述分组信息,以组为单位将自数据备份工具24内拉取的软件包推送到下一组软件包回滚的服务器IP地址对应的各服务器;即时调用远程命令管理工具26,通过远程命令管理工具26在该组的每台服务器上执行相应的命令;直至最后一组的各服务器执行完成,则软件包回滚完成并记录此次回滚的软件包版本信息到数据库25。
本发明所取得的有益效果如下:
在代码上线软件开发过程中,从接收代码构建请求、代码构建、代码推送、远程执行命令、分批上线、分批回滚,都采用自动化处理,不需要人员的手工介入,实现了代码自动化上线处理,避免了现有技术的代码上线及代码回滚操作步骤均采用手工操作的繁琐非流程化的问题。
通过逻辑处理模块,将收代码构建请求、代码构建、代码推送、远程执行命令、分批上线、分批回滚串联起来、流程化,实现了增加上线代码的可控性和稳定性、降低代码上线的故障率,实现了代码回滚。还可分批次上线、进行远程执行命令。
下面结合具体的应用实例对本发明实施例上述技术方案进行详细说明,实施过程中没有介绍到的技术细节,可以参考前文的相关描述。
本发明为一种自动化代码打包、代码推送、远程执行命令及分批次代码上线代码回滚的方法,可应用于服务器,具体涉及:采用Rsync进行数据推送与拉取-Jenkins软件包构建源代码-Saltstack远程执行命令-分组推送-RestfulAPI,通过对这些技术的使用、二次开发及创新,实现一种自动化代码打包、代码推送、远程执行命令及分批次代码上线代码回滚的方法。
如附图3所示,对本发明的技术方案的详细阐述如下:
一、模块功能介绍:
1.Restful API(附图3的001),此处Restful相当于实施例二中的请求接收单元21:对外接收用户发送的代码上线、分组继续、代码回滚等HTTP请求,Restful是一种网络应用程序的设计风格和开发方式,Restful API是采用Restful风格的网络应用程序的API。
2.逻辑处理模块(附图3的002),此处逻辑处理模块相当于实施例二中的逻辑处理单元22:主要处理Restful API(附图3的001)发送过来的用户请求,用于逻辑处理、分组管理、软件包版本管理、调用Jenkins(附图3的003)接口进行源代码的构建、拉取与推送软件包、调用SaltAPI(附图3的005)执行远程命令等。
3.SaltAPI(附图3的003):使用python开发语言重新封装的访问Saltstack的应用程序接口。此处Saltstack相当于实施例二中的远程命令管理工具26。
二、处理流程:
1.Restful API(附图3的001)接收用户代码上线请求,请求中携带用户想要上线的服务器IP地址、分组信息、想要执行的命令及Jenkins(附图3的003)项目名称。
2.逻辑处理模块(附图3的002)调用Jenkins(相当于实施例二中的开源软件平台23,附图3的003)API,然后通过Jenkins根据构建源代码所需的Jenkins内的项目名称开始构建源代码,生成软件包package3,同时记录此次构建软件包的版本信息。即:版本3,可将版本号作为名称的一部分。
3.Jenkins(附图3的003)构建完成的软件包,如果不能推送到代码扫要上线的服务器,那么就会自动调用rsync(推送)命令推送此次构建完成的软件包package3到Rsync(附图3的004)服务上面。备注:此Rsync(相当于实施例二中的数据备份工具24)服务同时作为一个软件包仓库,保留所有已经构建完成的软件包,供代码上线及回滚使用;以及之后回滚软件也都记录在Rsync内。
4.逻辑处理模块(附图3的002)接收到Jenkins(附图3的003)已经构建完成软件包并且成功推送软件包到Rsync(附图3的004)后,开始拉取对应的软件包到逻辑处理模块(附图3的002)所在的服务器上面,并重命名为不带版本号的软件包名称,使得上线的软件包与服务运行的软件包具有相同的名称。即:把软件包package3拉取到逻辑处理模块所在的服务器上面,并重命名为package。
5.逻辑处理模块(附图3的002)记录此次上线的版本到数据库(相当于实施例二中的数据库25,附图3的006)中。
6.逻辑处理模块(附图3的002),根据用户上线时提供的服务器IP地址和分组信息,对服务器IP地址进行分组,然后按照所分的组进行软件包的分组推送。即:把Server01(附图3的007)、Server02(附图3的008)、Server03(附图3的000)和Server04(附图3的010)分成两组,先进行第一组的上线。也就是把逻辑处理模块(附图3的002)上的软件包package并行推送到Server01(附图3的007)和Server02(附图3的008)上面。
7.逻辑处理模块(附图3的002),软件包推送完成后,会调用SaltAPI(附图3的005)服务(远程命令执行单元),根据用户上线时提供的要执行的命令,对已经上线的服务器执行指定对应命令。比如:解压代码包、重启业务程序等。
8.当一组服务器执行完成,Restful API(附图3的001)会接收用户分组继续请求,再次重复第6步和第7步,完成整个代码上线过程。也就是采取分组更新的方式,分组更新指的是在代码更新或者批量执行远程命令的时候采用分组的形式进行更新,避免全部更新导致业务的不可用。
9.回滚软件包
A)数据库(附图3的006)已经记录了用户曾经上线过的所有软件包版本,同时Rsync(附图3的004)服务器中存储着所有曾经构建成功的软件包。
B)Restful API(附图3的001)接收用户发送的回滚请求,请求中有对应的要回滚的软件包版本、服务器IP地址、想要执行的命令及分组信息。逻辑处理模块(附图3的002)会去Rsync(附图3的004)中拉取对应版本的软件包,到逻辑处理模块(附图3的002)所在的服务器上面。比如:用户想回滚到package2,会直接拉取package2到逻辑处理模块,并重命名为package。
C)之后再次重复第6步第7步第8步。
D)记录回滚的版本信息到数据库(附图3的006)中,最终完成软件包的回滚。
本发明所取得的有益效果如下:
在代码上线软件开发过程中,从接收代码构建请求、代码构建、代码推送、远程执行命令、分批上线、分批回滚,都采用自动化处理,不需要人员的手工介入,实现了代码自动化上线处理,避免了现有技术的代码上线及代码回滚操作步骤均采用手工操作的繁琐非流程化的问题。
通过逻辑处理模块,将收代码构建请求、代码构建、代码推送、远程执行命令、分批上线、分批回滚串联起来、流程化,实现了增加上线代码的可控性和稳定性、降低代码上线的故障率,实现了代码回滚。还可分批次上线、进行远程执行命令。
应该明白,公开的过程中的步骤的特定顺序或层次是示例性方法的实例。基于设计偏好,应该理解,过程中的步骤的特定顺序或层次可以在不脱离本公开的保护范围的情况下得到重新安排。所附的方法权利要求以示例性的顺序给出了各种步骤的要素,并且不是要限于所述的特定顺序或层次。
在上述的详细描述中,各种特征一起组合在单个的实施方案中,以简化本公开。不应该将这种公开方法解释为反映了这样的意图,即,所要求保护的主题的实施方案需要比清楚地在每个权利要求中所陈述的特征更多的特征。相反,如所附的权利要求书所反映的那样,本发明处于比所公开的单个实施方案的全部特征少的状态。因此,所附的权利要求书特此清楚地被并入详细描述中,其中每项权利要求独自作为本发明单独的优选实施方案。
为使本领域内的任何技术人员能够实现或者使用本发明,上面对所公开实施例进行了描述。对于本领域技术人员来说;这些实施例的各种修改方式都是显而易见的,并且本文定义的一般原理也可以在不脱离本公开的精神和保护范围的基础上适用于其它实施例。因此,本公开并不限于本文给出的实施例,而是与本申请公开的原理和新颖性特征的最广范围相一致。
上文的描述包括一个或多个实施例的举例。当然,为了描述上述实施例而描述部件或方法的所有可能的结合是不可能的,但是本领域普通技术人员应该认识到,各个实施例可以做进一步的组合和排列。因此,本文中描述的实施例旨在涵盖落入所附权利要求书的保护范围内的所有这样的改变、修改和变型。此外,就说明书或权利要求书中使用的术语“包含”,该词的涵盖方式类似于术语“包括”,就如同“包括,”在权利要求中用作衔接词所解释的那样。此外,使用在权利要求书的说明书中的任何一个术语“或者”是要表示“非排它性的或者”。
本领域技术人员还可以了解到本发明实施例列出的各种说明性逻辑块(illustrative logical block),单元,和步骤可以通过电子硬件、电脑软件,或两者的结合进行实现。为清楚展示硬件和软件的可替换性(interchangeability),上述的各种说明性部件(illustrative components),单元和步骤已经通用地描述了它们的功能。这样的功能是通过硬件还是软件来实现取决于特定的应用和整个系统的设计要求。本领域技术人员可以对于每种特定的应用,可以使用各种方法实现所述的功能,但这种实现不应被理解为超出本发明实施例保护的范围。
本发明实施例中所描述的各种说明性的逻辑块,或单元都可以通过通用处理器,数字信号处理器,专用集成电路(ASIC),现场可编程门阵列或其它可编程逻辑装置,离散门或晶体管逻辑,离散硬件部件,或上述任何组合的设计来实现或操作所描述的功能。通用处理器可以为微处理器,可选地,该通用处理器也可以为任何传统的处理器、控制器、微控制器或状态机。处理器也可以通过计算装置的组合来实现,例如数字信号处理器和微处理器,多个微处理器,一个或多个微处理器联合一个数字信号处理器核,或任何其它类似的配置来实现。
本发明实施例中所描述的方法或算法的步骤可以直接嵌入硬件、处理器执行的软件模块、或者这两者的结合。软件模块可以存储于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动磁盘、CD-ROM或本领域中其它任意形式的存储媒介中。示例性地,存储媒介可以与处理器连接,以使得处理器可以从存储媒介中读取信息,并可以向存储媒介存写信息。可选地,存储媒介还可以集成到处理器中。处理器和存储媒介可以设置于ASIC中,ASIC可以设置于用户终端中。可选地,处理器和存储媒介也可以设置于用户终端中的不同的部件中。
在一个或多个示例性的设计中,本发明实施例所描述的上述功能可以在硬件、软件、固件或这三者的任意组合来实现。如果在软件中实现,这些功能可以存储与电脑可读的媒介上,或以一个或多个指令或代码形式传输于电脑可读的媒介上。电脑可读媒介包括电脑存储媒介和便于使得让电脑程序从一个地方转移到其它地方的通信媒介。存储媒介可以是任何通用或特殊电脑可以接入访问的可用媒体。例如,这样的电脑可读媒体可以包括但不限于RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁性存储装置,或其它任何可以用于承载或存储以指令或数据结构和其它可被通用或特殊电脑、或通用或特殊处理器读取形式的程序代码的媒介。此外,任何连接都可以被适当地定义为电脑可读媒介,例如,如果软件是从一个网站站点、服务器或其它远程资源通过一个同轴电缆、光纤电缆、双绞线、数字用户线(DSL)或以例如红外、无线和微波等无线方式传输的也被包含在所定义的电脑可读媒介中。所述的碟片(disk)和磁盘(disc)包括压缩磁盘、镭射盘、光盘、DVD、软盘和蓝光光盘,磁盘通常以磁性复制数据,而碟片通常以激光进行光学复制数据。上述的组合也可以包含在电脑可读媒介中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (12)
1.一种代码自动化上线的方法,其特征在于,包括:
请求接收单元通过其应用程序接口API自动接收用户代码上线请求,将接收的用户代码上线请求发送到逻辑处理单元;
逻辑处理单元自所述代码上线请求解析出构建源代码所需的开源软件平台内的项目名称,调用开源软件平台API采用构建源代码所需的项目名称构建源代码、以及将构建的源代码生成软件包,并记录此次生成的软件包版本信息;
逻辑处理单元自所述代码上线请求解析出代码所要上线的服务器IP地址;
逻辑处理单元按代码所要上线的服务器IP地址将软件包推送到对应服务器。
2.根据权利要求1所述的代码自动化上线的方法,其特征在于,在逻辑处理单元按代码所要上线的服务器IP地址将软件包推送到对应服务器之前,还包括:
开源软件平台将生成的软件包命名为带版本号的软件包名称,自动调用数据备份工具的推送命令,通过数据备份工具的推送命令将生成的软件包推送到数据备份工具并保存;以及,
逻辑处理单元自数据备份工具内拉取代码上线所对应的软件包,将拉取的软件包命名为不带版本号的软件包名称;并
记录此次上线的软件包版本信息到数据库。
3.根据权利要求2所述的代码自动化上线的方法,其特征在于,所述代码所要上线的服务器IP地址包括多个,所述代码自动化上线的方法还包括:
逻辑处理单元自所述代码上线请求解析出对代码所要上线的服务器IP地址的分组信息;其中,所述分组信息包括每一个服务器IP地址对应的组;
所述逻辑处理单元按代码所要上线的服务器IP地址将软件包推送到对应服务器,具体包括:
逻辑处理单元根据所述分组信息,以组为单位将自数据备份工具内拉取的软件包推送到第一组服务器IP地址对应的各服务器;
在接收到用户分组继续请求之后,逻辑处理单元根据所述分组信息,以组为单位将自数据备份工具内拉取的软件包推送到下一组服务器IP地址对应的各服务器。
4.根据权利要求3所述的代码自动化上线的方法,其特征在于,还包括:
逻辑处理单元自所述代码上线请求解析出需要在代码上线的服务器上执行的命令;
所述代码自动化上线的方法,还包括:
以组为单位将自数据备份工具内拉取的软件包推送到任一组服务器IP地址对应的各服务器后,逻辑处理单元即时调用远程命令管理工具,通过远程命令管理工具在该组的每台服务器上执行相应的命令;
当该组的各服务器执行完成后,请求接收单元通过其API自动接收所述用户分组继续请求,并将接收的用户分组继续请求发送给逻辑处理单元。
5.根据权利要求2所述的代码自动化上线的方法,其特征在于,包括:
请求接收单元通过其应用程序接口API自动接收用户软件包回滚请求,将接收的用户软件包回滚请求发送到逻辑处理单元,所述用户软件包回滚请求包括所要回滚的带版本号的软件包名称、软件包回滚的服务器IP地址;
逻辑处理单元根据所要回滚的带版本号的软件包名称,自数据备份工具内拉取所要回滚的软件包,将拉取的软件包命名为不带版本号的软件包名称;
逻辑处理单元按软件包回滚的服务器IP地址将自数据备份工具内拉取的软件包推送到对应服务器。
6.根据权利要求5所述的代码自动化上线的方法,其特征在于,所述用户软件包回滚请求还包括分组信息和需要在软件包回滚的服务器上执行的命令;
逻辑处理单元按软件包回滚的服务器IP地址将自数据备份工具内拉取的软件包推送到对应服务器,具体包括:
逻辑处理单元根据所述分组信息,以组为单位将自数据备份工具内拉取的软件包推送到第一组软件包回滚的服务器IP地址对应的各服务器;即时调用远程命令管理工具,通过远程命令管理工具在该组的每台服务器上执行相应的命令;
当该组的各服务器执行完成后,请求接收单元通过其API自动接收所述用户分组继续请求,并将接收的用户分组继续请求发送给逻辑处理单元;
在接收到用户分组继续请求之后,逻辑处理单元根据所述分组信息,以组为单位将自数据备份工具内拉取的软件包推送到下一组软件包回滚的服务器IP地址对应的各服务器;即时调用远程命令管理工具,通过远程命令管理工具在该组的每台服务器上执行相应的命令;
直至最后一组的各服务器执行完成,则软件包回滚完成并记录此次回滚的软件包版本信息到数据库。
7.一种代码自动化上线的系统,其特征在于,包括:
请求接收单元,用于通过其应用程序接口API自动接收用户代码上线请求,将接收的用户代码上线请求发送到逻辑处理单元;
逻辑处理单元,用于自所述代码上线请求解析出构建源代码所需的开源软件平台内的项目名称,调用开源软件平台API生成软件包,并记录软件包版本信息;自所述代码上线请求解析出代码所要上线的服务器IP地址;按代码所要上线的服务器IP地址将软件包推送到对应服务器;
开源软件平台,用于在逻辑处理单元的调用下,采用构建源代码所需的项目名称构建源代码、以及将构建的源代码生成软件包。
8.根据权利要求7所述的代码自动化上线的系统,其特征在于,还包括数据备份工具和数据库,其中:
开源软件平台,还用于将生成的软件包命名为带版本号的软件包名称,自动调用数据备份工具的推送命令,通过数据备份工具的推送命令将生成的软件包推送到数据备份工具;
数据备份工具,用于接收开源软件平台推送的软件包并保存;
所述逻辑处理单元,还用于自数据备份工具内拉取代码上线所对应的软件包,将拉取的软件包命名为不带版本号的软件包名称;并记录此次上线的软件包版本信息到数据库。
9.根据权利要求8所述的代码自动化上线的系统,其特征在于,所述代码所要上线的服务器IP地址包括多个;
所述逻辑处理单元,还用于自所述代码上线请求解析出对代码所要上线的服务器IP地址的分组信息;其中,所述分组信息包括每一个服务器IP地址对应的组;根据所述分组信息,以组为单位将软件包推送到该自数据备份工具内拉取的软件包推送到第一组服务器IP地址对应的各服务器;以及,在接收到用户分组继续请求之后,根据所述分组信息,以组为单位将自数据备份工具内拉取的软件包推送到下一组服务器IP地址对应的各服务器。
10.根据权利要求9所述的代码自动化上线的系统,其特征在于,还包括远程命令管理工具,其中:
所述逻辑处理单元,还用于自所述代码上线请求解析出需要在代码上线的服务器上执行的命令;在以组为单位将自数据备份工具内拉取的软件包推送到任一组服务器IP地址对应的各服务器后,即时调用远程命令管理工具,通过远程命令管理工具在该组的每台服务器上执行相应的命令;
远程命令管理工具,用于在逻辑处理单元的调用下,在该组的每台服务器上执行相应的命令;
所述请求接收单元,还用于当该组的各服务器执行完成后,通过其API自动接收所述用户分组继续请求,并将接收的用户分组继续请求发送给逻辑处理单元。
11.根据权利要求8所述的代码自动化上线的系统,其特征在于,包括:
所述请求接收单元,还用于通过其应用程序接口API自动接收用户软件包回滚请求,将接收的用户软件包回滚请求发送到逻辑处理单元,所述用户软件包回滚请求包括所要回滚的带版本号的软件包名称、软件包回滚的服务器IP地址;
所述逻辑处理单元,还用于根据所要回滚的带版本号的软件包名称,自数据备份工具内拉取所要回滚的软件包,将拉取的软件包命名为不带版本号的软件包名称;按软件回滚的服务器IP地址将自数据备份工具内拉取的软件包推送到对应服务器。
12.根据权利要求11所述的代码自动化上线的系统,其特征在于,所述用户软件包回滚请求还包括分组信息和需要在软件包回滚的服务器上执行的命令;
所述逻辑处理单元,还用于根据所述分组信息,以组为单位将自数据备份工具内拉取的软件包推送到第一组软件包回滚的服务器IP地址对应的各服务器;即时调用远程命令管理工具,通过远程命令管理工具在该组的每台服务器上执行相应的命令;
所述请求接收单元,还用于当该组的各服务器执行完成后,通过其API自动接收所述用户分组继续请求,并将接收的用户分组继续请求发送给逻辑处理单元;
所述逻辑处理单元,还用于在接收到用户分组继续请求之后,根据所述分组信息,以组为单位将自数据备份工具内拉取的软件包推送到下一组软件包回滚的服务器IP地址对应的各服务器;即时调用远程命令管理工具,通过远程命令管理工具在该组的每台服务器上执行相应的命令;直至最后一组的各服务器执行完成,则软件包回滚完成并记录此次回滚的软件包版本信息到数据库。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010642432.8A CN111984231B (zh) | 2020-07-06 | 2020-07-06 | 一种代码自动化上线的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010642432.8A CN111984231B (zh) | 2020-07-06 | 2020-07-06 | 一种代码自动化上线的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111984231A true CN111984231A (zh) | 2020-11-24 |
CN111984231B CN111984231B (zh) | 2024-05-07 |
Family
ID=73439074
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010642432.8A Active CN111984231B (zh) | 2020-07-06 | 2020-07-06 | 一种代码自动化上线的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111984231B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7506053B1 (en) * | 2001-10-17 | 2009-03-17 | Cisco Technology, Inc. | Software distribution system and method |
CN103955361A (zh) * | 2014-03-28 | 2014-07-30 | 世纪禾光科技发展(北京)有限公司 | 一种web前端代码自动化编译构建的模块化开发和发布系统 |
CN105373401A (zh) * | 2015-10-27 | 2016-03-02 | 上海钢富电子商务有限公司 | 软件包自动发布方法和系统 |
US9606900B1 (en) * | 2016-03-24 | 2017-03-28 | Fmr Llc | Intelligent automation of computer software test scripts and code requirements |
US20200004529A1 (en) * | 2018-06-29 | 2020-01-02 | Betsol LLC | Systems, methods, and apparatus for automating software development steps |
CN110908670A (zh) * | 2019-11-20 | 2020-03-24 | 天津华云软件有限公司 | 一种自动发布服务的方法及装置 |
CN110908708A (zh) * | 2019-12-04 | 2020-03-24 | 天津亿玛特智能科技有限公司 | 一种代码发布方法、装置和系统 |
-
2020
- 2020-07-06 CN CN202010642432.8A patent/CN111984231B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7506053B1 (en) * | 2001-10-17 | 2009-03-17 | Cisco Technology, Inc. | Software distribution system and method |
CN103955361A (zh) * | 2014-03-28 | 2014-07-30 | 世纪禾光科技发展(北京)有限公司 | 一种web前端代码自动化编译构建的模块化开发和发布系统 |
CN105373401A (zh) * | 2015-10-27 | 2016-03-02 | 上海钢富电子商务有限公司 | 软件包自动发布方法和系统 |
US9606900B1 (en) * | 2016-03-24 | 2017-03-28 | Fmr Llc | Intelligent automation of computer software test scripts and code requirements |
US20200004529A1 (en) * | 2018-06-29 | 2020-01-02 | Betsol LLC | Systems, methods, and apparatus for automating software development steps |
CN110908670A (zh) * | 2019-11-20 | 2020-03-24 | 天津华云软件有限公司 | 一种自动发布服务的方法及装置 |
CN110908708A (zh) * | 2019-12-04 | 2020-03-24 | 天津亿玛特智能科技有限公司 | 一种代码发布方法、装置和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111984231B (zh) | 2024-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8694465B2 (en) | System and method for context sensitive mobile data and software update | |
US7366460B2 (en) | System and method for mobile data update | |
CN111752957B (zh) | 一种基于缓存化的销售锁定方法及系统 | |
US7917651B2 (en) | Apparatus, system, and method for asynchronous complex inbound transactions from SAP applications using service oriented architecture | |
US7016890B2 (en) | Database system, method for forming replica of database, and computer-readable recording medium that records database replica forming program | |
CN107015855B (zh) | 一种支持时间策略的异步服务集中调度方法及装置 | |
US11816163B2 (en) | Systems and methods for improved transactional mainframes | |
US20110238781A1 (en) | Automated transfer of bulk data including workload management operating statistics | |
CN112596956B (zh) | 一种文件系统管理方法、装置及相关组件 | |
CN111984231A (zh) | 一种代码自动化上线的方法及系统 | |
CN110069505B (zh) | 离线数据处理方法及离线数据更新装置 | |
CN111311403A (zh) | 一种策略交易引擎系统 | |
WO2022206054A1 (zh) | 一种物料增量处理方法、装置、电子设备和计算机存储介质 | |
CN112231105B (zh) | 基于区块链的区块写入方法及系统 | |
CN110851411B (zh) | 一种基于文件同步的dns动态变更系统及方法 | |
CN112232911A (zh) | 一种权益订购异步处理方法及系统 | |
CN110502460B (zh) | 数据处理的方法和节点 | |
CN111861746A (zh) | 一种处理交易数据的方法和装置 | |
CN113810463A (zh) | 一种下发cdn服务器配置方法及系统 | |
CN115114052B (zh) | 一种智能提供数据库微服务的方法和装置 | |
JP2005526328A (ja) | データの自動インポート | |
CN109992212B (zh) | 一种数据写入方法和一种数据读取方法 | |
CN114116732B (zh) | 处理事务的方法、装置、存储装置以及服务器 | |
CN116433379A (zh) | 交易信息处理方法及装置 | |
CN117435236A (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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20230419 Address after: Room 501-502, 5/F, Sina Headquarters Scientific Research Building, Block N-1 and N-2, Zhongguancun Software Park, Dongbei Wangxi Road, Haidian District, Beijing, 100193 Applicant after: Sina Technology (China) Co.,Ltd. Address before: 100193 7th floor, scientific research building, Sina headquarters, plot n-1, n-2, Zhongguancun Software Park, Dongbei Wangxi Road, Haidian District, Beijing, 100193 Applicant before: Sina.com Technology (China) Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |