一种云环境下快速克隆软件环境的平台及方法技术

技术编号:26258975 阅读:24 留言:0更新日期:2020-11-06 17:52
本发明专利技术涉及计算机技术领域,公开了一种云环境下快速克隆软件环境的平台及方法,基于Kuberntes云环境下,其特征在于,包括了服务端server、控制端patrol、流程执行端process和插件端plugin;本发明专利技术将软件项目从已有软件部署基础上重新部署一套软件环境,整个进行过程去掉重复操作,去除搭建重复新环境的运维投入,降低运维人员的投入成本;通过软硬件资源有效利用,从项目开发、测试、生产阶段缩短交付周期,促进软件项目每个环境的效率从而提高项目研发成本,可以发布数量级的服务应用,并能正常运行服务,从而支撑数量级的应用服务发布和运维以解决背景技术提到的运维瓶颈。

【技术实现步骤摘要】
一种云环境下快速克隆软件环境的平台及方法
本专利技术涉及计算机
,特别是一种云环境下快速克隆软件环境的平台及方法。
技术介绍
kuberntes,简称K8s,是用8代替8个字符“ubernete”而成的缩写。是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kuberntes的目标是让部署容器化的应用简单并且高效(powerful),Kuberntes提供了应用部署,规划,更新,维护的一种机制。Kuberntes在某种程度上让系统环境与应用一一对应,并且达到在测试、开发、生产环境从基础系统和应用高度一致。Kuberntes使容器最大优势是可以复用,通过不断优化容器最终形成一个镜像可以无限克隆到任意一个环境。互联网发展迭代快速,为满足复杂的应用架构场景微服务的架构越来越普及,即将应用服务实现高内聚低耦合,拆分越来越细,实现自由组合及服务编排,从而构建业务中台、数据中台,但同时,复杂的架构设计也带来了运维和软件发布层面的成本和复杂度,使用传统的服务器、虚拟主机、云主机已经无法支撑频繁的微服务发布,一般的企业级应用所需要的服务从几十个到上百个不等,使用传统方式从代码到发布运行的过程将是漫长、复杂、配置易错及低效率的,随着数量级应用服务的增长,运维成本成正比例增长,交付周期漫长而且不现实,这将会复杂架构的运维瓶颈,本专利技术本着将数量级的应用从已有的自动化部署平台快速克隆过程,从而,去除搭建重复新环境运维投入。
技术实现思路
本专利技术的目的在于提供一种云环境下快速克隆软件环境的平台及方法,将软件项目从已有软件部署基础上重新部署一套软件环境,整个进行过程去掉重复操作,去除搭建重复新环境的运维投入,降低运维人员的投入成本。为实现上述技术目的,达到上述技术效果,本专利技术公开了一种云环境下快速克隆软件环境的平台,基于Kuberntes云环境下,包括了服务端server、控制端patrol、流程执行端process和插件端plugin,服务端server负责配置软件项目对应的gitlab地址、账号信息、上传项目初始化数据库脚本,构建软件环境,并向控制端patrol下达快速克隆请求指令,控制端patrol负责实现用户使用交互,在收到项目快速克隆请求指令后通过复制初始化数据库中已有的kuberntes部署好的namespace的配置信息和调用插件端plugin,快速克隆出一个新的namespace;并通过调用流程执行端process执行项目的软件环境发布。其中,服务端server部署有Gitlab、Docker、Maven、NodeJs、Registry、Kuberntes、Matrics-Server、NFS及数据MySQL服务,Kuberntes中在同一个namespace下拥有唯一应用别名,应用别名作为环境变量,通过配置的项目gitlab地址、初始化数据库,项目之间使用Docker的环境变量,用应用别名来取代原传统方式的固定ip配置,使得应用之间的相互访问无状态化。即自动化平台每启动一个应用都将IP绑定到固定的应用别名,别名作为环境变量。应用之间的数据交换地址都采用固定的应用别名。其中,插件端plugin包含Git、Maven、Docker、Kuberntes、Nfs、Matrics-Server服务api调用;插件端plugin使用Gitapi通过配置的gitlab地址抓取软件项目的代码、编译、打包、制作镜像、上传镜像至镜像仓库及发布服务到Kuberntes和Docker的集群中。其中,流程执行端process负责将从软件项目的代码抓取到发布应用的多种流程编排并触发执行。优选的,Gitlab用于保存开发人员的源代码的日常管理、版本迭代、分支管理及代码存储。优选的,Maven管理java语言的依赖包关系,分析源代码的第三方包依赖情况分析及本地仓库、第三方仓库和中央仓库的包存储和下载。优选的,Matrics-Server基于Docker实例运行,采集集群服务的CPU、内存和硬盘数据,所述MySQL服务存储源代码地址、应用配置信息、镜像数据信息、资源分配信息。一种云环境下快速克隆软件环境的方法,具体方法步骤如下:S1:搭建服务端server,配置Gitlab、Docker、Maven、NodeJs、Registry、Kuberntes、Matrics-Server、NFS及数据MySQL服务;S2:搭建部署控制端patrol、流程执行端process、插件端plugin;S3:服务端server在已有的kuberntes部署好的namespace执行快速克隆操作,并向控制端patrol下达快速克隆请求指令;S4:控制端patrol收到快速克隆请求指令后,复制初始化数据库中已有的kuberntes部署好的namespace的配置信息,快速克隆出一个新的namespace,新的namespace含有初始化软件环境的第三方软件,控制端patrol调用流程执行端process执行项目的软件环境发布;S5:控制端patrol通过调用插件端plugin使用初始化软件环境的第三方软件,发布服务到Kuberntes和Docker的集群中;并于控制端patrol可视化展现。其中,S5中插件端plugin将软件项目的代码抓取到本地,插件端plugin的Maven对后端语言的代码进行编译、打包,插件端plugin对前端类代码使用NodeJs自带的npm进行编译,插件端plugin的Docker配置引用初始化数据库中已有的namespace的镜像,不需要重新制作镜像,并上传到镜像仓库中,插件端plugin利用用户已有配置数据及Kuberntesapi生成deployment、svc实现软件项目资源的自动化部署。一种可读存储介质,可读存储介质上存储上述快速克隆软件环境的平台,该快速克隆软件环境的平台用于实现一种云环境下快速克隆软件环境的方法的步骤。本专利技术具有以下有益效果:1.本专利技术将软件项目从已有软件部署基础上重新部署一套软件环境,整个进行过程去掉重复操作,去除搭建重复新环境的运维投入,降低运维人员的投入成本。2.本专利技术通过软硬件资源有效利用,从项目开发、测试、生产阶段缩短交付周期,促进软件项目每个环境的效率从而提高项目研发成本,可以发布数量级的服务应用,并能正常运行服务,从而支撑数量级的应用服务发布和运维以解决
技术介绍
提到的运维瓶颈。3.本专利技术通过横向伸缩,在某些场景需求如:访问爆发、应用缩减、负载高峰期等快速响应,大大降低了软件生命周期的成本投入。附图说明图1为本专利技术提出的一种云环境快速克隆软件环境的方法的操作流程示意图;图2为本专利技术提出的一种云环境快速克隆软件环境的方法中自动化部署资源的执行流程示意图。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合实施例,对本专利技术进行进一步详细说明。如图1-2所示,本专利技术公开了一种云环境下快速本文档来自技高网
...

【技术保护点】
1.一种云环境下快速克隆软件环境的平台,基于Kuberntes云环境下,其特征在于,包括了服务端server、控制端patrol、流程执行端process和插件端plugin,所述的服务端server负责配置软件项目对应的gitlab地址、账号信息、上传项目初始化数据库脚本,构建软件环境,并向控制端patrol下达快速克隆请求指令,所述的控制端patrol负责实现用户使用交互,在收到项目快速克隆请求指令后通过复制初始化数据库中已有的Kuberntes部署好的namespace的配置信息和调用插件端plugin,快速克隆出一个新的namespace;并通过调用流程执行端process执行项目的软件环境发布。/n

【技术特征摘要】
1.一种云环境下快速克隆软件环境的平台,基于Kuberntes云环境下,其特征在于,包括了服务端server、控制端patrol、流程执行端process和插件端plugin,所述的服务端server负责配置软件项目对应的gitlab地址、账号信息、上传项目初始化数据库脚本,构建软件环境,并向控制端patrol下达快速克隆请求指令,所述的控制端patrol负责实现用户使用交互,在收到项目快速克隆请求指令后通过复制初始化数据库中已有的Kuberntes部署好的namespace的配置信息和调用插件端plugin,快速克隆出一个新的namespace;并通过调用流程执行端process执行项目的软件环境发布。


2.如权利要求1所述的软件交互平台,其特征在于:所述的服务端server部署有Gitlab、Docker、Maven、NodeJs、Registry、Kuberntes、Matrics-Server、NFS及数据MySQL服务,所述的Kuberntes中在同一个namespace下拥有唯一应用别名,所述的应用别名作为环境变量,所述的服务端server通过配置的项目gitlab地址、初始化数据库,项目之间使用Docker的环境变量,用应用别名来取代原传统方式固定ip配置,使得应用之间的相互访问无状态化。


3.如权利要求1所述的软件交互平台,其特征在于:所述的插件端plugin包含Git、Maven、Docker、Kuberntes、Nfs、Matrics-Server服务api调用;所述的插件端plugin使用Gitapi通过配置的gitlab地址抓取软件项目的代码、编译、打包、制作镜像、上传镜像至镜像仓库及发布服务到Kuberntes和Docker的集群中。


4.如权利要求1所述的软件交互平台,其特征在于:所述的流程执行端process负责将从软件项目的代码抓取到发布应用的多种流程编排并触发执行。


5.如权利要求2所述的软件交互平台,其特征在于:所述的Gitlab用于保存开发人员的源代码的日常管理、版本迭代、分支管理及代码存储。


6.如权利要求2所述的软件交互平台,其特征在于:所述的Maven管理java语言的依赖包关系,分析源代码的第三方包依赖情况分析及本地仓库、第三方仓库和中央仓库的包存储和下...

【专利技术属性】
技术研发人员:陈丽园
申请(专利权)人:上海嗨酷强供应链信息技术有限公司
类型:发明
国别省市:上海;31

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

1