微信号:SanDunIT

介绍:移动改变生活,技术影响未来;我的三墩,我的IT.

SDDCOS平台自主研发的新版自动弹性扩缩容模块上线啦,更智能!

2016-12-02 17:33 钟储建 陈远峥

点击上方蓝色字体关注我们


  钟储建        DCOS资深架构师

  陈远峥        DCOS架构师

  孙红涛        DCOS高级工程师


数据中心操作系统(DataCenter Operating System,简称DCOS)是为整个数据中心提供分布式调度与协调功能,实现数据中心级弹性伸缩能力的软件堆栈,它将所有数据中心的资源当做一台大型计算机来调度,可以视作这个大型主机的操作系统。

中国移动浙江公司在2015年构建DCOS的初衷是为了解决:

1) 应用的快速部署,支持业务的快速上线;

2) 应用的快速扩容,及时应对业务量的变化,避免业务中断;

3) 合理分配资源,提高资源利用率。

所以DCOS平台开发之初就努力实现了根据业务负载进行自动弹性扩缩容的能力。全自动的扩缩容功能是一般云平台产品难以实现或实现不理想的方面,我们结合多年的系统运维经验,实现基于并发数、CPU和内存使用率等容量指标进行自动弹性扩缩容调度的算法,弥补开源产品不具备的能力。通过全自动的扩缩容功能,应用的扩缩容时间从传统集成方式的2-3天缩短到秒级,而且不需要人工介入彻底改变了资源分配的模式,容量管理从“给多少用多少”向“用多少给多少”转变,变被动为主动

自动弹性扩缩容1.0版

DCOS平台在上线之初实现的自动弹性扩缩容1.0版本由数据采集、弹性调度、策略配置三个模块组成,架构图如下:

1) 数据采集模块对应用容器CPU、内存、并发数等指标数据进行采集,并存放到指标库;

2) 弹性调度模块实现扩缩容算法和执行扩缩容动作,其读取指标库中的指标变化,根据配置的扩缩容规则进行计算,判断是否需要扩缩容,如果需要,计算出扩缩容的实例数,调用Marathon执行扩缩动作,完成扩缩容。

3) 策略配置模块对扩缩容的规则进行配置和维护。


实践中存在的问题

1.0版本虽然实现了基本的自动弹性扩缩容能力,但存在一些问题:

1)弹性策略配置灵活性差:由于指标与调度算法耦合,需要增加新的指标类型或者增加新的调度算法,需要对弹性扩缩算法代码进行更改上线,策略配置灵活性差;

2)调度算法单一:只支持根据指标简单的加权计算,根据阀值进行判断的算法,不支持定时策略及自定义算法;

3)误判:由于外部故障等原因导致指标变化,产生误判,严重情况下将导致扩容风暴;

4)无高可用保障:采用简单的脚本部署,无高可用。


自动弹性扩缩容2.0版

为了解决以上问题,我们启动了自动弹性扩缩容模块的重构工作。主要通过模块的解耦将调度、算法和数据进行分离,并引入插件机制支持自定义的算法,实现调度算法的灵活扩展。自动弹性扩缩容2.0版本提供以下能力:

1、 策略配置灵活性通过模块的解耦将调度、算法和指标数据进行分离,基于不同的指标和算法,动态配置弹性调度模式

2、 多种调度算法能力相对于老版本仅支持基于阀值的单一弹性策略,新版本实现支持阀值策略、定时策略、趋势策略、融合策略的不同算法能力

3、 自定义调度算法能力:算法和数据分离,算法模块只实现基本的算法,通过数据分析模块产生间接调度指标数据驱动弹性算法模块,实现了自定义指标和算法的能力。数据分析模块可以通过自定义插件方式进行指标的生成,可以通过趋势分析、人工智能等技术来实现

4、 智能误判抑制能力:将外部故障等因素作为指标进行输入,避免因为非业务压力原因导致错误的扩缩容;

5、 高可用和故障自愈:自动弹性扩缩容模块作为DCOS应用进行部署,使用DCOS保障模块的高可用和故障自愈。

自动弹性扩缩容2.0版本由指标采集、告警模块、数据分析、弹性算法、调度管理、策略配置等模块组成,架构图如下:

1) 指标采集模块容器CPU、内存、并发数,应用指标,日志等指标进行采集,并保存到指标库中

2) 告警模块对指标进行监控,将异常信息记入指标库,供弹性算法进行错误抑制;

3) 弹性算法实现定时策略、阀值策略、趋势策略、融合策略等基本的调度算法,其根据指标、扩缩容策略、算法生成扩缩容指令。

4) 数据分析模块产生间接调度指标数据驱动弹性算法模块,实现自定义指标和算法的能力。数据分析模块可以通过自定义插件方式进行指标的生成,可以通过趋势分析、人工智能等技术来实现。

5) 调度管理模块进行扩缩容计算的调度和扩缩容的执行。

6) 策略配置管理模块对扩缩容的规则进行配置和维护,支持自定义的间接调度指标的配置。


新版升级后效果如何?

效果很明显,有图更直观!如下图,生产系统中的某地市应用于上午10点半左右有大流量突发,弹性扩缩模块及时响应,进行自动扩容。同时随着客流的减少,又进行自动缩容。极大的提高了资源利用率,同时在用户无感知情况下进行扩缩容,保证了业务的连续性。

通过SDDCOS平台的统一日志功能,可以看到当前平台扩缩的一些日志,清晰的看出应用的自动扩缩容情况。


接下来要做的工作?

使用趋势分析、人工智能等技术手段,能够对业务的访问量进行提前的预测,提高扩缩容的及时性和准确性,保证业务的连续性。






 
三墩IT人 更多文章 运用流技术助力实时精准营销 跨数据中心大型双活X86虚拟化资源池研究 “晓”说运营商核心能力掌控之路 “晓”说运营商去O(上) 三墩IT人优秀代表三少同学获评年度杰出员工
猜您喜欢 距离全方位掌握Apache spark 2.0你就差最后两步 三分钟全球能源资讯(油价涨) 美猴王就是中国的动画史 Mac PHPStorm 使用心得 apache2.4.x三种MPM介绍