基于容器的应用环境动态编排的方法及其应用系统的制作方法

文档序号:9787338阅读:415来源:国知局
基于容器的应用环境动态编排的方法及其应用系统的制作方法
【技术领域】
[0001]本发明涉及云计算的应用环境的编排,具体地,涉及一种基于容器的应用环境动态编排的方法及其应用系统。
【背景技术】
[0002]“云计算(cloud computing)”这一术语通常被解释为:通过网络提供可伸缩的廉价的分布式计算能力。随着容器技术的成熟和大规模实践,基于容器的微服务架构凭借其对云服务的天然适应性,以及能够快速迭代和扩展应用的特点,成为互联网创业公司的技术首选。具体地,微服务架构具备以下优势:
[0003]I)复杂度可控:在将应用分解的同时,规避了原本复杂度无止境的积累。每一个微服务专注于单一功能,并通过定义良好的接口清晰表述服务边界。由于体积小、复杂度低,每个微服务可由一个小规模开发团队完全掌控,易于保持高可维护性和开发效率。
[0004]2)独立部署:由于微服务具备独立的运行进程,所以每个微服务也可以独立部署。当某个微服务发生变更时无需编译、部署整个应用。由微服务组成的应用相当于具备一系列可并行的发布流程,使得发布更加高效,同时降低对生产环境所造成的风险,最终缩短应用交付周期。
[0005]3)技术选型灵活:微服务架构下,技术选型是去中心化的,每个团队可以根据自身服务的需求和行业发展的现状,自由选择最适合的技术栈。由于每个微服务相对简单,当需要对技术栈进行升级时所面临的风险较低,甚至完全重构一个微服务也是可行的。
[0006]4)容错:当某一组建发生故障时,在单一进程的传统架构下,故障很有可能在进程内扩散,形成应用全局性的不可用。在微服务架构下,故障会被隔离在单个服务中。若设计良好,其他服务可通过重试、平稳退化等机制实现应用层面的容错。
[0007]5)扩展:单块架构应用也可以实现横向扩展,就是将整个应用完整的复制到不同的节点。当应用的不同组件在扩展需求上存在差异时,微服务架构便体现出其灵活性,因为每个服务可以根据实际需求独立进行扩展。
[0008]但是采用微服务架构的方式往往会带来了这样的一个问题:多个微服务之间如何协作运行,成为一个整体,即微应用环境的编排。目前市面上,只有少许几家CaaS平台提供了解决诸如NGINX+TOMCAT+MYSQL这样简单的应用场景,当应用变得复杂时,这种方法就显得无能为力。本发明提供一种能够满足在复杂的场景下实现应用环境自动化编排的方法。

【发明内容】

[0009]针对现有技术中的缺陷,本发明的目的是提供一种基于容器的应用环境动态编排的方法及其应用系统。
[0010]根据本发明提供的基于容器的应用环境动态编排的方法,包括如下步骤:
[0011]步骤1:将应用拆分为多个功能独立的子模块,并将所述子模块包装成容器镜像,作为可独立运行的微服务;
[0012]步骤2:将相互关联的多个微服务容器组合成为多种容器群组,其中单种容器群组的运行实例为动态编排的基础单元;
[0013]步骤3:设置容器群组实例的运行数量,并在容器群组实例运行时监控该容器群组实例的健康信息;
[0014]步骤4:设置多个相同类型容器群组实例的统一访问点,该统一访问点为容器群组网络空间中的虚拟网络地址,所述统一访问点作为负载均衡器,且所述统一访问点的虚拟网络地址固定不变,即不受到目标容器群组实例的新建或迀移的影响;
[0015]步骤5:多种类型的容器群组实例间通过统一访问点互相访问;
[0016]步骤6:动态新增或者删减容器群组,实现应用环境的动态编排。
[0017]优选地,所述步骤2包括:
[0018]步骤2.1:创建一个私有网络空间;
[0019]步骤2.2:将相互关联的多个微服务容器组合成为多种容器群组,提取所述多种容器群组内定义的所有微服务容器镜像;
[0020]步骤2.3:在计算机启动时,将多种容器群组实例的网络至于步骤2.1的私有网络空间中,其中,所述多种容器群组内的各个容器群组实例间通过1calhost互相访问。
[0021]优选地,所述步骤3包括:
[0022]步骤3.1:设置不小于2的容器群组实例的运行数量,并保存所有信息至持久化存储;
[0023]步骤3.2:在容器群组实例运行时监控该容器群组实例的健康信息,其中健康信息包括容器内存使用率、容器CPU使用率、容器网络访问量。
[0024]优选地,所述步骤6包括:根据监控收集的健康信息判断容器群组实例存活的数量,若容器群组实例的存活数量小于设置的运行数量,则根据已保存的配置信息创建新的容器群组实例,直到容器群组实例的存活数量等于期望的运行数量。
[0025]根据本发明提供的应用上述的基于容器的应用环境动态编排的方法的系统,包括:多个容器组合、网络访问代理模块、节点代理模块、通信模块、动态编排模块,其中
[0026]所述多个容器组合通过统一访问点、网络访问代理模块与外部网络进行访问,并通过节点代理模块接收来至动态编排模块的指令;
[0027]所述网络访问代理模块用于连接统一访问点与外部网络;
[0028]所述代理模块将多个容器组合的运行情况上传至通信模块,并接收动态编排模块通过通信模块下发的控制指令;
[0029]所述通信模块用于接收动态编排模块下发的控制指令和代理模块上传的数据;
[0030]所述动态编排模块用于根据容器组合的运行情况信息判断容器群组实例存活的数量,若容器群组实例的存活数量小于设置的运行数量,则根据已保存的配置信息创建新的容器群组实例,直到容器群组实例的存活数量等于期望的运行数量。
[0031]与现有技术相比,本发明具有如下的有益效果:
[0032]1、本发明提供的基于容器的应用环境动态编排的方法通过对大型应用的拆分,能够实现大型应用各模块的解耦;此外,还采用微服务加容器的方式,该方式比传统的方式更加快速、灵活、轻量,并且提高了可移植性。
[0033]2、本发明通过对应用环境的编排,能够使开发人员真正的从复杂重复的环境安装与配置工作中解脱出来。而经过编排后的应用环境基本与拆分前保持一致,从而不会为开发者带来额外的负担,提高工作效率。
【附图说明】
[0034]通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
[0035 ]图1为本发明中的容器群组示意图;
[0036]图2为本发明中的多容器群组动态编排原理示意图。
【具体实施方式】
[0037]下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进。这些都属于本发明的保护范围。
[0038]根据本发明提供的基于容器的应用环境动态编排的方法,包括如下步骤:
[0039]步骤1:将应用拆分为多个功能独立的子模块,并将所述子模块包装成容器镜像,作为可独立运行的微服务;
[0040]步骤2:将相互关联的多个微服务容器组合成为多种容器群组,其中单种容器群组的运行实例为动态编排的基础单元;
[0041 ] 步骤3:设置容器群组
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1