热词:
首页 >  新鲜资讯 > 用实践检验真理 百度私有云架构经验分享
用实践检验真理 百度私有云架构经验分享
1.34万
2014-05-21
来源: 互联网

手机百度 (8.3.1)

41.58 MB

“我们不仅仅关注运维,同时还关注开发、测试和评估,从而提供一体化的解决方案来满足产品线快速迭代的技术需求。最终我们期望通过基于统一的资源池,提供统一接入、开发测试、弹性调度、分级发布、监控评估等标准化的解决方案来支撑贴吧、社区、搜索、移动云等各个产品线。这是OXP平台的整体定位”5月17日,百度Lamp基础技术、XP私有云平台和贴吧基础设施负责人许立强在第50期百度技术沙龙现场上说。

云计算并不是一个新话题,但是在中国的发展依然不温不火,随着AWS的入华,人们对云计算,尤其是私有云的关注再次升温。本期的百度技术沙龙,许立强就百度在私有云架构的资源管理、分级发布和弹性服务的方面的成果与经验与听众进行了分享互动。

“我们要把通用服务做成专业服务,把服务运维起来,形成一个品牌管理它,同时提供一些开发辅助支持它。”百度Lamp基础技术负责人许立强说。

百度云架构的资源管理:兼顾性能与成本

在活动中,许立强首先与我们分享了百度云架构资源管理的发展历程。

在服务器资源管理领域,Google 公司的软件系统Borg最富盛名,而使用LXC的应用容器引擎Docker则自2013年以来颇受业界追捧。在服务器资源管理领域,百度对业界之前的成功经验既有借鉴学习,也有着眼于自身问题的调整创新。

在开始阶段,云服务的资源管理主要面临两点问题,即既要做到支持混合部署,还要避免程序之间相互影响、抢占资源。在多种可选方案中,Cgroup技术以其操作系统级别的虚拟化机制、极低的性能损耗和相对经济的实现成本成为了百度最终选择的资源管理方案。

随着运算与流量的承载量日益上升和用户数量的激增,服务器的资源分配等一系列问题逐渐浮出水面,。2012年,百度自主推出了ArkOn资源分配算法,实现了空闲优先、Group打散的资源分配方式;2013和2014年,百度引入了namespace和Matrix架构,加强了资源隔离,完善了用户权限认证,进一步完善了百度云架构的资源管理问题。

“从技术上来说,第一个就是资源隔离,第二个就是资源的管理和调度,这就是我们对资源管理的总结”,许立强说。

百度云架构的分级发布:需求驱动,化繁为简

“分级发布在大的互联网当中真的是必备的东西,所以百度云服务必须要支持。也许你觉得做分级发布并不难,但是结合云架构来做的时候,分级发布真的是整个体系中的难点”,在谈到云架构分级发布的问题时,许立强说。

在百度云架构运行初期,由于小产品线更新迭代少,分级发布与系统底层动态扩容实现之间的冲突是当时面临的主要问题。对此,百度的技术团队选择了整包部署与产品线锁相结合的解决方案,随后的实践证明,这一组合方案不但在思路上化繁为简,在执行上也效率极高。

随着大规模产品线的引入,产品线的更新迭代速度大大加快,多模块并行发布成为必需。2012年,百度针对之前的分级发布策略做出了相应的调整,由整包发布改为按模块划分的增量发布,由产品线锁变为模块锁与文件锁,由串行更新改为模块并行分级发布。2014年,随着集群规模的扩大,扩容和上线无法并行,为解决这一问题,百度再次引入了追单系统,从而实现了系统事实上的并行。

“整包很理想,现实很骨感”,谈起百度云架构发展的历程,许立强笑着对听众们说。

百度云架构的弹性服务:自动化的步进式实现

在实现云架构弹性服务方面,百度同样经历的长时间的探索。首先面临的就是机器故障的处理问题,快速膨胀的业务量对服务器的稳定性提出了极高的要求,而人工介入处理时间长,成本高,已经不再适用,故障处理得自动化势在必行。监控——报警——处理的故障解决思路看起来虽然简单,但如何判断是死机还是网络抖动?故障机器是否直接下线?这些问题在系统自动化的实现中都是难以克服的问题。对此,百度引入了故障自动下线——container自动迁移——Runtime自动重启的三步处理方案,实现了错误的自动处理。

如何提升资源利用率,同时提升系统稳定性,这是云架构弹性服务中的另一关键性难点。由于业务资源利用率波动性大,又直接受到流量、性能等多方面因素影响,如何实时分配系统资源就成为解决这一问题的关键。 对此,百度提出了“弹性伸缩”与“自动屏蔽异常处理”的策略,一方面使业务随着性能、流量的变化自动伸缩调整,另一方面保证偶尔出现的故障被及时隔离,不影响整体架构和云端业务正常运作。

“业务的实时监控和决策数据有了,异常调度已经做到自动化了,但是弹性伸缩还没有做到自动化。”许立强表示,百度将继续探索与推动云架构弹性服务的发展。

百度技术沙龙是百度每月组织的一项技术开放交流活动,至今已经举办50期。致力于以“技术开放”的心态,分享行业领先的技术理念和技术实践。秉承“畅想、交流、争鸣、聚会”的理念,为互联网工程师、软件开发者提供一个快速学习和不断成长的平台。这种倡导变革与分享、践行技术开放的行动得到了业内专家们的认可,他们认为,百度技术沙龙能够有效推动中国互联网的技术发展与行业创新。