容器化微服务自动伸缩及迁移调度的方法、系统和设备技术方案

技术编号:14396395 阅读:142 留言:0更新日期:2017-01-11 10:35
本发明专利技术提供了一种容器化微服务自动伸缩及迁移调度的方法、系统和设备,方法包括:接收容器和/或微服务产生的经故障定位后的预警数据;和/或第三方平台发送的携带容器和/或微服务自动伸缩任务计划数据;触发容器自动伸缩或故障调度转移。本发明专利技术在微服务出现异常的时候,加快了服务伸缩的响应时间和处理时间;解放了运维人员处理的繁重工作量;有效控制了人为处理服务伸缩带来的不可控风险;降低了企业的运维成本;有效加快企业推广系统容器化微服务改造;解决了容器收缩策略的限制;扩充了容器化微服务伸缩的多样性和机制;通过对整个调用链的故障传导分析准确的定位了真实的故障点,做到了对容器化微服务的精确伸缩。

【技术实现步骤摘要】

本专利技术涉及器化微服务
,尤其涉及一种容器化微服务自动伸缩及迁移调度的方法、系统和设备
技术介绍
在如今的互联网和企业应用开发领域,微服务和DevOps这两个思想颇为深入人心。而Docker技术的出现和其对整个容器技术及其生态圈发展的促进,解决了微服务和DevOps这两个思想实践中的很多难题,使得微服务和DevOps这两种思想大规模地实现成为了可能。而Docker给系统架构各应用的微服务容器化提供了诸多便利的同时,也对企业的服务治理带来了很大挑战。为了充分利用IDC的物理资源、节省企业成本和保证服务的高可用性,在保证服务不中断情况下需要对服务进行弹性伸缩和迁移调度。目前,对服务进行弹性伸缩和迁移调度主要有两种方式:1、手工方式:1)根据容器化微服务故障的监控预警信息,运维人员手工把不可用的服务调度到集群中其它可用节点上。2)预估系统流量压力,运维人员提前在预测时间点手工扩容、缩减容器化微服务实例资源配额或数量。2、基于系统性能监控的自动调度方式:服务治理平台或监控系统监控容器的CPU、内存、网络流量,根据预先设定的规则,在CPU、内存或网络流量使用量达到阀值时自动扩容或缩减容器实例数量。专利技术人在研究的过程中发现,上述两种方式存在以下缺点:手工方式效率低:从接到告警信息到运维人员完成手工伸缩,响应时间不及时。企业运维成本高:每次伸缩都需要运维人员全程参与造成运维成本高。操作失误风险高和推广困难:如策略、规则和伸缩模式复杂,会造成运维人员学习和应用困难,推广阻力大。同时,由于根据策略和规则计算最优的伸缩模式复杂,很容易造成操作失误风险。基于系统性能监控的自动调度方式不能达到预期效果:没有进行故障传导分析,某个容器的资源利用情况不能真实反映整个调用链的瓶颈,达到阀值容器的资源利用情况会是由于下级微服务的服务质量造成。伸缩策略受限:无法对容器实例的资源配额单独伸缩。伸缩机制受限:不能根据单个容器化微服务的特性进行重启,或单次伸缩数量、收缩时间间隔等。
技术实现思路
为了解决上述技术问题,本专利技术提供了一种容器化微服务自动伸缩及迁移调度的方法、系统和设备,通过监控容器的资源(CPU、内存、IO、网络和存储)利用情况和容器化微服务的服务质量(响应时间、失败率、服务调用次数)。结合大数据综合分析结果,根据规则、策略和调度算法,提供容器化微服务无需人工干预快速的自动化伸缩和故障调度转移。达到对硬件资源的合理利用、降低运维团队成本、容器化微服务的高可用性和高性能目的。本专利技术一方面提供了一种容器化微服务自动伸缩及迁移调度的方法,其特征在于,包括:接收容器和/或微服务产生的经故障定位后的预警数据;和/或第三方平台发送的携带容器和/或微服务自动伸缩任务计划数据;触发容器自动伸缩或故障调度转移。进一步的,所述接收容器和/或微服务产生的经故障定位后的预警数据,包括:实时接收资源监控和分析系统发送的容器和/或微服务产生的经故障定位后的预警数据。进一步的,所述实时接收资源监控和分析系统发送的容器和/或微服务产生的经故障定位后的预警数据,包括:资源监控和分析系统实时采集服务调用日志和容器资源利用信息;判断所述采集的服务调用日志和容器资源利用信息满足系统预设预警条件后,在微服务调用链里定位原始故障点;实时接收资源监控和分析系统发送的所述原始故障点的异常信息数据。进一步的,所述判断所述采集的服务调用日志和容器资源利用信息满足系统预设预警条件后,在微服务调用链里定位原始故障点,包括:基于服务器配置的预设预警条件阀值以及预设算法分析,判断采集的HTTP和TCP/UDP类型的服务调用日志和容器资源利用信息中的容器CPU、内存、存储、IO和/或网络的使用数据,以及微服务的响应时间、失败率、QPS是否满足系统预设预警条件;若满足系统预设预警条件之一,则进行故障传导分析,在整个微服务调用链里定位原始故障点。进一步的,所述系统预设预警条件包括但不限于高负荷、低使用率、异常波动或可用性不达标中的一种或多种。进一步的,所述触发容器自动伸缩或故障调度转移,包括:根据预警数据中的IP和端口或服务ID从容器集群环境中获取相关微服务属性信息;把预警数据交给规则引擎选出需要执行动作的决策项集合,依据决策项的调度机制调用任务执行引擎生成计划任务,任务执行引擎根据任务计划数据定义准时调用容器集群的API触发容器完成自动伸缩或故障调度转移。进一步的,所述把预警数据交给规则引擎选出需要执行动作的决策项集合,依据决策项的调度机制调用任务执行引擎生成计划任务,任务执行引擎根据任务计划数据定义准时调用容器集群的API触发容器完成自动伸缩或故障调度转移,包括:参照RETE算法,根据预警数据的类型进行规则类型匹配,将每类中的预警数据根据属性值进行多级规则匹配,选出一个条件被优先满足的规则后,根据选定的规则从规则适配决策表中匹配决策项集合,通过匹配的决策项集合解决决策项集合中的冲突,形成可顺序执行决策项,根据决策项的调度机制调用容器集群的API完成容器伸缩或故障调度转移。进一步的,所述接收第三方平台发送的携带容器和/或微服务自动伸缩任务计划数据,触发容器自动伸缩或故障调度转移,包括:接收第三方平台按照接口调用协议定义的格式提交的携带容器和/或微服务自动伸缩任务计划数据;调用任务执行引擎生成计划任务,任务执行引擎根据任务计划数据定义,准时调用容器集群的API触发容器完成自动伸缩或故障调度转移。进一步的,所述接收第三方平台按照接口调用协议定义的格式提交的携带容器和/或微服务自动伸缩任务计划数据,包括:接收第三方平台通过HTTP或HTTPS协议提供的接口通过同步调用或异步调用服务使用JSON格式提交的携带容器和/或微服务自动伸缩任务计划数据,并在注册成功回调地址后可实现消息推送。进一步的,所述触发容器自动伸缩,包括:伸缩容器的CPU、内存、存储资源中的一种或多种;重启容器;基于预设时间间隔将容器逐一伸缩;基于预设时间间隔按照预设比例将容器逐步伸缩。本专利技术另一方面还提供了一种容器化微服务自动伸缩及迁移调度的系统,包括:接收模块,用于接收容器和/或微服务产生的经故障定位后的预警数据;和/或第三方平台发送的携带容器和/或微服务自动伸缩任务计划数据;触发模块,用于触发容器自动伸缩或故障调度转移。进一步的,所述接收模块,包括:第一接收模块,用于实时接收资源监控和分析系统发送的容器和/或微服务产生的经故障定位后的预警数据。进一步的,所述第一接收模块,包括:资源监控和分析系统采集单元,用于实时采集服务调用日志和容器资源利用信息;判断单元,用于判断所述采集的服务调用日志和容器资源利用信息满足系统预设预警条件后,在微服务调用链里定位原始故障点;接收单元,用于实时接收资源监控和分析系统发送的所述原始故障点的异常信息数据。进一步的,所述判断单元,包括:判断子单元,用于基于服务器配置的预设预警条件阀值以及预设算法分析,判断采集的HTTP和TCP/UDP类型的服务调用日志和容器资源利用信息中的容器CPU、内存、存储、IO和/或网络的使用数据,以及微服务的响应时间、失败率、QPS是否满足系统预设预警条件;定位单元,用于在判断子单元判断所述采集的服务调用日志和容器资源利本文档来自技高网
...
容器化微服务自动伸缩及迁移调度的方法、系统和设备

【技术保护点】
一种容器化微服务自动伸缩及迁移调度的方法,其特征在于,包括:接收容器和/或微服务产生的经故障定位后的预警数据;和/或第三方平台发送的携带容器和/或微服务自动伸缩任务计划数据;触发容器自动伸缩或故障调度转移。

【技术特征摘要】
1.一种容器化微服务自动伸缩及迁移调度的方法,其特征在于,包括:接收容器和/或微服务产生的经故障定位后的预警数据;和/或第三方平台发送的携带容器和/或微服务自动伸缩任务计划数据;触发容器自动伸缩或故障调度转移。2.如权利要求1所述的方法,其特征在于,所述接收容器和/或微服务产生的经故障定位后的预警数据,包括:实时接收资源监控和分析系统发送的容器和/或微服务产生的经故障定位后的预警数据。3.如权利要求2所述的方法,其特征在于,所述实时接收资源监控和分析系统发送的容器和/或微服务产生的经故障定位后的预警数据,包括:资源监控和分析系统实时采集服务调用日志和容器资源利用信息;判断所述采集的服务调用日志和容器资源利用信息满足系统预设预警条件后,在微服务调用链里定位原始故障点;实时接收资源监控和分析系统发送的所述原始故障点的异常信息数据。4.如权利要求3所述的方法,其特征在于,所述判断所述采集的服务调用日志和容器资源利用信息满足系统预设预警条件后,在微服务调用链里定位原始故障点,包括:基于服务器配置的预设预警条件阀值以及预设算法分析,判断采集的HTTP和TCP/UDP类型的服务调用日志和容器资源利用信息中的容器CPU、内存、存储、IO和/或网络的使用数据,以及微服务的响应时间、失败率、QPS是否满足系统预设预警条件;若满足系统预设预警条件之一,则进行故障传导分析,在整个微服务调用链里定位原始故障点。5.如权利要求4所述的方法,其特征在于,所述系统预设预警条件包括但不限于高负荷、低使用率、异常波动或可用性不达标中的一种或多种。6.如权利要求1-5之一所述的方法,其特征在于,所述触发容器自动伸缩或故障调度转移,包括:根据预警数据中的IP和端口或服务ID从容器集群环境中获取相关微服务属性信息;把预警数据交给规则引擎选出需要执行动作的决策项集合,依据决策项的调度机制调用任务执行引擎生成计划任务,任务执行引擎根据任务计划数据定义准时调用容器集群的API触发容器完成自动伸缩或故障调度转移。7.如权利要求6所述的方法,其特征在于,所述把预警数据交给规则引擎选出需要执行动作的决策项集合,依据决策项的调度机制调用任务执行引擎生成计划任务,任务执行引擎根据任务计划数据定义准时调用容器集群的API触发容器完成自动伸缩或故障调度转移,包括:参照RETE算法,根据预警数据的类型进行规则类型匹配,将每类中的预警数据根据属性值进行多级规则匹配,选出一个条件被优先满足的规则后,根据选定的规则从规则适配决策表中匹配决策项集合,通过匹配的决策项集合解决决策项集合中的冲突,形成可顺序执行决策项,根据决策项的调度机制调用容器集群的API完成容器伸缩或故障调度转移。8.如权利要求1所述的方法,其特征在于,所述接收第三方平台发送的携带容器和/或微服务自动伸缩任务计划数据,触发容器自动伸缩或故障调度转移,包括:接收第三方平台按照接口调用协议定义的格式提交的携带容器和/或微服务自动伸缩任务计划数据;调用任务执行引擎生成计划任务,任务执行引擎根据任务计划数据定义,准时调用容器集群的API触发容器完成自动伸缩或故障调度转移。9.如权利要求8所述的方法,其特征在于,所述接收第三方平台按照接口调用协议定义的格式提交的携带容器和/或微服务自动伸缩任务计划数据,包括:接收第三方平台通过HTTP或HTTPS协议提供的接口通过同步调用或异步调用服务使用JSON格式提交的携带容器和/或微服务自动伸缩任务计划数据,并在注册成功回调地址后可实现消息推送。10.如权利要求1-9所述的方法,其特征在于,所述触发容器自动伸缩,包括:伸缩容器的CPU、内存、存储资源中的一种或多种;重启容器;基于预设时间间隔将容器逐一伸缩;基于预设时间间隔按照预设比例将容器逐步伸缩。11.一种容器化...

【专利技术属性】
技术研发人员:曹杰冯雨晖宿晓坤苏建辉李苏李付华
申请(专利权)人:北京红马传媒文化发展有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1