CN108737168A - 一种基于容器的微服务架构应用自动构建方法 - Google Patents
一种基于容器的微服务架构应用自动构建方法 Download PDFInfo
- Publication number
- CN108737168A CN108737168A CN201810430914.XA CN201810430914A CN108737168A CN 108737168 A CN108737168 A CN 108737168A CN 201810430914 A CN201810430914 A CN 201810430914A CN 108737168 A CN108737168 A CN 108737168A
- Authority
- CN
- China
- Prior art keywords
- service
- container
- application
- composer
- module
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0896—Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
- H04L61/4505—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
- H04L61/4511—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1036—Load balancing of requests to servers for services different from user content provisioning, e.g. load balancing across domain name servers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Debugging And Monitoring (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
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格式生成应用构建文件,格式如下:
此应用构建文件含义是,构建一个名称为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用户根据模板编写应用构建文件,提交给改进后的编排器;用户通过对微服务应用进行抽象建模、结合有向无环图(DAG)的思想,生成了应用构建文件,应用构建文件中包含应用名称、输入文件、输出文件、应用中包含的服务、以及关于应用的描述。例如,采用JSON格式生成一个应用构建文件,格式如下:
此应用构建文件含义是,构建一个名称为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格式生成应用构建文件,格式如下:
此应用构建文件含义是,构建一个名称为App的微服务架构应用,App应用从输入文件“input.txt”中读取输入参数,并将输出写入至输出文件“output.txt”,App应用拥有N个服务:Service1,...,Servicei,...,ServiceN,此App为一个测试应用即“this is test”。
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 true CN108737168A (zh) | 2018-11-02 |
CN108737168B 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) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109542791A (zh) * | 2018-11-27 | 2019-03-29 | 长沙智擎信息技术有限公司 | 一种基于容器技术的程序大规模并发评测方法 |
CN109618017A (zh) * | 2018-12-12 | 2019-04-12 | 北京知道创宇信息技术有限公司 | 域名管理方法、装置及系统 |
CN109766166A (zh) * | 2018-12-29 | 2019-05-17 | 优刻得科技股份有限公司 | 业务流程处理方法、装置、存储介质和设备 |
CN109799973A (zh) * | 2018-12-11 | 2019-05-24 | 极道科技(北京)有限公司 | 一种数据驱动的用户透明的可扩展编程方法 |
CN110083455A (zh) * | 2019-05-07 | 2019-08-02 | 网易(杭州)网络有限公司 | 图计算处理方法、装置、介质及电子设备 |
CN110362341A (zh) * | 2019-07-24 | 2019-10-22 | 上海钧正网络科技有限公司 | 基于微服务架构的业务管理方法、装置、设备和存储介质 |
CN110949458A (zh) * | 2019-11-27 | 2020-04-03 | 交控科技股份有限公司 | 基于微服务架构的轨道交通运维管理系统 |
CN111857653A (zh) * | 2020-05-26 | 2020-10-30 | 伏羲科技(菏泽)有限公司 | 微服务管理方法及装置 |
CN112327719A (zh) * | 2020-11-19 | 2021-02-05 | 山东高速信息集团有限公司 | 一种智慧园区中台统一应用接口库的实现方法及系统 |
CN112749050A (zh) * | 2019-10-29 | 2021-05-04 | 中国移动通信集团浙江有限公司 | 基于微服务框架的安全断路方法、装置及计算设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160057071A1 (en) * | 2014-08-20 | 2016-02-25 | 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 |
CN107196982A (zh) * | 2016-03-14 | 2017-09-22 | 阿里巴巴集团控股有限公司 | 一种用户请求的处理方法和装置 |
CN107493191A (zh) * | 2017-08-08 | 2017-12-19 | 深信服科技股份有限公司 | 一种集群节点及自调度容器集群系统 |
CN107508795A (zh) * | 2017-07-26 | 2017-12-22 | 中国联合网络通信集团有限公司 | 跨容器集群的访问处理装置及方法 |
-
2018
- 2018-05-08 CN CN201810430914.XA patent/CN108737168B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160057071A1 (en) * | 2014-08-20 | 2016-02-25 | 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 |
CN107196982A (zh) * | 2016-03-14 | 2017-09-22 | 阿里巴巴集团控股有限公司 | 一种用户请求的处理方法和装置 |
CN107508795A (zh) * | 2017-07-26 | 2017-12-22 | 中国联合网络通信集团有限公司 | 跨容器集群的访问处理装置及方法 |
CN107493191A (zh) * | 2017-08-08 | 2017-12-19 | 深信服科技股份有限公司 | 一种集群节点及自调度容器集群系统 |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109542791A (zh) * | 2018-11-27 | 2019-03-29 | 长沙智擎信息技术有限公司 | 一种基于容器技术的程序大规模并发评测方法 |
CN109542791B (zh) * | 2018-11-27 | 2019-11-29 | 湖南智擎科技有限公司 | 一种基于容器技术的程序大规模并发评测方法 |
CN109799973A (zh) * | 2018-12-11 | 2019-05-24 | 极道科技(北京)有限公司 | 一种数据驱动的用户透明的可扩展编程方法 |
CN109618017A (zh) * | 2018-12-12 | 2019-04-12 | 北京知道创宇信息技术有限公司 | 域名管理方法、装置及系统 |
CN109766166A (zh) * | 2018-12-29 | 2019-05-17 | 优刻得科技股份有限公司 | 业务流程处理方法、装置、存储介质和设备 |
CN110083455A (zh) * | 2019-05-07 | 2019-08-02 | 网易(杭州)网络有限公司 | 图计算处理方法、装置、介质及电子设备 |
CN110362341A (zh) * | 2019-07-24 | 2019-10-22 | 上海钧正网络科技有限公司 | 基于微服务架构的业务管理方法、装置、设备和存储介质 |
CN112749050A (zh) * | 2019-10-29 | 2021-05-04 | 中国移动通信集团浙江有限公司 | 基于微服务框架的安全断路方法、装置及计算设备 |
CN112749050B (zh) * | 2019-10-29 | 2023-04-07 | 中国移动通信集团浙江有限公司 | 基于微服务框架的安全断路方法、装置及计算设备 |
CN110949458A (zh) * | 2019-11-27 | 2020-04-03 | 交控科技股份有限公司 | 基于微服务架构的轨道交通运维管理系统 |
CN111857653A (zh) * | 2020-05-26 | 2020-10-30 | 伏羲科技(菏泽)有限公司 | 微服务管理方法及装置 |
CN112327719A (zh) * | 2020-11-19 | 2021-02-05 | 山东高速信息集团有限公司 | 一种智慧园区中台统一应用接口库的实现方法及系统 |
CN112327719B (zh) * | 2020-11-19 | 2022-10-25 | 山东高速信息集团有限公司 | 一种智慧园区中台统一应用接口库的实现方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN108737168B (zh) | 2021-03-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108737168A (zh) | 一种基于容器的微服务架构应用自动构建方法 | |
CN109933522B (zh) | 一种自动化用例的测试方法、测试系统及存储介质 | |
CN107689882A (zh) | 一种虚拟化网络中业务部署的方法和装置 | |
CN102567026B (zh) | 移动应用构建系统和移动应用构建方法 | |
CN110891094A (zh) | 一种基于中台的终端软件支撑平台 | |
CN102073536A (zh) | 利用云平台实现模板编辑入库及批量生成虚拟机的方法 | |
CN103414767A (zh) | 将应用软件部署在云计算平台上的方法和装置 | |
CN108572845A (zh) | 分布式微服务集群的升级方法及相关系统 | |
WO2016154785A1 (zh) | 一种云平台、运行应用的方法及接入网单元 | |
CN104954458A (zh) | 一种基于龙芯平台的云操作系统的部署方法 | |
CN110737425B (zh) | 一种计费平台系统的应用程序的建立方法及装置 | |
CN112468589A (zh) | 数据分发方法、装置、计算机设备和存储介质 | |
CN106897060A (zh) | 基于图形化的数据处理方法及装置 | |
Lin et al. | Research on building an innovative electric power marketing business application system based on cloud computing and microservices architecture technologies | |
CN113467931A (zh) | 算力任务的处理方法、装置及系统 | |
Chazalet | Service level agreements compliance checking in the cloud computing: architectural pattern, prototype, and validation | |
CN109783132B (zh) | 一种可适应系统单体化及分布式化的实现方法及装置 | |
CN111459510A (zh) | 跨网络操作系统的安装方法、装置、电子设备及介质 | |
CN111131449A (zh) | 一种水资源管理系统服务集群化框架构建方法 | |
Zhou et al. | An interactive and reductive graph processing library for edge computing in smart society | |
Xiang et al. | Robust and cost-effective resource allocation for complex iot applications in edge-cloud collaboration | |
CN113326098B (zh) | 支持kvm虚拟化与容器虚拟化的云管平台 | |
CN115442285A (zh) | 基于虚拟化配置的网络测试方法、装置、设备及介质 | |
Santos et al. | SPIDER: An availability‐aware framework for the service function chain placement in distributed scenarios | |
CN111581203B (zh) | 信息处理方法、装置及存储介质 |
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 |