首页 > 娱乐前沿 > 产经
【大规模容器丛集实例】百度打造自家PaaS私有云,1人也能维运10万台Container
洛洛 2016-10-08 10:44:03

BOAS架构中最底层的IaaS层,由伺服器、网路、储存等元件组成,并且利用百度自家开发的Matrix丛集作业系统,可对大规模Container进行调度。(图片来源/百度) 93R我酷网

从搜寻引擎起家的百度,除了原有的搜寻服务,近年更跨足于地图、行动团购服务糯米,并且经营中国最大社群论坛贴吧。负责建置百度PaaS私有云平台的百度资深工程师段兵表示,百度内推出任何一个产品,投入研发人数往往超过100人,每周发布新版本次数超过50次,而维运团队需要更需要管理超过1,000台伺服器及100个不同的应用程式。93R我酷网

但他表示,在传统IT架构下,不仅硬体资源的使用效率低落,而且过去应用程式直接部署于裸机的做法,导致各服务与底层作业系统、函式库的相依性高。面临结构越来越複杂,以及规模增加的业务,「如何支撑系统运作,并且进行快速地更新、迭代,是百度所面临的挑战。」因此,早在Docker爆红的2013年之前,百度就开始着手利用Container技术,打造自家PaaS私有云平台BOAS(Baidu Open Application Service)。93R我酷网

BOAS五大阶段发展93R我酷网

诞生于2012年的BOAS平台,源自于百度对于PHP地依赖,在2010年时,百度将从过去C语言开发,大量转为使用PHP开发应用程式。段兵解释,由于PHP是一种无状态(Stateless)的脚本语言,除了能快速实作应用程式逻辑外,相比过去使用C语言,一周只能发布10次新版本的速度,使用PHP进行开发的发布次数则大大增加,但是同时,「维运成本同时也大幅增加。」此时,百度便萌生开始利用Container架构内部私有PaaS平台BOAS的想法。次年,百度则替BOAS平台进行深度PHP客製化,并且将贴吧的前端业务系统整合至BOAS,「对于BOAS稳定性是相当大的肯定。」93R我酷网

在整合百度贴吧前端系统获得成功后,2014年百度更大举将百度钱包、糯米等核心业务整合至BOAS,同时将大部分使用Java开发的Web服务也移转至BOAS平台。在这两年中,贴吧后端系统更一併整合至BOAS中。93R我酷网

然而,为何百度陆续地将核心产品整併至BOAS中?「主要是源自我们对迭代速度提升的要求」,段兵表示,目前BOAS仅需要1名维运人员,就可以管理2万台伺服器及超过10万个Container,除了维运效率提升5倍之多外,「硬体资源使用率总共提升了20%,服务稳定度也超过99.99%。」93R我酷网

没有BOAS前,开发过程繁複而且缓慢93R我酷网

在过去还没有BOAS平台中,在研发团队拿到需求设定文件后,得开始布建开发环境,并且编写基础函式库以及应用程式码。在完成开发流程后,开发团队则将程式码提交给测试工程师。此时,测试团队也得要自行建构测试环境。93R我酷网

结束测试阶段后,则进入产品发布阶段。这阶段中,维运团队得要採购伺服器、建置正式环境,并且负责部署应用程式等繁琐工作。在服务成功上线后,则会生成许多系统Log资料,维运团队也得根据营运状况,进行系统性能分析并产出报告,「过去的流程不仅角色多,过程也複杂,导致研发速度缓慢。」93R我酷网

因此,在导入BOAS后,不仅简化了流程,也减轻各角色间负责的工作。段兵表示,现今研发团队拿到需求开发后,只要专注心力在开发程式码即可,「BOAS会提供开发环境、测试环境。」在完成测试阶段后,BOAS则可让开发者建置正式环境,提供程式码部署、引进使用者流量等服务。93R我酷网

当产品已经进入正式环境后,BOAS也能提供资料收集服务,让维运团队不再需要手动收集系统资料,就能提供系统性能分析、监控警报,并根据这些系统资讯产生维运报告,「这就是BOAS能达到的效果。」段兵表示。93R我酷网

BOAS的三层架构:IaaS、PaaS,以及SaaS93R我酷网

不过,究竟BOAS是何种PaaS平台?段兵给了一个定义:「可以让使用者灵活地管理应用程式生命周期,并採开放形式管理的PaaS服务。」他认为,BOAS总共包含三大特色:灵活、明确规範,并且横跨应用程式的生命周期。第一特色为灵活,使用者可以透过UI介面、API操作BOAS,并且根据不同需求,提供客製化解决方案。93R我酷网

第二,BOAS平台有订定明确使用流程,必须符合百度内部的开发模式。像是整併于BOAS的百度贴吧、糯米、百度云等产品,「我们不是针对各产品提供相异服务,而是使用统一的PaaS平台。」最后,在应用程式的开发、测试,到上线阶段中,都可以透过BOAS执行。93R我酷网

而BOAS的结构,则包含了三大层:底层IaaS、中间层PaaS,及最上层的SaaS。最底层的IaaS层,由伺服器、网路、储存等元件组成,并且利用百度自家开发的Matrix丛集作业系统,可对大规模Container进行调度。在中间的PaaS层中,则建构了许多模组化服务,包含资源管理、变更发布、流量引入、监控警报、映像档服务。最上层的SaaS,则是运作了贴吧、糯米、地图等服务。93R我酷网

93R我酷网

百度资深工程师段兵认为,效能对建置私有云有相当重要的影响,因此「快速启动、高性能是我们选择Container的主要原因。」93R我酷网

效能是百度採用容器的首要理由93R我酷网

段兵比较了VM和Container这两个虚拟化技术间的优缺点。相比于Container,VM的隔离性、资源限制机制都更好,但是运作性能方面,VM约会耗损20%的CPU效能,而Container仅耗损5%,性能直逼裸机。在启动速度上,Container更是以毫秒为单位计算。他认为,效能对建置私有云是相当重要的考量因素,「快速启动、高性能是我们选择Container的主要原因。」93R我酷网

在决定选用Container作为BOAS底层架构后,管理方式也会与VM相当不同,「IT架构发生极大变化,底层不再是由单机的CPU、网卡、储存设备构成,而是许多分散式丛集组成。」段兵表示,百度也分别在北京、上海及香港等地设置IDC机房,而使用此些机房为基础,结合分散式作业系统,将硬体资源整合成统一资源池。93R我酷网

针对单一Container,百度也设计了相关机制,进行资源进行隔离、限制。段兵表示,百度自製的Container引擎也仿效Docker的设计,支援资源限制cgroup,以及PID程序隔离机制,但是在单一容器能取用的资源上,则设计了两个参数Quota及Limit,前者保障Container使用的硬体资源,后者则定义了资源使用上限。段兵举例,像是针对单一容器,使用者可就可以限制其储存参数Quota为4GB,Limit则为6GB,其实际用量可以介在两者之间。此外,使用者甚至可以设定为-1GB,来降低其优先程度。93R我酷网

除了单一Container设定和优化机制,更关键的是在大规模容器调度的设计,百度也做了特别的考量,而BOAS平台的设计概念总共从四大维度为出发点。第一是离散度,段兵解释,离散度是釐清运行某服务可分配到的实例(Instance)数目,此举有利于将服务平均分配在不同机柜、伺服器中,减低硬体故障对服务造成的影响。第二是服务依赖程度,部署于同一主机中相异服务间的沟通、联繫。93R我酷网

再者是副本控制,BOAS平台同时支援水平扩充(Scale-out)以及垂直扩充(Scale-up),前者是控制Container副本的数量,后者则是重新调整Container中Quota、Limit参数的大小,「因为业务刚开始上线营运时,很难评估资源的需求为何。」93R我酷网

为了实现自动化及减少维运成本,百度得让BOAS具备自动扩充(Auto-scaling)功能,段兵认为,此功能解决的核心问题是「对容量的评估不够準确」,即便对系统进行监控、分析,也很估算出特定时间内服务所需要的容量为何,「自动弹性伸缩机制就是要解决此问题。」93R我酷网

在建置自动扩充功能时,段兵归纳出数个导入前的评估指标,像是必须事先计算应用程式的CPU利用率、使用者流量,推估未来服务的容量是否足够。再者,使用者也得计算未来需要扩增多少实例,比较推算结果是否与符合预期数字。此外,每次新增的实例数目都得有所限制,「因为弹性扩充必须设定冷却时间,即下次进行水平扩充所需的最短时间」,如果实例数量扩张过多也必须进行移除。93R我酷网

然而,除了系统自动动态扩张,针对未来可预期的爆增流量,也必须事先进行準备。段兵举例,像是中国各大电商促销日往往来带爆量人潮,如京东618大型促销活动、百度糯米517吃货节,或是阿里巴巴双11特卖,「可预期这些期间流量会大幅成长,得预先计画在某些时段进行扩充。」93R我酷网

93R我酷网

BOAS平台提供了服务实例视觉化图表,可呈现容器实例进行水平扩充后,资源池可调用的总资源也下降的关係。93R我酷网

系统监控带来维运视觉化、自动化93R我酷网

BOAS平台掌管了超过10万个Container ,自然不可能单靠人力手动维护,自动化监控系统也就成为重要功能,「监控的核心价值在于,让维运工作视觉化、自动化。」段兵解释,系统资料视觉化让维运团队、开发团队可以观察某服务在正式环境的运作状况,并且利用视觉化介面,改变应用程式的状态,而系统自动水平扩充,不需藉由人力新增伺服器纾解流量。93R我酷网

监控系统得蒐集的资料除CPU、记忆体、硬碟等硬体运作资讯外,也会从业务日誌统计程式码错误、每秒查询率等数据。在备齐了这些资料后,也得进行资讯整合,所以BOAS可供使用者不同资料尺度进行检视,大至IDC机房、丛集,小至各服务、实例。93R我酷网

利用这些数据,BOAS系统还能对开发者进行预警,例如,当某应用程式CPU使用率过高,导致伺服器过载时,就必须进行水平扩充,或是发现服务发出HTTP 503、500等错误讯息时,就得要重启服务,或是将服务搬迁至他处。93R我酷网

93R我酷网

聚合:App监控93R我酷网

BOAS平台蒐集系统运作资讯,并透过视觉化方式呈现,例如展示应用程式当前的运作情况,针对状态异常的服务,维运团队也可重新启动。93R我酷网

93R我酷网

Container监控93R我酷网

使用者可以利用BOAS平台的监控系统,观测Container每段时间记忆体、CPU的使用比例。93R我酷网

建置BOAS平台三大心得93R我酷网

在建置BOAS过程中,段兵也归纳出3大心得。第一是利用背景程式(Daemon)启动Container,即便资源管理、部署管理系统皆发生异常,仍然不能影响Container内执行的程序。第二则是技术架构革新对组织带来的影响,「云端化是一个技术变革,而技术架构的变化,也等同于组织架构的变化」,必须逐步地革新。93R我酷网

最后是Container共用作业系统核心的特性,使其先天隔离不如VM的弱点。对此,百度也设计一些机制,藉以补强其弱点,像是对每个服务设定SLA,对于每个业务使用资源设定预期值,「一旦超过,可以透过第三方外挂程式进行处理。」段兵表示。93R我酷网

?相关报导 ?Container平台新挑战:超大规模容器丛集怎幺管?93R我酷网

上一篇  下一篇

I 相关 / Other

【大规模容器丛集实例】雷亚游戏借助Kubernetes,3人搞定百万玩家App底层维运

雷亚游戏技术长钟志远解释,Kubernetes不如IaaS的操作,必须深入至VM层级手动建置服务,但是也不受限于PaaS环境的局限,可以在Container环境中选择偏好的技术建置开发环境。(图片来源/雷亚游戏) 席捲IT业界的Co

武进:太湖湾打造全域旅游品牌:旅游专线首发,公共自行车入驻 [热事件]

法律法规网讯一路上都在看风景,不想跟朋友聊天。如果你以为这是一个文艺青年穿越青藏线的内心独白那就错了,这是坐上太湖湾旅游专线首发班车游客的真实感受。4月12日上午10点,三辆免费专线车满载着游客从太湖湾北广

阿爆300铁卷打造完美爆炸头 苦笑:蛮麻的

▲阿爆和MATZKA合唱专辑歌曲《vavayan 排湾女孩》。歌手阿爆7日晚间于西门町“河岸留言”举办新专辑“vavayan - 女人”首场演唱会,香港歌手岑宁儿现身支持,同为“排湾女孩”的琇琴也送上排湾族传统食物“阿拜”为她

打造山水林田湖一体的美丽国土 [热事件]

新华社北京10月7日电题:打造山水林田湖一体的美丽国土新华社记者王立彬《生态文明体制改革总体方案》提出山水林田湖是一个生命共同体。在此理念下,推动多规合一,探索自然资源统一登记,统筹陆地海洋整体保护和系统

秋冬路跑潮 新鞋款为中长距离跑者打造

秋冬路跑掀热潮,高强度的跑步训练更需要具保护性及灵活性的跑鞋。国际运动品牌New△Balance与UNDER△ARMOUR,针对中长距离跑者与高强度训练者,端出新鞋款吸引跑者关注。台湾民众疯路跑,越来越多人喜欢参加路跑活

I 热点 / Hot