一种云环境下自动化部署资源的软件交互平台及方法技术

技术编号:26258965 阅读:16 留言:0更新日期:2020-11-06 17:52
本发明专利技术涉及计算机技术领域,公开了一种云环境下自动化部署资源的软件交互平台及方法,用于将软件项目服务从代码开始到项目正常运行的整个过程进行自动化部署,包括了服务端server、控制端patrol、流程执行端process和插件端plugin;本发明专利技术从软件源码、资源规划、编译、打包、镜像制作、镜像上传及自动发布的整个软件发布过程无人工介入的全自动化软件应用配置管理平台,并实现运行时监控、动态增量发布、动态删除发布、横向扩展和持久化管理等,极大程度的降低了运维人员的投入成本,软硬件资源进行最大化的有效利用。

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

【技术保护点】
1.一种云环境下自动化部署资源的软件交互平台,用于将软件项目服务从代码开始到项目正常运行的整个过程进行自动化部署,其特征在于,包括了服务端server、控制端patrol、流程执行端process和插件端plugin,所述的服务端server负责配置软件项目对应的gitlab地址、账号信息、上传项目初始化数据库脚本,构建项目环境,并向控制端patrol下达发布指令,所述的控制端patrol负责实现用户使用交互,在收到项目发布指令后调用流程执行端process和插件端plugin,通过调用流程执行端process执行项目的软件环境发布,并调用插件端plugin实现自动化部署。/n

【技术特征摘要】
1.一种云环境下自动化部署资源的软件交互平台,用于将软件项目服务从代码开始到项目正常运行的整个过程进行自动化部署,其特征在于,包括了服务端server、控制端patrol、流程执行端process和插件端plugin,所述的服务端server负责配置软件项目对应的gitlab地址、账号信息、上传项目初始化数据库脚本,构建项目环境,并向控制端patrol下达发布指令,所述的控制端patrol负责实现用户使用交互,在收到项目发布指令后调用流程执行端process和插件端plugin,通过调用流程执行端process执行项目的软件环境发布,并调用插件端plugin实现自动化部署。


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


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


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


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


6.如权利要求2所述的软件交互平台,其特征在于:所述的Maven管理java语言的依赖包关系,分析源代码的第三方...

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

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

1