《云计算架构技术与实践》

《云计算架构技术与实践》一书的相关内容,以及云计算、互联网、大数据等相关的话题...

华为FusionStage PaaS平台技术探秘之应用调度与资源管理

1、  什么是应用调度与资源管理框架?

     应用调度和资源管理技术,它主要解决的一个问题就是当企业有大规模的硬件或者在数据中心有很多虚拟机或物理机的时候,如何才能把你的应用部署到这些机器上面去?并且保证这些应用能够高效稳定的运行。

     实际上这不是一个技术,而是一组技术,包括自动资源管理、调度算法、网络打通,应用负载均衡自动设置。这些都是应用调度与资源管理的一部分。那为什么叫这个呢,实际上这个是云化,我们大家都谈云化,应用怎么上云,华为公司本身也有全面云化战略。云上应用特点是什么,应用和数据中心的资源抽象出来,分开了。从用户角度来讲,你的应用和服务在哪里部署,运行在什么地方,实际上客户和用户是不知道的。解决这个问题实际上就是应用调度与资源管理。公有云和私有云都有这项技术,因为这是云的最基础东西,包括华为云、谷歌公有云,亚马逊和微软的公有云,他们里面都有这个技术,可能不叫这个名字,相应技术都有。例如私有云相当于红帽的openshift或者pivotal的CF,也有这层技术。任何平台如果没有这项技术其实是不能称为云平台的。

 

2、  这项黑科技到底黑在哪里呢?

     应用调度与资源管理技术是华为FusionStage PaaS平台中三项技术框架中的一项,它主要做的事情就是把容器应用部署在一个大规模的容器集群上面。

     假设在企业当中有一个大规模的集群,在这个集群中有各种各样异构的硬件,企业面临一个比较现实的问题是:把一些容器应用部署到节点中去,这就存在一个问题,你应该如何快速高效的把各种各样不同类型的应用部署到各种各样不同异构的节点中去。既要保证部署的速度,也要保证部署的质量。

     目前华为以Kubernetes为基础,然后对它做了一些优化和改造,改造有3个目的:第一是让调度的速度变快,原先部署一个大规模的集群可能需要1个小时左右才能把所有应用部署上去,现在在我们使用新的技术做了改造之后,大概在10几分钟,就可以把这个集群上面的应用都部署完成。在调度方面我们可以提升大概3-4倍的部署速度。

     第二项是我们在部署的准确度上引入了一些算法,包括应用的亲和性和反亲和性,假设你有应用A和应用B,他们两者之间有一定排斥或亲和的关系,以达到数据的高度访问,这就是亲和性调度,你可以把应用A和应用B能够在我们集群当中成对的吸引部署在一起,可以提升部署的准确性,还有一种准确性提升的场景是,有时候你会保证同种应用部署的高可靠性,我希望把A应用的实例均匀的分散在各个节点上面,而不是他们部署在一起,一台机器挂掉之后,这个应用就不可以用了。我们可以通过反亲和性算法把应用均分在各个机器上面,今后我们还会均匀分布在各个数据中心里面,这样我们就提升了它的可靠性。

      第三项是我们对资源调度做了一个超卖的技术,这个技术可以最大化的利用集群的资源,我们把资源分为两类,第一类是长任务应用,这类应用需要保持固定的资源给它,如果是短任务类型的应用,也就是说对资源实质性要求没有那么高的应用,我们可以在长任务应用没有占据那么多资源的时候,把容器给部署上去;当这些长任务应用需要更多资源的时候,我们可以驱逐这些短任务应用,就是把他们杀掉,然后在别的地方启起来,在这个过程当中,我们可以达到使用1份的资源,可以运行两份甚至更多的实际跑的应用,使资源利用率达到最高。

     这就是我们在应用调度和资源管理方面所做的工作。

 

3、对于企业而言,究竟实现了什么价值?

     对于企业来说,前面提到的三项资源管理技术,第一项是是调度速度,第二项是准确率,第三项资源利用率。这三项给企业带来的实际价值是什么呢?

      第一项,调度速度这一项,我们可以更加快速的对应用进行部署,除了部署之外,还可以对应用进行快速的扩展和收缩。可以适用于企业某项业务突然爆发性的增长,类似于VMALL商城中的秒杀场景,可以快速的扩展或收缩应用,这样对企业还是很有价值的。

      第二项,部署准确率这一项,保障了对应用的高可靠性,各个机器,各个数据中心里均匀部署应用,这样可以在系统不可用的时候,你的应用依然可以用,同时你还可以提升它的性能,因为你在部署的时候你可以把应用部署到离你客户最近的地方去,从而达到数据就近访问,提升客户体验。

      第三项,资源利用率,在一个相对而言硬件比较差的环境之下,或小规模的集群下面,你可以跑更多的节点,从而为企业节省更多金钱和机器管理的精力。

 

4、华为FusionStage PaaS平台上有几个技术特性是很有特色的。

第一个是混合编排,一个应用如果有很多不同的形式,可能是容器、虚拟机或裸机,混合编排就可以把应用对应资源不同的需求,对容器对虚拟机对裸机的需求同时部署下去,实际上用户不感知,用户只需要在部署的模型上说明哪个模块是容器形式,哪个模块是虚机形式,各种模块需要多少资源,这个技术就可以自动找资源给部署下去。

第二个特色是平台的规模,这个规模跟业界的openshift等相比,华为的集群规模更大,而且同时做了集群联邦,这也是华为FusionStage PaaS平台的独有特性,把多个集群联在一起,这个集群本身可以在不同的数据中心,也可以是在同个数据中心不同的区域里面,这是另一个比较有竞争力的特点。

第三个是我们在资源管理上面有一个特别的技术叫资源超卖技术,作为云的运行者或提供者来讲,他最在乎的是资源的利用,很多应用说是需要那么多资源,其实也并非需要那么多,在这种情况下,平台有一种资源超卖技术,可以把没有用掉的资源超卖给其他的应用,当然这个应用在需要资源的时候,我们可以马上把资源释放回来。


本文作者:钟成、熊英

 

阅读更多
文章标签: DevOps FusionStage PaaS
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭