一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种在云环境下针对GO微服务远程部署的方法及系统与流程

2022-12-06 23:04:53 来源:中国专利 TAG:

一种在云环境下针对go微服务远程部署的方法及系统
技术领域
1.本发明涉及云环境内部署技术领域,具体为一种在云环境下针对go微服务远程部署的方法及系统。


背景技术:

2.云计算是近年来it产业发展的新热点,收到各方的广泛关注。在计算机虚拟化技术的推动下,云计算中包括虚拟机在内的计算机资源急剧增加。
3.现有技术中,通常需要在大量的计算机资源上动态的部署软件,以构建不同计算环境满足用户不断变化的需求。
4.但是,由于云服务产品与功能不断的迭代更新以及云服务产品和功能的复杂性,为避免人工部署可能会出现的问题,云服务的自动化部署势在必行。


技术实现要素:

5.本发明的目的在于提供一种在云环境下针对go微服务远程部署的方法及系统,以解决上述背景技术中提出的问题。
6.为实现上述目的,本发明提供如下技术方案:一种在云环境下针对go微服务远程部署的方法,所述在云环境下针对go微服务远程部署的方法包括以下步骤:
7.使用cmdb统一管理云服务器信息;
8.将需要部署的go微服务以及执行的中间件,按照规则统一存储于minio仓库中;
9.通过ssh协议远程连接云服务器,使用jsch工具包在云服务器上远程执行命令;
10.在远程部署go微服务时可以选择执行默认的shell脚本,自定义脚本上传到minio仓库,在部署时执行上传的自定义脚本;
11.在远程部署go微服务时后台程序开启一个子线程执行命令,通过websocket和前台页面通信,将部署服务的状态发送到前台页面;
12.前台页面显示云服务器已部署go微服务的状态和版本号,下发启停命令后后台使用jsch工具包执行相应命令实现服务的启停,也可根据版本号实现服务的升级和回退。
13.优选的,在新增云服务器信息时进行有效化校验,检查ip地址的合法性,将云服务器登录信息中的密码采用base64加密传输,通过ssh连接检查登录信息是否正确;
14.若ip地址不合法或者ssh连接失败,则无法通过校验,前台页面将根据校验失败原因进行相应的提示;通过校验的云服务器信息将会录入到云服务器表中进行保存。
15.优选的,中间件包括shell脚本,golang安装包,存储时,在前台页面进行文件的上传与删除。
16.优选的,使用wget命令将minio中所需的shell脚本下载到云服务器上,使用chmod命令给脚本加执行权限,之后根据所选的go微服务传参并执行脚本即可实现go微服务的远程部署。
17.优选的,默认的脚本会检测云服务器的系统架构,根据系统构架为云服务器配置
对应的go环境;然后根据后台传入的参数从minio中下载对应的go程序包完成go微服务的远程部署。
18.一种在云环境下针对go微服务远程部署的系统,所述该系统由云服务器资源管理模块、minio仓库管理模块、远程连接云服务器模块、shell脚本模块、前后台websocket通信模块构成以及go微服务的启停和版本升级、回退模块;
19.云服务器资源管理模块,用于使用cmdb统一管理云服务器信息;
20.minio仓库管理模块,用于将需要部署的go微服务以及执行的中间件,按照规则统一存储于minio仓库中;
21.远程连接云服务器模块,用于通过ssh协议远程连接云服务器,使用jsch工具包在云服务器上远程执行命令;
22.shell脚本模块,用于在远程部署go微服务时可以选择执行默认的shell脚本,自定义脚本上传到minio仓库,在部署时执行上传的自定义脚本;
23.前后台websocket通信模块,用于在远程部署go微服务时后台程序开启一个子线程执行命令,通过websocket和前台页面通信,将部署服务的状态发送到前台页面;
24.go微服务的启停和版本升级、回退模块,用于前台页面显示云服务器已部署go微服务的状态和版本号,下发启停命令后后台使用jsch工具包执行相应命令实现服务的启停,也可根据版本号实现服务的升级和回退。
25.优选的,所述云服务器资源管理模块中,在新增云服务器信息时进行有效化校验,检查ip地址的合法性,将云服务器登录信息中的密码采用base64加密传输,通过ssh连接检查登录信息是否正确;
26.若ip地址不合法或者ssh连接失败,则无法通过校验,前台页面将根据校验失败原因进行相应的提示;通过校验的云服务器信息将会录入到云服务器表中进行保存。
27.优选的,所述minio仓库管理模块中,中间件包括shell脚本,golang安装包,存储时,在前台页面进行文件的上传与删除。
28.优选的,所述远程连接云服务器模块中,使用wget命令将minio中所需的shell脚本下载到云服务器上,使用chmod命令给脚本加执行权限,之后根据所选的go微服务传参并执行脚本即可实现go微服务的远程部署。
29.优选的,所述shell脚本模块中,默认的脚本会检测云服务器的系统架构,根据系统构架为云服务器配置对应的go环境;然后根据后台传入的参数从minio中下载对应的go程序包完成go微服务的远程部署。
30.与现有技术相比,本发明的有益效果是:
31.本发明提出的在云环境下针对go微服务远程部署的方法及系统由cmdb统一管理和维护linux服务器的信息,通过ssh协议与linux服务器建立连接,调用java的jsch工具包执行相应自动化操作;前台页面下发远程部署的命令,执行shell脚本为服务器配置相应的go环境,并可以控制微服务的启动和停止;将远程部署操作放入子线程中执行,通过websocket实现前后台的通信,在页面上获取远程部署的状态。
附图说明
32.图1为本发明远程部署整体架构;
33.图2为资源信息校验的工作流程图;
34.图3为minio存储模块流程示意图;
35.图4为远程部署模块流程示意图;
36.图5为websocket模块流程示意图。
具体实施方式
37.为了使本发明的目的、技术方案进行清楚、完整地描述,及优点更加清楚明白,以下结合附图对本发明实施例进行进一步详细说明。应当理解,此处所描述的具体实施例是本发明一部分实施例,而不是全部的实施例,仅仅用以解释本发明实施例,并不用于限定本发明实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
38.在本发明的描述中,需要说明的是,术语“中心”、“中”、“上”、“下”、“左”、“右”、“内”、“外”、“顶”、“底”、“侧”、“竖直”、“水平”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“一”、“第一”、“第二”、“第三”、“第四”、“第五”、“第六”仅用于描述目的,而不能理解为指示或暗示相对重要性。
39.在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
40.出于简明和说明的目的,实施例的原理主要通过参考例子来描述。在以下描述中,很多具体细节被提出用以提供对实施例的彻底理解。然而明显的是,对于本领域普通技术人员,这些实施例在实践中可以不限于这些具体细节。在一些实例中,没有详细地描述公知方法和结构,以避免无必要地使这些实施例变得难以理解。另外,所有实施例可以互相结合使用。
41.实施例一
42.本发明提供一种技术方案:一种在云环境下针对go微服务远程部署的方法,所述在云环境下针对go微服务远程部署的方法包括以下步骤:
43.使用cmdb统一管理云服务器信息;在新增云服务器信息时进行有效化校验,检查ip地址的合法性,将云服务器登录信息中的密码采用base64加密传输,通过ssh连接检查登录信息是否正确;若ip地址不合法或者ssh连接失败,则无法通过校验,前台页面将根据校验失败原因进行相应的提示;通过校验的云服务器信息将会录入到云服务器表中进行保存;
44.将需要部署的go微服务以及执行的中间件,按照规则统一存储于minio仓库中;中间件包括shell脚本,golang安装包,存储时,在前台页面进行文件的上传与删除;
45.通过ssh协议远程连接云服务器,使用jsch工具包在云服务器上远程执行命令;使用wget命令将minio中所需的shell脚本下载到云服务器上,使用chmod命令给脚本加执行
权限,之后根据所选的go微服务传参并执行脚本即可实现go微服务的远程部署;
46.在远程部署go微服务时可以选择执行默认的shell脚本,自定义脚本上传到minio仓库,在部署时执行上传的自定义脚本;默认的脚本会检测云服务器的系统架构,根据系统构架为云服务器配置对应的go环境;然后根据后台传入的参数从minio中下载对应的go程序包完成go微服务的远程部署;
47.在远程部署go微服务时后台程序开启一个子线程执行命令,通过websocket和前台页面通信,将部署服务的状态发送到前台页面;
48.前台页面显示云服务器已部署go微服务的状态和版本号,下发启停命令后后台使用jsch工具包执行相应命令实现服务的启停,也可根据版本号实现服务的升级和回退。
49.实施例二
50.一种在云环境下针对go微服务远程部署的系统,所述该系统由云服务器资源管理模块、minio仓库管理模块、远程连接云服务器模块、shell脚本模块、前后台websocket通信模块构成以及go微服务的启停和版本升级、回退模块;
51.云服务器资源管理模块,用于使用cmdb统一管理云服务器信息;在新增云服务器信息时进行有效化校验,检查ip地址的合法性,将云服务器登录信息中的密码采用base64加密传输,通过ssh连接检查登录信息是否正确;若ip地址不合法或者ssh连接失败,则无法通过校验,前台页面将根据校验失败原因进行相应的提示;通过校验的云服务器信息将会录入到云服务器表中进行保存;
52.minio仓库管理模块,用于将需要部署的go微服务以及执行的中间件,按照规则统一存储于minio仓库中;中间件包括shell脚本,golang安装包,存储时,在前台页面进行文件的上传与删除;
53.远程连接云服务器模块,用于通过ssh协议远程连接云服务器,使用jsch工具包在云服务器上远程执行命令;使用wget命令将minio中所需的shell脚本下载到云服务器上,使用chmod命令给脚本加执行权限,之后根据所选的go微服务传参并执行脚本即可实现go微服务的远程部署;
54.shell脚本模块,用于在远程部署go微服务时可以选择执行默认的shell脚本,自定义脚本上传到minio仓库,在部署时执行上传的自定义脚本;默认的脚本会检测云服务器的系统架构,根据系统构架为云服务器配置对应的go环境;然后根据后台传入的参数从minio中下载对应的go程序包完成go微服务的远程部署;
55.前后台websocket通信模块,用于在远程部署go微服务时后台程序开启一个子线程执行命令,通过websocket和前台页面通信,将部署服务的状态发送到前台页面;
56.go微服务的启停和版本升级、回退模块,用于前台页面显示云服务器已部署go微服务的状态和版本号,下发启停命令后后台使用jsch工具包执行相应命令实现服务的启停,也可根据版本号实现服务的升级和回退。
57.实施例三
58.参照附图1所示,远程部署整体架构,其组件包含:
59.a.配置管理数据库(cmdb):配置管理致力于通过维护it基础设施和it服务的逻辑模式来协助管理it服务的经济价值(客户需求、质量和成本的结合),并将与此相关的信息提供给其他业务流程。资源管理模块采用cmdb维护云服务器信息,前台页面录入的云服务
器信息在校验成功后存入数据库中。
60.b.minio分布式存储:minio是一个基于apache license v2.0开源协议的对象存储服务。它兼容于亚马逊s3云存储服务接口,非常适合于存储大容量非结构化的数据,并且一个对象文件可以是任意大小,从几kb到最大5t不等。go微服务,shell脚本,go安装包等都统一存储于minio仓库中,在下发部署命令之后云服务器从minio中下载所需文件。
61.c.远程部署模块:jsch是ssh2的一个纯java实现。它允许你连接到一个sshd服务器,使用端口转发,x11转发,文件传输等等。后台使用jsch远程连接到云服务器后执行自动化操作的命令即可完成远程部署。
62.d.websocket模块:websocket是一种在单个tcp连接上进行全双工通信的协议。它使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在websocket api中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。在执行远程部署命令时前后台通过websocket连接。
63.实施例四
64.参照附图2所示,api对云服务器信息进行有效化判断,使用正则表达式判断ip地址的合法性,使用ssh连接的方式判断登录信息是否正确(密码加密传输),无效信息将无效原因返回,有效信息将录入到数据库中。
65.实施例五
66.参照附图3所示,前台页面显示mioio仓库中存储的文件,可以实现mioio仓库中文件的上传和和删除,统一管理go微服务和其他中间件,也可以更好的维护go微服务的不同版本,方便服务的升级和回退。部署服务时,云服务器会远程下载minio中对应的文件。
67.实施例六
68.参照附图4所示,后台通过ssh远程连接云服务器,使用jsch工具包在云服务器上执行wget命令将shell脚本从minio仓库中下载下来,运行shell脚本,脚本自动检测云服务器的系统构架,根据构架从minio中下载对应的go安装包,配置go环境。配置成功后再下载对应的go程序包实现服务的部署。
69.实施例七
70.参照附图5所示,在websocket服务启动时,订阅redis两个频道:一个用于接收广播信息,一个用于接收本服务的信息。当异步结果返回时,由服务端转发到相应的频道。服务接收到频道的消息后,发送给相应的客户端。前台页面调用api连接websocket服务端,将租户id传递给后台,在执行远程部署命令的子线程中后台可根据租户id把信息实时的传递给前台页面。
71.尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献