CN112181592A - 一种私有云环境下轻量化部署分布式系统的方法 - Google Patents

一种私有云环境下轻量化部署分布式系统的方法 Download PDF

Info

Publication number
CN112181592A
CN112181592A CN202011027273.7A CN202011027273A CN112181592A CN 112181592 A CN112181592 A CN 112181592A CN 202011027273 A CN202011027273 A CN 202011027273A CN 112181592 A CN112181592 A CN 112181592A
Authority
CN
China
Prior art keywords
deployment
container
private cloud
service
lightweight
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
CN202011027273.7A
Other languages
English (en)
Inventor
王庆胜
胡瑶
何青刚
刘俊义
王昌臻
方瑾
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Congchong Technology Co ltd
Original Assignee
Shanghai Congchong Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Congchong Technology Co ltd filed Critical Shanghai Congchong Technology Co ltd
Priority to CN202011027273.7A priority Critical patent/CN112181592A/zh
Publication of CN112181592A publication Critical patent/CN112181592A/zh
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种私有云环境下轻量化部署分布式系统的方法,包括以下步骤:A、私有云环境提供计算资源;B、Docker容器或Kubernets容器作为服务部署工具,实现程序包封装和运行时资源隔离;C、利用镜像仓库进行远程代理;D、利用Ansible作为整体部署服务的中心控制器,实现集群分布式部署;E、采用Jupyter作为可视化脚本编写及执行工具。采用Docker容器或Kubernets容器技术后,解决了各应用之间资源隔离,由于容器技术的特点,每个服务处于自身的黑盒环境内,服务不会对其他服务状态或资源造成污染,解决对依赖环境的差异化,比如不同的服务可能依赖于不用的基础执行环境,可能是Java、PHP、Go等,只需要在每个镜像中单独进行打包,相互隔离,避免产生软件冲突。

Description

一种私有云环境下轻量化部署分布式系统的方法
技术领域
本发明属于网络技术领域,具体涉及一种私有云环境下轻量化部署分布式系统的方法。
背景技术
基于现有技术中,如今有大量的应用服务采用分布式结构。
在一个分布式系统中,一组独立的计算机展现给用户的是一个统一的整体,就好像是一个系统似的。系统拥有多种通用的物理和逻辑资源,可以动态的分配任务,分散的物理和逻辑资源通过计算机网络实现信息交换。系统中存在一个以全局的方式管理计算机资源的分布式操作系统。通常,对用户来说,分布式系统只有一个模型或范型。在操作系统之上有一层软件中间件责实现这个模型。一个著名的分布式系统的例子是万维网,在万维网中,所有的一切看起来就好像是一个文档(Web页面)一样。
分布式系统的分类:
1.面向特定场景的服务集群;
2.面向通用场景的资源服务集群;
3.容器型的服务集群;
在各种不同类型的云服务结构下,针对专门的场景提供软件即服务(Saas或Paas),要把这样一个平台服务整体搬迁到一个企业内部或者一个独立的云环境里面,如果把整个分布式系统(云)搬迁进去,可以想象这个代价会非常大,而且从可复制性上来说,也不具有非常高的可复制性。
所以在私有云环境下需要一种轻量化的分布式系统面临的问题:
1.单机部署的资源需求缺口。在任何一个环境里,单体的程序或者单机软件难以满足一个应用场景。
2.规模化不高。在私有云环境里,一般的用户量大约在10万至100万之间。
3.技术栈太复杂。现代分布式系统内往往涉及到非常多的模块,在这些模块中,每个服务实现的技术栈是不一样的,编程语言是不一样的,依赖的软件和网络环境也是不一样的。
如图1所示,系统内部涉及到非常多不同的服务模块,负责与客户端通信的模块,负责业务调度的模块,负责API发布、管理的模块,还有对象存储、消息漫游、推送等各种各样的服务。
在这些服务里,涉及到的技术栈不只是一种语言,应用服务可能是Java的,消息队列可能是RabbitMQ的,它是基于Erlang的,而数据库和缓存又是其他技术栈的东西,为此我们提出一种私有云环境下轻量化部署分布式系统的方法。
发明内容
本发明的目的在于提供一种私有云环境下轻量化部署分布式系统的方法,为了解决集群的快速部署,面对繁杂的集群,根据本发明提供的分布式系统的部署方法,节省人力成本,提高部署效率,并且尽可能屏蔽不同的技术栈对于运维实施人员的干扰,防止因人员失误导致分布式系统部署的失败,从而提供了分布式系统部署的正确性,以解决上述背景技术中提出的问题。
为实现上述目的,本发明提供如下技术方案:一种私有云环境下轻量化部署分布式系统的方法,包括以下步骤:
A、私有云环境提供计算资源;
B、Docker容器或Kubernets容器作为服务部署工具,实现程序包封装和运行时资源隔离;
C、利用镜像仓库进行远程代理;
D、利用Ansible作为整体部署服务的中心控制器,实现集群分布式部署;
E、采用Jupyter作为可视化脚本编写及执行工具。
优选的,私有云由至少一台主机构建,部署实施人员在获得主机资源后,对环境中主机编写相应的initialize任务脚本,进行所需环境的初始化,此初始化脚本一般情况下只在第一次配置相关主机的情况下执行。
优选的,完成初始化工作后,将主机转交至运维人员,运维人员根据研发人员所构建的镜像文件,对每个服务进行编写deployment部署脚本,执行部署任务,部署脚本一般包含以下功能点:终止对应服务的运行、拉取指定镜像版本到待部署主机、将镜像部署为相应容器,根据需要启动replicas节点伸缩),部署脚本执行后,对每个功能点的任务执行情况,显示执行结果。
优选的,所有脚本均只需要在中心控制器中编写、调用,所有客户端主机只需要通过ssh被中心控制器调用。
优选的,所述步骤D中,Ansible具体为一种运维工具,管理员通过SSH协议实现远程主机节点和管理节点之间的通信。
优选的,所述步骤B中,Docker容器是一个开源的应用容器引擎,可实现让开发者打包应用以及依赖包至一个可移植的容器中,然后发布到Linux机器或Windows机器上,也可以实现虚拟化,且由于Docker容器是完全使用沙箱机制,相互之间不会有任何接口。
优选的,使用Kubernets容器进行资源编排及部署管理,提供镜像编排,容器分发,部署、维护、扩展等功能。
与现有技术相比,本发明的有益效果是:
1、采用Docker容器或Kubernets容器技术后,解决了各应用之间资源隔离,由于容器技术的特点,每个服务处于自身的黑盒环境内,服务不会对其他服务状态或资源造成污染。
2、解决对依赖环境的差异化,比如不同的服务可能依赖于不用的基础执行环境,可能是Java、PHP、Go等,只需要在每个镜像中单独进行打包,相互隔离,避免产生软件冲突。
3、将服务部署动作抽象为yml配置文件,通过给每个服务单独的编写配置文件,由Ansible工具进行主机部署,达到快速、准确,并易于复制的程度。
4、同时,采用Ansible脚本部署,在日常运维工作中就不再需要运维人员操作SSH来管理服务器,可以预先编写好相应的部署脚本,通过Jupyter进行实时在线编辑、执行脚本,还可以支持随时随地运维的便捷性。
附图说明
图1为现有分布式系统架构的示意图;
图2为本发明的示意图;
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
请参阅图1至图2,本发明提供一种技术方案:一种私有云环境下轻量化部署分布式系统的方法,包括以下步骤:
A、私有云环境提供计算资源,私有云由至少一台主机构建,并具有部署脚本,部署实施人员在获得主机资源后,对环境中主机编写相应的initialize任务脚本,进行所需环境的初始化,此初始化脚本一般情况下只在第一次配置相关主机的情况下执行,完成初始化工作后,将主机转交至运维人员,运维人员根据研发人员所构建的镜像文件,对每个服务进行编写deployment部署脚本,执行部署任务;
B、采用Docker容器作为服务部署工具,实现程序包封装和运行时资源隔离;
C、利用镜像仓库进行远程代理;
D、利用Ansible作为整体部署服务的中心控制器,实现集群分布式部署,Ansible具体为一种运维工具,管理员通过SSH协议实现远程主机节点和管理节点之间的通信,所有脚本均只需要在中心控制器中编写、调用,所有客户端主机只需要通过ssh被中心控制器调用;
E、采用Jupyter作为可视化脚本编写及执行工具,实行数据清理和转换,数值模拟,统计建模,机器学习等等,由内建的Python内核可以用于执行已编写好的Ansible脚本。
本实施例中,部署脚本目录结构:
Initialize 目标主机初始化脚本
Builder 镜像构建脚本
Deployment 应用部署脚本
本实施例中,部署脚本一般包含以下功能点:终止对应服务的运行、拉取指定镜像版本到待部署主机、将镜像部署为相应容器,即根据需要启动replicas节点伸缩,部署脚本执行后,对每个功能点的任务执行情况,显示执行结果。
本实施例中,Jupyter是一个交互式笔记本,支持运行40多种编程语言,其本质是一个Web应用程序,便于创建和共享文学化程序文档,支持实时代码,数学方程,可视化和markdown。
本实施例中,步骤B中,Docker容器是一个开源的应用容器引擎,可实现让开发者打包应用以及依赖包至一个可移植的容器中,然后发布到Linux机器或Windows机器上,也可以实现虚拟化,且由于Docker容器是完全使用沙箱机制,相互之间不会有任何接口。
本发明的工作原理及使用流程:如图2所示,以其中一个服务举例,第一步,部署脚本目录结构,如上表所示,然后执行任务:
1、Initialize任务列表
配置SSH登录选项,上传对应账号密钥;
配置软件安装源;
更新软件版本;
安装Docker软件,配置加速镜像、运行参数等;
安装NTP时间同步;
2、Builder
通过Dockerfile编译镜像;
传输编译后镜像到私有镜像仓库;
3、Deployment
载入已编译的镜像;
设置应用所需要的相关配置;
使用镜像启动容器服务;
4、执行步骤
使用人员:研发人员;
使用场景:业务研发进行的版本迭代,发布代码(新版本)时使用,非现场实施部署工作;
调用ansible-playbookbuilder.yml执行镜像编译发布任务;
使用人员:部署实施人员;
使用场景:现场实施的第一步,将目标节点主机统一运行环境;
调用ansible-playbook initialize.yml执行初始化任务;
使用人员:部署实施人员/日常运维人员;
使用场景:现场实施的第二部,日常运维工作的执行内容;
调用ansible-playbook deployment.yml执行部署任务;
本实施例中,部署实施人员在获得主机资源后,对环境中主机编写相应的initialize任务脚本,进行所需环境的初始化,此初始化脚本一般情况下只在第一次配置相关主机的情况下执行;
完成初始化工作后,将转交至运维人员,运维人员根据研发人员所构建的镜像文件,对每个服务进行编写deployment部署脚本,执行部署任务。部署脚本一般包含以下功能点:终止对应服务的运行、拉取指定镜像版本到待部署主机、将镜像部署为相应容器,即根据需要启动replicas节点伸缩,部署脚本执行后,对每个功能点的任务执行情况,显示执行结果;
之后,在日常运维工作中,更新升级服务,只需要简单的调整对应的deployment脚本并执行任务即可。
实施例二
请参阅图1至图2,本发明提供一种技术方案:一种私有云环境下轻量化部署分布式系统的方法,包括以下步骤:
A、私有云环境提供计算资源,私有云由至少一台主机构建,并具有部署脚本,部署实施人员在获得主机资源后,对环境中主机编写相应的initialize任务脚本,进行所需环境的初始化,此初始化脚本一般情况下只在第一次配置相关主机的情况下执行,完成初始化工作后,将主机转交至运维人员,运维人员根据研发人员所构建的镜像文件,对每个服务进行编写deployment部署脚本,执行部署任务;
B、采用Kubernets容器作为服务部署工具,实现程序包封装和运行时资源隔离;
C、利用镜像仓库进行远程代理;
D、利用Ansible作为整体部署服务的中心控制器,实现集群分布式部署,Ansible具体为一种运维工具,管理员通过SSH协议实现远程主机节点和管理节点之间的通信,所有脚本均只需要在中心控制器中编写、调用,所有客户端主机只需要通过ssh被中心控制器调用;
E、采用Jupyter作为可视化脚本编写及执行工具,实行数据清理和转换,数值模拟,统计建模,机器学习等等,由内建的Python内核可以用于执行已编写好的Ansible脚本。
本实施例中,使用Kubernets容器替代Docker容器进行资源编排及部署管理,Kubernets容器简称k8s,是Google开源的容器集群管理系统,使用Go语言开发,提供镜像编排,容器分发,部署、维护、扩展等功能。
本实施例中与实施例一的区别在于步骤B中选用Kubernets容器进行资源编排及部署管理,提供镜像编排,容器分发,部署、维护、扩展等功能,其它部分与实施例一一致。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上,仅用以说明本发明的技术方案而非限制,本领域普通技术人员对本发明的技术方案所做的其它修改或者等同替换,只要不脱离本发明技术方案的精神和范围,均应涵盖在本发明的权利要求范围当中。

Claims (7)

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容器进行资源编排及部署管理,提供镜像编排,容器分发,部署、维护、扩展等功能。
CN202011027273.7A 2020-09-25 2020-09-25 一种私有云环境下轻量化部署分布式系统的方法 Withdrawn CN112181592A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011027273.7A CN112181592A (zh) 2020-09-25 2020-09-25 一种私有云环境下轻量化部署分布式系统的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011027273.7A CN112181592A (zh) 2020-09-25 2020-09-25 一种私有云环境下轻量化部署分布式系统的方法

Publications (1)

Publication Number Publication Date
CN112181592A true CN112181592A (zh) 2021-01-05

Family

ID=73944922

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011027273.7A Withdrawn CN112181592A (zh) 2020-09-25 2020-09-25 一种私有云环境下轻量化部署分布式系统的方法

Country Status (1)

Country Link
CN (1) CN112181592A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115361283A (zh) * 2022-10-20 2022-11-18 深圳依时货拉拉科技有限公司 基于k8s的云主机管理方法、装置、计算机设备
CN115562758A (zh) * 2022-11-10 2023-01-03 北京卓翼智能科技有限公司 一种云仿真平台部署方法、系统、存储介质及电子设备
CN116646061A (zh) * 2023-04-28 2023-08-25 西安交通大学 分布式ct成像和智能诊疗系统及方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115361283A (zh) * 2022-10-20 2022-11-18 深圳依时货拉拉科技有限公司 基于k8s的云主机管理方法、装置、计算机设备
CN115562758A (zh) * 2022-11-10 2023-01-03 北京卓翼智能科技有限公司 一种云仿真平台部署方法、系统、存储介质及电子设备
CN115562758B (zh) * 2022-11-10 2023-05-26 北京卓翼智能科技有限公司 一种云仿真平台部署方法、系统、存储介质及电子设备
CN116646061A (zh) * 2023-04-28 2023-08-25 西安交通大学 分布式ct成像和智能诊疗系统及方法
CN116646061B (zh) * 2023-04-28 2024-01-26 西安交通大学 分布式ct成像和智能诊疗系统及方法

Similar Documents

Publication Publication Date Title
US11405274B2 (en) Managing virtual network functions
EP3411785B1 (en) Containerized deployment of microservices based on monolithic legacy applications
CN107766126B (zh) 容器镜像的构建方法、系统、装置及存储介质
CN107967159B (zh) 一种配置文件应用的方法以及服务器
CN107818112B (zh) 一种大数据分析作业系统及任务提交方法
US9086901B2 (en) Migration of applications from physical machines to virtual machines
CN112437915A (zh) 云平台上监测多个集群和应用程序的方法
CN112181592A (zh) 一种私有云环境下轻量化部署分布式系统的方法
US20190082004A1 (en) Systems and methods for instantiating services on top of services
CN102999369A (zh) 虚拟机升级的方法及装置
US9959157B1 (en) Computing instance migration
CN112424752A (zh) 云平台上应用程序容器的卷(存储)供应方法
CN111061487A (zh) 一种基于容器的负载均衡分布式编译系统和方法
US11327750B1 (en) Domain-driven application breakout
CN116783581A (zh) 在云平台中配置的数据中心上部署软件发布
Kjorveziroski et al. Webassembly orchestration in the context of serverless computing
CN111897551B (zh) 一种云环境下快速克隆软件环境的平台及方法
CN113407257A (zh) Mysql集群部署方法、装置、电子设备及存储介质
Cai et al. Deployment and verification of machine learning tool-chain based on kubernetes distributed clusters: This paper is submitted for possible publication in the special issue on high performance distributed computing
CN114579250A (zh) 一种构建虚拟集群的方法、装置及存储介质
CN115145604A (zh) 一种容器化的电力营销系统部署方法
CN115469856A (zh) 一种基于Helm云资源编排的系统和方法
Sharma et al. Analysis and Implementation of Microservices Using Docker
Groenda et al. CACTOS Toolkit Version 2
Leskinen Applicability of Kubernetes to Industrial IoT Edge Computing System

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
WW01 Invention patent application withdrawn after publication

Application publication date: 20210105

WW01 Invention patent application withdrawn after publication