(19)中华人民共和国国家知识产权局
(12)发明专利申请
(10)申请公布号 (43)申请公布日 (21)申请号 202011027273.7
(22)申请日 2020.09.25
(71)申请人 上海聪充网络科技有限公司
地址 200000 上海市徐汇区钦江路333号41
号楼202室
(72)发明人 王庆胜 胡瑶 何青刚 刘俊义 
王昌臻 方瑾 
(74)专利代理机构 广东有知猫知识产权代理有
限公司 44681
代理人 陈长益
(51)Int.Cl.
G06F  9/455(2006.01)
G06F  21/53(2013.01)
(54)发明名称
一种私有云环境下轻量化部署分布式系统
的方法
(57)摘要
本发明公开了一种私有云环境下轻量化部
署分布式系统的方法,包括以下步骤:A、私有云
环境提供计算资源;B、Docker容器或Kubernets
容器作为服务部署工具,实现程序包封装和运行
时资源隔离;C、利用镜像仓库进行远程代理;D、
利用Ansible作为整体部署服务的中心控制器,
实现集分布式部署;E、采用Jupyter作为可视
化脚本编写及执行工具。采用Docker容器或
Kubernets容器技术后,解决了各应用之间资源
隔离,由于容器技术的特点,每个服务处于自身
的黑盒环境内,服务不会对其他服务状态或资源
造成污染,解决对依赖环境的差异化,比如不同
的服务可能依赖于不用的基础执行环境,可能是
Java、PHP、Go等,只需要在每个镜像中单独进行
打包,相互隔离,
避免产生软件冲突。权利要求书1页  说明书5页  附图2页CN 112181592 A 2021.01.05
C N  112181592
A
1.一种私有云环境下轻量化部署分布式系统的方法,其特征在于,包括以下步骤:
A、私有云环境提供计算资源;
B、Docker容器或Kubernets容器作为服务部署工具,实现程序包封装和运行时资源隔离;
C、利用镜像仓库进行远程代理;
D、利用Ansible作为整体部署服务的中心控制器,实现集分布式部署;
E、采用Jupyter作为可视化脚本编写及执行工具。
2.根据权利要求1所述的一种私有云环境下轻量化部署分布式系统的方法,其特征在于:私有云由至少一台主机构建,部署实施人员在获得主机资源后,对环境中主机编写相应的initialize任务脚本,进行所需环境的初始化,此初始化脚本一般情况下只在第一次配置相关主机的情况下执行。
3.根据权利要求2所述的一种私有云环境下轻量化部署分布式系统的方法,其特征在于:完成初始化工作后,将主机转交至运维人员,运维人员根据研发人员所构建的镜像文件,对每个服务进行编写deployment部署脚本,执行部署任务。
4.根据权利要求1所述的一种私有云环境下轻量化部署分布式系统的方法,其特征在于:所有脚本均只需要在中心控制器中编写、调用,所有客户端主机只需要通过ssh被中心控制器调用。
5.根据权利要求1所述的一种私有云环境下轻量化部署分布式系统的方法,其特征在于:所述步骤D中,Ansible具体为一种运维工具,管理员通过SSH协议实现远程主机节点和管理节点之间的通信。
6.根据权利要求1所述的一种私有云环境下轻量化部署分布式系统的方法,其特征在于:所述步骤B中,Docker容器是一个开源的应用容器引擎,可实现让开发者打包应用以及依赖包至一个可移植的容器中,然后发布到Linux机器或Windows机器上,也可以实现虚拟化,且由于Docker容器是完全使用沙箱机制,相互之间不会有任何接口。
7.根据权利要求1所述的一种私有云环境下轻量化部署分布式系统的方法,其特征在于:使用Kubernets容器进行资源编排及部署管理,提供镜像编排,容器分发,部署、维护、扩展等功能。
权 利 要 求 书1/1页CN 112181592 A
一种私有云环境下轻量化部署分布式系统的方法
技术领域
[0001]本发明属于网络技术领域,具体涉及一种私有云环境下轻量化部署分布式系统的方法。
背景技术
[0002]基于现有技术中,如今有大量的应用服务采用分布式结构。
[0003]在一个分布式系统中,一组独立的计算机展现给用户的是一个统一的整体,就好像是一个系统似的。系统拥有多种通用的物理和逻辑资源,可以动态的分配任务,分散的物理和逻辑资源通过计算机网络实现信息交换。系统中存在一个以全局的方式管理计算机资源的分布式操作系统。通常,对用户来说,分布式系统只有一个模型或范型。在操作系统之上有一层软件中间件责实现这个模型。一个著名的分布式系统的例子是万维网,在万维网中,所有的一切看起来就好像是一个文档(Web页面)一样。
[0004]分布式系统的分类:
[0005]  1.面向特定场景的服务集;
[0006]  2.面向通用场景的资源服务集;
[0007]  3.容器型的服务集;
[0008]在各种不同类型的云服务结构下,针对专门的场景提供软件即服务(Saas或Paas),要把这样一个平台服务整体搬迁到一个企业内部或者一个独立的云环境里面,如果把整个分布式系统(云)搬迁进去,可以想象这个代价会非常大,而且从可复制性上来说,也不具有非常高的可复制性。
[0009]所以在私有云环境下需要一种轻量化的分布式系统面临的问题:
[0010]  1.单机部署的资源需求缺口。在任何一个环境里,单体的程序或者单机软件难以满足一个应用场景。
[0011]  2.规模化不高。在私有云环境里,一般的用户量大约在10万至100万之间。[0012]  3.技术栈太复杂。现代分布式系统内往往涉及到非常多的模块,在这些模块中,每个服务实现的技术栈是不一样的,编程语言是不一样的,依赖的软件和网络环境也是不一样的。
linux系统是哪个[0013]如图1所示,系统内部涉及到非常多不同的服务模块,负责与客户端通信的模块,负责业务调度的模块,负责API发布、管理的模块,还有对象存储、消息漫游、推送等各种各样的服务。
[0014]在这些服务里,涉及到的技术栈不只是一种语言,应用服务可能是Java的,消息队列可能是RabbitMQ的,它是基于Erlang的,而数据库和缓存又是其他技术栈的东西,为此我们提出一种私有云环境下轻量化部署分布式系统的方法。
发明内容
[0015]本发明的目的在于提供一种私有云环境下轻量化部署分布式系统的方法,为了解
决集的快速部署,面对繁杂的集,根据本发明提供的分布式系统的部署方法,节省人力成本,提高部署效率,并且尽可能屏蔽不同的技术栈对于运维实施人员的干扰,防止因人员失误导致分布式系统部署的失败,从而提供了分布式系统部署的正确性,以解决上述背景技术中提出的问题。
[0016]为实现上述目的,本发明提供如下技术方案:一种私有云环境下轻量化部署分布式系统的方法,包括以下步骤:
[0017]A、私有云环境提供计算资源;
[0018]B、Docker容器或Kubernets容器作为服务部署工具,实现程序包封装和运行时资源隔离;
[0019]C、利用镜像仓库进行远程代理;
[0020]D、利用Ansible作为整体部署服务的中心控制器,实现集分布式部署;[0021]E、采用Jupyter作为可视化脚本编写及执行工具。
[0022]优选的,私有云由至少一台主机构建,部署实施人员在获得主机资源后,对环境中主机编写相应的initialize任务脚本,进行所需环境的初始化,此初始化脚本一般情况下只在第一次配置相关主机的情况下执行。
[0023]优选的,完成初始化工作后,将主机转交至运维人员,运维人员根据研发人员所构建的镜像文件,对每个服务进行编写deployment部署脚本,执行部署任务,部署脚本一般包含以下功能点:终止对应服务的运行、拉取指定镜像版本到待部署主机、将镜像部署为相应容器,根据需要启动replicas节点伸缩),部署脚本执行后,对每个功能点的任务执行情况,显示执行结果。
[0024]优选的,所有脚本均只需要在中心控制器中编写、调用,所有客户端主机只需要通过ssh被中心控制器调用。
[0025]优选的,所述步骤D中,Ansible具体为一种运维工具,管理员通过SSH协议实现远程主机节点和管理节点之间的通信。
[0026]优选的,所述步骤B中,Docker容器是一个开源的应用容器引擎,可实现让开发者打包应用以及依赖包至一个可移植的容器中,然后发布到Linux机器或Windows机器上,也可以实现虚拟化,且由于Docker容器是完全使用沙箱机制,相互之间不会有任何接口。[0027]优选的,使用Kubernets容器进行资源编排及部署管理,提供镜像编排,容器分发,部署、维护、扩展等功能。
[0028]与现有技术相比,本发明的有益效果是:
[0029]1、采用Docker容器或Kubernets容器技术后,解决了各应用之间资源隔离,由于容器技术的特点,每个服务处于自身的黑盒环境内,服务不会对其他服务状态或资源造成污染。
[0030]2、解决对依赖环境的差异化,比如不同的服务可能依赖于不用的基础执行环境,可能是Java、PHP、Go等,只需要在每个镜像中单独进行打包,相互隔离,避免产生软件冲突。[0031]3、将服务部署动作抽象为yml配置文件,通过给每个服务单独的编写配置文件,由Ansible工具进行主机部署,达到快速、准确,并易于复制的程度。
[0032]4、同时,采用Ansible脚本部署,在日常运维工作中就不再需要运维人员操作SSH 来管理服务器,可以预先编写好相应的部署脚本,通过Jupyter进行实时在线编辑、执行脚
本,还可以支持随时随地运维的便捷性。
附图说明
[0033]图1为现有分布式系统架构的示意图;
[0034]图2为本发明的示意图;
具体实施方式
[0035]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0036]实施例一
[0037]请参阅图1至图2,本发明提供一种技术方案:一种私有云环境下轻量化部署分布式系统的方法,包括以下步骤:
[0038]A、私有云环境提供计算资源,私有云由至少一台主机构建,并具有部署脚本,部署实施人员在获得主机资源后,对环境中主机编写相应的initialize任务脚本,进行所需环境的初始化,此初始化脚本一般情况下只在第一次配置相关主机的情况下执行,完成初始化工作后,将主机转交至运维人员,运维人员根据研发人员所构建的镜像文件,对每个服务进行编写deployment部署脚本,执行部署任务;
[0039]B、采用Docker容器作为服务部署工具,实现程序包封装和运行时资源隔离;[0040]C、利用镜像仓库进行远程代理;
[0041]D、利用Ansible作为整体部署服务的中心控制器,实现集分布式部署,Ansible 具体为一种运维工具,管理员通过SSH协议实现远程主机节点和管理节点之间的通信,所有脚本均只需要在中心控制器中编写、调用,所有客户端主机只需要通过ssh被中心控制器调用;
[0042]E、采用Jupyter作为可视化脚本编写及执行工具,实行数据清理和转换,数值模拟,统计建模,机器学习等等,由内建的Python内核可以用于执行已编写好的Ansible脚本。[0043]本实施例中,部署脚本目录结构:
[0044]Initialize目标主机初始化脚本
Builder镜像构建脚本
Deployment应用部署脚本
[0045]本实施例中,部署脚本一般包含以下功能点:终止对应服务的运行、拉取指定镜像版本到待部署主机、将镜像部署为相应容器,即根据需要启动replicas节点伸缩,部署脚本执行后,对每个功能点的任务执行情况,显示执行结果。
[0046]本实施例中,Jupyter是一个交互式笔记本,支持运行40多种编程语言,其本质是一个Web应用程序,便于创建和共享文学化程序文档,支持实时代码,数学方程,可视化和markdown。
[0047]本实施例中,步骤B中,Docker容器是一个开源的应用容器引擎,可实现让开发者打包应用以及依赖包至一个可移植的容器中,然后发布到Linux机器或Windows机器上,也

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。