一种服务器自动化持续集成与部署的方法及系统技术方案

技术编号:36709649 阅读:19 留言:0更新日期:2023-03-01 09:35
本发明专利技术公开了一种服务器自动化持续集成与部署的方法及系统,包括如下步骤:S1.开发人员完成编码后,使用当前软件依赖的工具进行构建并形成独立的打包文件,并提取安装命令;S2.在客户方企业需要部署的服务器上,上传软件的CD脚本;S3.对CD程序运行进行配置,通过参数化的指令输入,指定步骤S1里的打包文件位置和安装命令;S4.使用当前服务器操作系统本身的命令运行CD脚本,将自动拉取文件并执行部署目标软件的安装命令,CD脚本将自动完成目标软件需要程序的安装并运行目标软件;S5.CD程序将持续监听、运行,每隔一段时间自动检测目标文件的哈希值,并与当前已经部署的文件的哈希值进行比对,若检测到文件更改便再次执行步骤S4以完成持续集成。完成持续集成。完成持续集成。

【技术实现步骤摘要】
一种服务器自动化持续集成与部署的方法及系统


[0001]本专利技术涉及计算机软件开发领域,尤其涉及一种服务器自动化持续集成与部署的方法及系统。

技术介绍

[0002]软件的开发过程包括:需求、设计、编码、构建、测试、发布、运营。每个环节之间都需要进行交接,由不同的团队相互配合来实现,在软件需求快速变化的今天,为了加速软件的开发过程并保证各个过程的执行准确性,软件的自动化开发过程分为四大步骤:持续集成(ContinuousIntegration,以下简称CI)

持续交付

持续部署(ContinuousDeployment,以下简称CD)

持续运营与监控。
[0003]目前常用的方案之一,是使用Jenkins(一个开源的、提供友好操作界面的CI工具)。一般来说,开发人员向代码库提交了新代码之后,自动完成代码库管理、自动进行构建Build、自动化打包、自动化测试并自动软件发布。接下来,CD部分,就是就是把软件产品部署到客户现场。对于Jenkins来说,需要与企业内部的各个系统(如代码管理平台、测试平台、服务器管理平台等)深度配合关联使用。在实际场景的软件部署上,还存在很多例外情况,如对于购买第三方应用的企业,或需要私有化部署,或依赖企业本身内网才能访问各个系统。现有的工具无法很好或简便地在各个企业之间协同工作。
[0004]传统的部署方式如图1所示,是由其他管理服务器来控制部署服务器,这种方式受限于网络环境等,需要部署的服务器都在一家企业下统一管理,对于互联网产品提供方和使用方来说,在私有化部署的条件下,无法将服务器交由外部人员统一管理。同时,当一家第三方企业向许多企业提供同一套软件产品时,对于每家企业的软件的日常维护、使用、升级等也会消耗大量重复的人力。本专利技术主要针对以上问题,提出一种服务器自动化持续集成与部署的方案,以解决实际常用场景中无法将服务器交由外部人员统一管理的问题,同时缩短软件交付过程中重复的人力,降低持续集成/交付应用门槛,提升版本交付效率,降低运维成本。

技术实现思路

[0005]针对现有技术存在的问题,本专利技术的目的在于实现一种服务器自动化持续集成与部署的方法及系统,通过在软件使用方企业的部署服务器上安装操作系统级脚本的方案,使得软件在持续集成/部署的同时,不受限与复杂的企业内部的网络环境,不需要额外的服务器配置,不需要合作企业之间安装额外的管理程序,同时将大量的重复性人力劳动由程序自动化,提升效率、降低成本。
[0006]为实现上述目的,本专利技术提供一种服务器自动化持续集成与部署的方法,所述方法包括如下步骤:
[0007]S1.开发人员完成编码后,使用当前软件依赖的工具进行构建并形成独立的打包文件,并提取安装命令,这一部分在第三方企业内完成;
[0008]S2.在客户方企业需要部署的服务器上,上传软件的CD脚本;
[0009]S3.对CD程序运行进行配置,通过参数化的指令输入,指定步骤S1里的打包文件位置和安装命令。CD程序运行时,将根据配置的打包文件位置和安装命令,拿取S1中的打包文件,并对应得执行安装命令;
[0010]S4.使用当前服务器操作系统本身的命令运行CD脚本,将根据步骤S3中的打包文件位置自动拉取文件并执行部署目标软件的安装命令,CD脚本将自动按照预定的一系列命令开始执行,完成目标软件需要的安装、自动配置目标软件需要的系统环境并最终运行目标软件;
[0011]S5.CD程序将持续运行并监听,每隔一段时间(根据步骤S3中对CD程序配置的间隔时间)自动检测目标文件的哈希值,并与当前已经部署的文件的哈希值进行比对,若检测到文件更改便再次执行步骤S4以完成持续集成。
[0012]进一步,步骤S2中,所述CD脚本将根据配置,获取打包文件的网络位置,并基于该位置,下载打包文件,存放到当前服务器的指定目录后,执行一系列的解压缩、创建目录并存放、生成备份文件等常规部署任务。
[0013]进一步,步骤S3中,若企业仅限内部网络访问,则提供在内网环境下的文件位置,若不限,则提供公共网络的文件位置。文件位置使用的都是一个http协议的网络链接。
[0014]进一步,所述CD脚本需要在部署服务器上执行`shscript

name.sh`命令,即可启动并执行脚本。
[0015]进一步,步骤S5中,远程操作部署时,通过发送http请求到服务器,以触发脚本执行。
[0016]进一步,检测文件哈希值的方法,是利用http协议中的etag字段,此字段的功能等同于文件的哈希值,根据提供的网络文件的位置,发起一个http请求,通过解析http网络请求头中的etag字段以获取到远程文件的信息,提取当前部署文件的哈希值,进行比对,如果不一致,则说明远程文件已经更新,然后运行部署命令;
[0017]脚本自动持续监听,是调用的操作系统层级的定时任务的方法,执行命令`crontab

e`,打开一个系统文件,添加脚本和执行的时间,而后将每隔一段时间自动执行一次上述命令。
[0018]进一步,客户方企业需要补助的服务器为一台或多台运行着Linux操作系统的服务器,通过对应的系统管理工具“命令行工具”上传软件的CD脚本。
[0019]进一步,监听方法为通过监听当前服务器指定的某个网络端口,当该网络端口收到网络流量时,触发相对应的程序。
[0020]进一步,打包文件为不同的开发语言、工具对应不同的命令、方法,构建完成的最终产物。
[0021]另一方面,本专利技术提供一种服务器自动化持续集成与部署的系统,所述系统用于实现根据本专利技术所述的服务器自动化持续集成与部署的方法。
[0022]本技术的有益效果在于:本方案是由部署服务器主动获取并部署需要的软件,部署服务器始终在企业本部的管理下,同时允许外部人员掌控部署的能力和便利性;本专利技术通过在软件使用方企业的部署服务器上安装操作系统级脚本的方案,使得软件在持续集成/部署的同时,不受限与复杂的企业内部的网络环境,不需要额外的服务器配置,不需要
合作企业之间安装额外的管理程序,也不需要第三方企业消耗大量的人力来做重复性的软件运维、升级工作。实现一种自动化的、低成本的、私有化产品部署方案。
附图说明
[0023]图1示出了现有技术中传统部署方式的示意图;
[0024]图2示出了根据本专利技术实施例一种服务器自动化持续集成与部署方法及系统的部署方式示意图;
[0025]图3示出了根据本专利技术实施例一种服务器自动化持续集成与部署方法及系统的流程示意图。
具体实施方式
[0026]下面将结合附图,对本专利技术的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0027]在本专利技术的描述本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种服务器自动化持续集成与部署的方法,其特征在于,所述方法包括如下步骤:S1.开发人员完成编码后,使用当前软件依赖的工具进行构建并形成独立的打包文件,并提取安装命令;这一部分在第三方企业内完成;S2.在客户方企业需要部署的服务器上,上传软件的CD脚本;S3.对CD程序运行进行配置,通过参数化的指令输入,指定步骤S1里的打包文件位置和安装命令,CD程序运行时,将根据配置的打包文件位置和安装命令,拿取S1中的打包文件,并对应得执行安装命令;S4.使用当前服务器操作系统本身的命令运行CD脚本,将根据步骤S3中的打包文件位置自动拉取文件并执行部署目标软件的安装命令,CD脚本将自动按照预定的一系列命令开始执行,完成目标软件需要的安装、自动配置目标软件需要的系统环境并最终运行目标软件;S5.CD程序将持续运行并监听,每隔设定的间隔时间自动检测目标文件的哈希值,并与当前已经部署的文件的哈希值进行比对,若检测到文件更改便再次执行步骤S4以完成持续集成。2.根据权利要求1所述的一种服务器自动化持续集成与部署的方法,其特征在于,步骤S2中,所述CD脚本将根据配置,获取打包文件的网络位置,并基于该位置,下载打包文件,存放到当前服务器的指定目录后,执行一系列的解压缩、创建目录并存放、生成备份文件等常规部署任务。3.根据权利要求1或2所述的一种服务器自动化持续集成与部署的方法,其特征在于,步骤S3中,若企业仅限内部网络访问,则提供在内网环境下的文件位置,若不限,则提供公共网络的文件位置,文件位置使用的是http协议的网络链接。4.根据权利要求3所述的一种服务器自动化持续集成与部署的方法,其特征在于,所述CD脚本需要在部署服务器上执行`sh script

name.sh`命令,即可启动并执行脚...

【专利技术属性】
技术研发人员:陈勇叶玎玎骆晓广张金银
申请(专利权)人:杭州比智科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1