CN108737168B - 一种基于容器的微服务架构应用自动构建方法 - Google Patents

一种基于容器的微服务架构应用自动构建方法 Download PDF

Info

Publication number
CN108737168B
CN108737168B CN201810430914.XA CN201810430914A CN108737168B CN 108737168 B CN108737168 B CN 108737168B CN 201810430914 A CN201810430914 A CN 201810430914A CN 108737168 B CN108737168 B CN 108737168B
Authority
CN
China
Prior art keywords
service
application
container
module
improved
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.)
Active
Application number
CN201810430914.XA
Other languages
English (en)
Other versions
CN108737168A (zh
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.)
Shenzhen University
Original Assignee
Shenzhen University
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 Shenzhen University filed Critical Shenzhen University
Priority to CN201810430914.XA priority Critical patent/CN108737168B/zh
Publication of CN108737168A publication Critical patent/CN108737168A/zh
Application granted granted Critical
Publication of CN108737168B publication Critical patent/CN108737168B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0896Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4505Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
    • H04L61/4511Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1036Load balancing of requests to servers for services different from user content provisioning, e.g. load balancing across domain name servers

Abstract

针对现有手动构建应用方法存在资源利用率低、应用构建时间长且难于管理的技术问题,本发明提供一种基于容器的微服务架构应用自动构建方法,流程如下:1、改进编排器,向现有基于DNS负载均衡技术的容器编排架构的编排器中增加业务编排模块,改进后的编排器包括资源编排模块、扩容模块、业务编排模块;2、将改进后编排器部署到操作系统中,改进后编排器通过业务编排模块构建一个名为App的应用,App应用拥有N个服务;3、完成一个基于容器的微服务架构应用自动构建,结束。本发明利用容器技术来构建管理微服务应用,用管理容器来代替管理微服务,降低运维复杂度和难度,有效降低应用构建的时间,提高管理能力,可以应对大量不同类型的任务处理。

Description

一种基于容器的微服务架构应用自动构建方法
技术领域
本发明涉及基于容器的虚拟化技术领域,具体涉及一种基于容器的微服务架构应用自动构建方法。
背景技术
容器是轻量级的操作系统级虚拟化,可以让我们在一个资源隔离的进程中运行应用及其依赖项。相对于传统虚拟机技术,容器技术具有启动速度快、易于迁移、资源开销小等优势。随着容器技术不断完善与发展,更多的服务提供商采用容器技术重构传统的业务平台,从而达到优化平台的资源效能和提升服务响应能力的目的。传统单体式应用随着时间推移内容逐渐变多,增加了开发团队的开发和维护难度,因此微服务架构应运而生,其思路不是开发一个巨大的单体式应用,而是将应用分解为小的、互相连接的服务,一个应用由多个服务构成,一个服务又可被多个应用使用。目前使用容器技术,开发者将单个服务制作成容器镜像,存储在镜像仓库中,便于构建多个应用。
目前现有的容器编排器针对资源已经实现很好的编排调度管理,但缺乏对于业务的编排,图1是kubernetes、rancher和docker等行业领先公司基于DNS负载均衡技术的容器编排架构,主要包括基础设施、DNS域名服务系统、编排器三部分。编排器基于资源编排模块、扩容模块进行容器扩容。通常微服务应用包含数以百计的服务,要进行相关通信等配置保证服务之间数据正常交互才可使用,且不同服务类型不同,统一化监控难度大。
传统采取手动构建应用的方法存在以下弊端与不足:
(1)微服务架构通常包含众多的服务,短时间难以构建多个应用应对不同类型的任务;
(2)由于应用在启动过程中,服务全部开启,但是只有部分服务在工作,资源有效利用率很低。
(3)微服务架构通常包含众多的服务,管理难度大,出错时无法快速定位故障位置和原因。
发明内容
针对现有手动构建应用方法存在资源利用率低、应用构建时间长且难于管理的技术问题,本发明提供一种基于容器的微服务架构应用自动构建方法,利用容器技术来构建管理微服务应用,用管理容器来代替管理微服务,降低运维复杂度和难度,有效降低应用构建的时间,提高管理能力,可以应对大量不同类型的任务处理。
具体技术方案如下:
第一步、改进编排器,向现有基于DNS负载均衡技术的容器编排架构的编排器中增加业务编排模块,改进后的编排器包括资源编排模块、扩容模块、业务编排模块;业务编排模块与基础设施中的服务和DNS域名服务系统相连,业务编排模块监控基础设施中各服务的状态实现应用构建;
第二步、将改进后编排器部署到操作系统中,改进后编排器通过业务编排模块构建一个名为App的应用,App应用拥有N个服务,分别记为Service1,...,Servicei,...,ServiceN,1≤i≤N,i、N为自然数;具体流程如下:
2.1用户根据模板编写应用构建文件,提交给改进后的编排器;
2.2业务编排模块解析用户应用构建文件并在基础设施构建一个空应用,记该应用名为App;初始化服务循环变量j=1;
2.3业务编排模块创建服务Servicej,创建方法是业务编排模块创建容器镜像名为Servicej的容器,如果服务Servicej创建成功,即服务Servicej包括的所有容器状态都为“运行”,服务Servicej的容器向DNS域名服务系统注册{Servicej服务名,容器IP地址},业务编排模块监控服务Servicej的状态,进入2.4;否则,Servicej创建失败,跳转至第三步。
2.4业务编排模块监测服务Servicej的状态,当服务Servicej的状态变为“完成”时,即服务Servicej包括的所有容器状态都变为“完成”,改进后的编排器通过业务编排模块删除服务Servicej,业务编排模块向DNS域名服务系统发送{Servicej、容器IP地址}映射关系删除请求消息,释放资源;j值增1;
2.5如果j≤N,转步骤2.3;否则,j>N,跳转至第三步;
第三步、完成一个基于容器的微服务架构应用自动构建,结束。
作为本发明技术方案的进一步改进,所述步骤2.1中,通过对微服务应用进行抽象建模生成应用构建文件,应用构建文件中包含应用名称、输入文件、输出文件、应用中包含的服务、以及关于应用的描述。
作为本发明技术方案的进一步改进,所述步骤2.1中采用JSON格式生成应用构建文件,格式如下:
Figure GDA0002765723880000031
此应用构建文件含义是,构建一个名称为App的微服务架构应用,App应用从输入文件“input.txt”中读取输入参数,并将输出写入至输出文件“output.txt”,App应用拥有N个服务:Service1,...,Servicei,...,ServiceN,此App为一个测试应用即“this is test”。
本发明可以获得以下有益效果:
1、改进后编排器具备自动化能力,业务编排模块根据应用构建文件自动构建应用,有效降低运维复杂度和难度;
2、改进后编排器利用微服务架构的优势,只给运行的服务分配资源,运行结束后释放资源,达到了提高资源使用率的目的;
3、将在现有的容器编排架构中编排器基础上增加业务编排的功能,得到改进后编排器。改进后编排器中业务模块具有业务编排能力和业务状态感知能力;其中,业务编排能力是用于快速自动构建应用并运行应用;业务状态感知能力则对业务状态进行监控确保已完成业务流的处理;改进后编排器基于监控容器的粒度来监控服务,具有准确监控服务状态的能力,业务出现错误时候可快速定位故障位置及原因。
附图说明
图1是背景技术中现有的容器编排架构;
图2是本发明第一步对现有的容器编排架构进行改进后的容器编排架构;
图3是本发明的总体流程图。
具体实施方式
图1是背景技术现有kubernetes、rancher和docker等行业领先公司基于DNS负载均衡技术的容器编排架构,主要包括基础设施、DNS域名服务系统、编排器三部分。编排器基于资源编排模块、扩容模块进行容器扩容。如图1所示,现有的容器编排架构仅对资源进行了编排。在构建微服务应用时,需要手动创建应用下的所有服务来完成应用构建,并且只能监测到单个服务的状态。通常微服务应用包含数以百计的服务,要进行相关通信等配置保证服务之间数据正常交互才可使用,且不同服务类型不同,统一化监控难度大。
图3是本发明的总体流程图。具体包括以下步骤:
第一步、改进编排器,如图2所示,将在现有的基于DNS负载均衡技术的容器编排架构的编排器基础上增加业务编排模块,进而增加业务编排的功能,得到改进后编排器,改进后的编排器包括资源编排模块、扩容模块、业务编排模块;业务编排模块与基础设施中的服务和DNS域名服务系统相连,业务编排模块监控基础设施中各服务的状态实现应用构建改进后编排器中业务模块具有业务编排能力和业务状态感知能力。其中,业务编排能力是用于快速自动构建应用并运行应用;业务状态感知能力则对业务状态进行监控确保已完成业务流的处理。
第二步、将改进后编排器部署到操作系统中,改进后编排器通过业务编排模块构建一个名为App的应用,App应用拥有N个服务,分别记为Service1,...,Servicei,...,ServiceN,1≤i≤N,i、N为自然数;具体流程如下:
2.1用户根据模板编写应用构建文件,提交给改进后的编排器;用户通过对微服务应用进行抽象建模,生成了应用构建文件,应用构建文件中包含应用名称、输入文件、输出文件、应用中包含的服务、以及关于应用的描述。例如,采用JSON格式生成一个应用构建文件,格式如下:
Figure GDA0002765723880000041
此应用构建文件含义是,构建一个名称为App的微服务架构应用,App应用从“input.txt”中读取输入参数,并将输出写入至“output.txt”,App应用拥有N个服务:Service1,...,Servicei,...,ServiceN,此App为一个测试应用(“this is test”)。
2.2业务编排模块解析用户应用构建文件并在基础设施构建一个空应用,该应用名为App;初始化服务循环变量j=1;
2.3业务编排模块创建服务Servicej,创建方法是业务编排模块创建容器镜像名为Servicej的容器,如果服务Servicej创建成功,即服务Servicej包括的所有容器状态都为“运行”(running),服务Servicej的容器向DNS域名服务系统注册{Servicej服务名,容器IP地址},业务编排模块监控服务Servicej的状态,进入2.4;否则,Servicej创建失败,跳转至第三步。
2.4业务编排模块监测服务Servicej的状态,当服务Servicej的状态变为“完成”(finish)时,即服务Servicej包括的所有容器状态都变为“完成”,改进后的编排器通过业务编排模块删除服务Servicej,业务编排模块向DNS域名服务系统发送{Servicej、容器IP地址}映射关系删除请求消息,释放资源;j值增1;
2.5如果j≤N,转步骤2.3;否则,j>N,跳转至第三步;
第三步、完成一个基于容器的微服务架构应用自动构建。

Claims (3)

1.一种基于容器的微服务架构应用自动构建方法,其特征在于,包括以下步骤:
第一步、改进编排器,向现有基于DNS负载均衡技术的容器编排架构的编排器中增加业务编排模块,改进后的编排器包括资源编排模块、扩容模块、业务编排模块;业务编排模块与基础设施中的服务和DNS域名服务系统相连,业务编排模块监控基础设施中各服务的状态实现应用构建;
第二步、将改进后编排器部署到操作系统中,改进后编排器通过业务编排模块构建一个名为App的应用,App应用拥有N个服务,分别记为Service1,...,Servicei,...,ServiceN,1≤i≤N,i、N为自然数;具体流程如下:
2.1用户根据模板编写应用构建文件,提交给改进后的编排器;
2.2业务编排模块解析用户应用构建文件并在基础设施构建一个空应用,记该应用名为App;初始化服务循环变量j=1;
2.3业务编排模块创建服务Servicej,创建方法是业务编排模块创建容器镜像名为Servicej的容器,如果服务Servicej创建成功,即服务Servicej包括的所有容器状态都为“运行”,服务Servicej的容器向DNS域名服务系统注册{Servicej服务名,容器IP地址},业务编排模块监控服务Servicej的状态,进入2.4;否则,Servicej创建失败,跳转至第三步;
2.4业务编排模块监测服务Servicej的状态,当服务Servicej的状态变为“完成”时,即服务Servicej包括的所有容器状态都变为“完成”,改进后的编排器通过业务编排模块删除服务Servicej,业务编排模块向DNS域名服务系统发送{Servicej、容器IP地址}映射关系删除请求消息,释放资源;j值增1;
2.5如果j≤N,转步骤2.3;否则,j>N,跳转至第三步;
第三步、结束。
2.如权利要求1所述的基于容器的微服务架构应用自动构建方法,其特征在于,所述步骤2.1中,通过对微服务应用进行抽象建模生成应用构建文件,应用构建文件中包含应用名称、输入文件、输出文件、应用中包含的服务、以及关于应用的描述。
3.如权利要求1或2所述的基于容器的微服务架构应用自动构建方法,其特征在于,所述步骤2.1中采用JSON格式生成应用构建文件,格式如下:
Figure FDA0002765723870000011
Figure FDA0002765723870000021
此应用构建文件含义是,构建一个名称为App的微服务架构应用,App应用从输入文件“input.txt”中读取输入参数,并将输出写入至输出文件“output.txt”,App应用拥有N个服务:Service1,...,Servicei,...,ServiceN,此App为一个测试应用即“this is test”。
CN201810430914.XA 2018-05-08 2018-05-08 一种基于容器的微服务架构应用自动构建方法 Active CN108737168B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810430914.XA CN108737168B (zh) 2018-05-08 2018-05-08 一种基于容器的微服务架构应用自动构建方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810430914.XA CN108737168B (zh) 2018-05-08 2018-05-08 一种基于容器的微服务架构应用自动构建方法

Publications (2)

Publication Number Publication Date
CN108737168A CN108737168A (zh) 2018-11-02
CN108737168B true CN108737168B (zh) 2021-03-16

Family

ID=63938036

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810430914.XA Active CN108737168B (zh) 2018-05-08 2018-05-08 一种基于容器的微服务架构应用自动构建方法

Country Status (1)

Country Link
CN (1) CN108737168B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109542791B (zh) * 2018-11-27 2019-11-29 湖南智擎科技有限公司 一种基于容器技术的程序大规模并发评测方法
CN109799973B (zh) * 2018-12-11 2022-02-11 极道科技(北京)有限公司 一种数据驱动的用户透明的可扩展编程方法
CN109618017A (zh) * 2018-12-12 2019-04-12 北京知道创宇信息技术有限公司 域名管理方法、装置及系统
CN109766166A (zh) * 2018-12-29 2019-05-17 优刻得科技股份有限公司 业务流程处理方法、装置、存储介质和设备
CN110083455B (zh) * 2019-05-07 2022-07-12 网易(杭州)网络有限公司 图计算处理方法、装置、介质及电子设备
CN110362341B (zh) * 2019-07-24 2023-03-03 上海钧正网络科技有限公司 基于微服务架构的业务管理方法、装置、设备和存储介质
CN112749050B (zh) * 2019-10-29 2023-04-07 中国移动通信集团浙江有限公司 基于微服务框架的安全断路方法、装置及计算设备
CN110949458B (zh) * 2019-11-27 2021-11-12 交控科技股份有限公司 基于微服务架构的轨道交通运维管理系统
CN111857653A (zh) * 2020-05-26 2020-10-30 伏羲科技(菏泽)有限公司 微服务管理方法及装置
CN112327719B (zh) * 2020-11-19 2022-10-25 山东高速信息集团有限公司 一种智慧园区中台统一应用接口库的实现方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107196982A (zh) * 2016-03-14 2017-09-22 阿里巴巴集团控股有限公司 一种用户请求的处理方法和装置
CN107493191A (zh) * 2017-08-08 2017-12-19 深信服科技股份有限公司 一种集群节点及自调度容器集群系统
CN107508795A (zh) * 2017-07-26 2017-12-22 中国联合网络通信集团有限公司 跨容器集群的访问处理装置及方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9749242B2 (en) * 2014-08-20 2017-08-29 At&T Intellectual Property I, L.P. Network platform as a service layer for open systems interconnection communication model layer 4 through layer 7 services

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107196982A (zh) * 2016-03-14 2017-09-22 阿里巴巴集团控股有限公司 一种用户请求的处理方法和装置
CN107508795A (zh) * 2017-07-26 2017-12-22 中国联合网络通信集团有限公司 跨容器集群的访问处理装置及方法
CN107493191A (zh) * 2017-08-08 2017-12-19 深信服科技股份有限公司 一种集群节点及自调度容器集群系统

Also Published As

Publication number Publication date
CN108737168A (zh) 2018-11-02

Similar Documents

Publication Publication Date Title
CN108737168B (zh) 一种基于容器的微服务架构应用自动构建方法
CN109828831B (zh) 一种人工智能云平台
CN104954453B (zh) 基于云计算的数据挖掘rest服务平台
CN110795219A (zh) 适用于多种计算框架的资源调度方法及系统
CN112866333A (zh) 基于云原生的微服务场景优化方法、系统、设备和介质
CN110083455B (zh) 图计算处理方法、装置、介质及电子设备
CN112667362B (zh) Kubernetes上部署Kubernetes虚拟机集群的方法与系统
CN104731595A (zh) 面向大数据分析的混合计算系统
CN108243012B (zh) 在线计费系统ocs中计费应用处理系统、方法及装置
CN110851237A (zh) 一种面向国产平台的容器跨异构集群重构方法
CN112395736B (zh) 一种分布交互仿真系统的并行仿真作业调度方法
CN103077034B (zh) 混合虚拟化平台java应用迁移方法与系统
CN111274002A (zh) 支撑paas平台构建方法、装置、计算机设备及存储介质
CN112527647B (zh) 基于NS-3的Raft共识算法测试系统
CN103414767A (zh) 将应用软件部署在云计算平台上的方法和装置
Raith et al. Serverless edge computing—where we are and what lies ahead
CN112114939A (zh) 一种分布式系统部署设备和方法
Nüst et al. The rockerverse: packages and applications for containerization with r
Chen et al. MORE: A model-driven operation service for cloud-based IT systems
Assuncao et al. Dynamic workflow reconfigurations for recovering from faulty cloud services
Ahmed-Nacer et al. Simulation of configurable resource allocation for cloud-based business processes
Rac et al. At the edge of a seamless cloud experience
CN111367804A (zh) 基于云计算及网络编程实现前端协作调试的方法
CN103067507A (zh) 互联网云计算资源虚拟化封装系统及方法
Giannakopoulos et al. Recovering from cloud application deployment failures through re-execution

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
GR01 Patent grant
GR01 Patent grant