微博混合云DCP:极端流量下的峰值应对与架构挑战

在2016杭州云栖大会的“开发者技术峰会”上,来自新浪微博的资深运维架构师王关胜带来题为《微博混合云DCP:极端流量下的峰值应对与架构挑战》的精彩分享,分享中他从微博业务背景及峰值应对、DCP的架构设计挑战、业务上云的标准姿势三部分详细介绍了微博在应对极端流量情况以及架构设计上的经验。

以下内容根据演讲PPT及现场分享整理。



微博业务背景及峰值应对

做为目前最火的国内社交APP,微博常常在特定时间或特定事件发生时迎来流量高峰。通过对近五年时间应对的峰值进行总结,可以抽象为三种常见的峰值:第一种是日常的晚高峰;第二种各种运营活动以及明星、大V的热门微博所带来的流量高峰;第三种是类似王宝强这类非常极端的突发事件导致的核心服务数倍的流量增长。

之所以需要关注这三类场景:第一是因为尽管微博的功能众多,但冗余是非常少的,因此早晚高峰需要弹性扩容;第二活动、大V的热点事件能够提前预知,可以提前准备所需资源;第三极端事件是最需要关注的,它对系统的自动化程度要求非常高。

这三类场景可以简单总结为两大特点:瞬间峰值高、互动时间短。在应对流量峰值时,微博面临着以下三点挑战:

  1. 产品迭代快,目前微博的现状是功能多,依赖复杂,导致发布和变更频繁;
  2. 运营上,站内外,活动、运营、大V均有Push场景,导致全量极速下发,互动时间短;
  3. 技术上存在突发的极端流量,目前热点多,“马航”、“王宝强”等事件十分考验服务的弹性伸缩。

那么在应对流量峰值时,应该主要关注哪些方面呢?

 

 

第一点是快速扩容、及时回收,这考验的是系统的弹性扩容、峰值应对的能力,这也是系统设计的最核心的目标;第二点要注意成本优化,可伸缩的业务利用公有云,私有云内弹性部署;第三点是运维标准化,微博流量来源主要是PC端和移动端,但两者的开发语言是不同的,因此系统需要打通多语言环境,通过Docker实现全公司统一平台;第四点,由于业务迭代快速迭代,因此基础设施需要标准化,以供公有云和私有云使用。

传统的峰值应对手段第一步需要设备申请,项目评审;第二步需要入CMDB,上架装机;之后需要设备录入资源池,机器初始化;第三步需要运维人员进行服务部署,包括环境、监控、服务部署和流量引入;当流量峰值下降时,还需要服务自动下线以及设备置换或下架。整个链路十分冗长,大部分操作需要人工介入,而且依赖于企业内不同部门相互配合,在业务快速发展的今天,传统应对峰值的手段显然已经过时。

 

目前,微博采用的是DCP的弹性伸缩方案来应对流量峰值,具体架构如上图所示。架构内部主要采用私有云,早期采用物理机部署,通过化零为整建立冗余池;此外通过OpenStack+KVM的虚拟化方式进行资源整合,建立VM池。在公有云方面,通过采用阿里云等设施进行多云对接。

建立统一的设备资源管理池后,下一步需要考虑的是服务部署、资源调度等问题。目前,微博采用的是基于Docker的云化架构:业务上,由于部分业务并非无缝迁移到该架构上,这时需要对业务进行微服务化、消息化等改造;平台上,需要部署敏捷基础设施,打通持续集成平台以及实现多租户隔离、弹性伸缩、故障自愈等能力。

除了公有云具有弹性伸缩能力之外,私有云也可以具有弹性。公司内某个部门可能就有很多业务,如果每个业务都保留很多冗余则会导致资源的大量闲置浪费。微博采用的是将每个业务的冗余拿出来放到共用的共享池内,当业务有需求时,从共享池内申请冗余;使用完成后归还申请的服务器,通过这种方式实现私有云的弹性伸缩。

在应对流量峰值时,除了上文提到的弹性伸缩系统,还需要统一的监控平台、核心链路服务自动伸缩、预案&干预手段相互配合,以保障峰值服务正常运行。

DCP的架构设计挑战

上图是微博的DCP整体架构图,最底层是物理主机资源;第二层是资源调度层;第三层是编排层,主要包括一些常见的自动化操作;最上层是业务层,由多种语言混合开发;架构的右侧是主要的基础设施。

在架构设计中面临的核心挑战主要包括三点:

  •  镜像分发,包括镜像优化和分发速度的优化;
  •  隔离设计,包括平台层隔离和部署/实例隔离;
  •  弹性伸缩,包括自动扩缩容和故障转移。

挑战一:镜像分发——镜像优化

 

镜像优化主要从两点入手:一是镜像制作优化;二是仓库部署优化。在镜像制作时,采用镜像分层,逐层复用,其次制作一些微镜像,用于分发速度提高。仓库部署优化,当业务集群访问Registry时,从早期的本地存储镜像改进为分布式存储,同时在阿里云上部署大量镜像缓存Mirror。

镜像分发——分发速度

由于弹性伸缩大部分是在公有云上实现的,因此对镜像请求最大的也是在阿里云上,通过在阿里云上以级联的方式部署大量的Mirror,加快镜像分发速度。

常规情况下,部署几台Mirror即可,当弹性扩缩容时,将Registry横向扩容,作为业务扩容的依赖,业务扩容根据一定的配比关系,先将Registry进行扩容以及镜像的预热。这其中优势在于:

  •  将Registry进行分级部署,常时只部署一部分,扩容时进行大批量横向部署;
  •  将每一个Registry的带宽优化,这是因为Mirror是部署在ECS上,而ECS单机的PPS和带宽都是有一定限制的。

整体架构的目标是实现分发速度千台规模分钟级,未来的方向是在扩容层面支持P2P的镜像拉取方式。

挑战二:隔离设计——隔离模型


隔离又分为平台上隔离、部署上隔离和实例上隔离三种。平台上隔离是指一个集群对应一个部门,例如微博平台、红包飞等有各自对应的大集群,内部的业务在下一级进行隔离;部署上隔离是指同一业务需要在不同机房部署,例如一个Feed业务在几个内部机房都有部署;实例上隔离主要是指CPU、MEM等通用的资源上进行隔离。隔离模型的右侧是资源共享池,作为全局共享池和集群Buffer池。

隔离设计——平台层设计


在隔离模型中,平台层设计如上图所示。最上层用于接入业务,根据业务模型去定制一类的扩缩容、Job操作,如Java类、PHP类、大数据类;其次对外提供了丰富的GUI页面以及REST API用于用户操作。

接入层之下是平台层设计的最核心的部分。如上文所讲,一个产品线对应一个集群,将产品线上的业务场景抽象成定制化的模板、原子型API、任务实例和环境变量,然后再进行隔离设计,形成产品线的扩缩容流程。在底层的单个节点上采用根容器存放业务中通用的部分,如系统资源的监控。

隔离设计——平台用户操作规范

由于对平台进行了隔离设计,为不同的管理员规定了不同的操作范围。在系统中,管理员主要分为超级管理员、集群管理员、服务池管理员三种,三种管理员的操作权限如上图所示,这里不再一一叙述。

挑战三:弹性伸缩——“无人值守”的扩缩容

在应对流量峰值时,单单依靠管理员进行人工操作是远不够的,因此“无人值守”的自动化扩缩容显得十分必要。要实现“无人值守”的扩缩容,首先内部的工具系统需要实现自动化,各系统之间通过API打通,实现全部系统间的联动。

运维自动化包含业务指标和容量指标监控,将产生的数据提供给容量决策系统,在容量决策系统的决策下,实现从运维自动化进化为无人值守的扩缩容。

“无人值守”的三个核心在于弹性伸缩、故障迁移和服务自动回收,与之对应的是模板中原子型API(平台提供了第一版可用的原子型API,业务方也可以自定义所需的原子型API)。

弹性伸缩——扩容模板

如上图所示,在平台扩容时管理员需要向混合云平台发起请求;平台进行资源评估,如果配额足够,可以按照配额量申请;如果配额不够时,需要申请配额,防止资源滥用。

当申请到设备之后,需要调用系统内部的基础设施、配管系统等进行初始化操作,然后在调度中心发起容器调度、部署服务,服务部署之后会注册到Consul集群中。如果服务想对外提供服务,还需要将其接入统一负载均衡系统中,进行服务发现。最后一步需要添加监控中心。

要将上述步骤自动化,需要将这些步骤抽象成原子型API任务,然后在这些任务之上进行自动化模板设计。

原子型API任务是通过原子型API任务系统Dispatch完成的,它是由新浪自主研发的,采用C++编写,它在每个机器上都有一个Agent,在中心化组件Dispatch端根据任务模板定义任务,具体的任务细节在任务脚本中设计,最终对外提供成API。

弹性伸缩——容量决策

当前有两种容量决策方式:第一种是定时触发,根据自动压测的指标、数据、经验值触发进行;第二种是自动进行,通过分析业务指标,对容量预估,进行同比、环比分析自动进行扩缩容操作。

弹性伸缩——调度编排

上图是定时触发和自动触发的调度编排图,所有的数据存入Consul集群,通过CronTrigger模块定时检测是否有新任务产生,当有新任务产生时,通过Scheduler组件进行详细操作,最终对接服务发现系统。系统的输入是容量决策的数据,输出是扩容之后的业务池。

 

业务上云的标准姿势

 

业务上云时,需要考量以下四点:

  •  安全上,如何解决敏感数据的存储问题;
  •  部署上,如何解决业务依赖问题;
  •  数据上,如何实现数据同步;
  •  自动化,如何实现弹性伸缩。

目前的上云标准姿势有两种:一是混合云;二是XaaS。

在混合云架构中,核心关键是专线,它是实现内部与公有云之间弹性的核心。目前微博和阿里云之间已经拉通了多条专线,日常的核心消息通过多机房的消息组件同步到阿里云缓存中,实现前端层面和缓存层面的弹性伸缩。

在混合云的模式下,微博目前采用了两种部署方案。

第一种如上图所示,除DB不在阿里云部署,其他整个链路全部部署在阿里云上。

第二种部署方案无需在阿里云上启用SLB、Nginx等服务,直接把阿里云中启用的容器放在内部的四/七层服务中。目前在微博中,主要使用第二种部署方案。

时间: 2024-10-02 03:05:32

微博混合云DCP:极端流量下的峰值应对与架构挑战的相关文章

新浪微博上云实践:极端流量下的峰值应对与架构挑战

本文正在参加"最佳上云实践"评选,来给我们投票吧:https://yq.aliyun.com/activity/158(编号1) 做为目前最火的国内社交APP,微博常常在特定时间或特定事件发生时迎来流量高峰.通过对近五年时间应对的峰值进行总结,可以抽象为三种常见的峰值:  第一种是日常的晚高峰: 第二种是各种运营活动以及明星.大V的热门微博所带来的流量高峰: 第三种是非常极端的突发事件导致的核心服务数倍的流量增长. 之所以需要关注这三类场景,主要是因为: 第一,尽管微博的功能众多,但冗

微博 Docker 化混合云平台大剖析

8亿用户.单日活跃人数超过1亿人.每日超过600亿次的API调度.超过1兆次远端程序呼叫,甚至连Log记录档每天都爆增100TB,这是新浪微博平台维运架构师王关胜所面对的挑战,他得设计出一个有能力胜任这些考验的微博系统的新一代架构,而且高层给他的要求是,系统反应时间不得超过50ms. 王关胜表示,微博如此大规模的业务,除了面临系统快速更新的任务,各种不同系统元件间的依赖关系也相当复杂.而当国际事件.名人丑闻等高关注度的议题发生时,经常导致微博的业务量遽增,使得系统流量达到顶峰. 尤其遇到大型节日

企业混合云的安全性浅析

首先是公共云,在公共云中云服务是通过公共互联网提供的.其次是私有云,其基础设施是专为单一组织的专一性使用而设计的,同时通常也是由该组织对基础设施进行托管和管理.社区云则是为一组用户的专一使用而配置的,这些用户拥有共同的商业利益和运营问题(例如安全性或合规性要求等). 最后,就是混合云了,根据国家标准和技术研究院(NIST)SP 800-145中的定义,混合云是"两个或两个以上保持各自实体独立性的不同云基础设施(私有云.社区云或公共云)形成的一个组合,该组合采用的标准或专用技术可实现数据和应用程序

大数据播报|你所不知道的关于“混合云”的几组真实数据

大数据播报第二期 数据1. 混合云市场增长强劲 数据说话 企业对于混合云的规划在未来24个月内会有较大幅度的增长,从目前的8.7%将增长到31.2%.其中尤其企业级用户在混合云上的需求增长幅度最大,从9.9%上升至40.4%. 数据2. 集中统一管理和安全是评估混合云的重要因素 数据说话 中国用户使用混合云最重要的考核因素是跨数据中心和云计算的应用及数据可管理性,从而实现混合云资源和服务的集中统一管理,其次是云计算环境中业务的安全性. 数据3. VMware仍是实现云部署的主要方式   数据说话

探究混合云的发展思路

通过选择正确的技术与合作伙伴,确保基础架构与业务优先事项同时兼顾由于混合云具有平衡能力,它已成为一种领先的云计算解决方案.通过混合云,企业能够将数据.应用和其他计算资源分配到自己专用的私有云或任何第三方公有云基础架构中.这种灵活性有助于组织实现多种业务目标,包括效率.可用性.可靠性.安全性和成本效益. 而且,混合云体系结构还可以同时兼顾不同的基础架构和业务需求. 由于混合云环境会使用企业私有云中已有的技术,因此技术主管可以确保其内部基础架构能继续提供投资回报. 另外,混合云也可使用公有云资源,因

如何借混合云应对当前的五大云挑战

如何借助混合云应对这些挑战 云计算已经在企业中掀起了一场风暴.数字能够说明这一事实.IT 咨询公司 Gartner 最近开展的研究发现,2009 年云计算的行业价值为 590 亿美元,2014 年这一数字便已增至 1500 亿美元.IT 行业协会 CompTIA 最近称,90% 的公司正在以某种形式使用云计算. 每个人都在做这件事,但这并不意味着他们的做法都是正确的.很多企业没有为云计算迁移做好适当的准备,这对其业务造成了灾难性的后果,包括停机时间延长.工作效率降低,甚至导致可怕的数据安全违规事

引入阿里云弹性计算,微博和阿里云实现双方史上最大规模混合云

2015年5月29日上午,李晨与范冰冰在新浪微博上晒出甜蜜合影并配文:"我们",承认了两人正在热恋中.这股"我们"风潮在创造了微博2小时阅读量超1000万的记录,联合国的官方微博也趁热晒出了一张前联合国秘书长潘基文与妻子的合影. 然而,谁也不会想到,娱乐圈的蝴蝶扇动了一下翅膀,竟引发了中国科技界的一次创新,促成了微博与阿里云史上最大规模的混合云实践.当流量激增形成脉冲计算,要保证系统的稳定性和服务的正常运转,唯一的办法就是快速扩容,甚至实时扩容."晨冰恋&

一个晨冰恋,竟促成了微博与阿里云史上最大混合云

2015年5月29日上午,李晨与范冰冰在新浪微博上晒出甜蜜合影并配文:"我们",承认了两人正在热恋中.这股"我们"风潮在创造了微博2小时阅读量超1000万的记录,联合国的官方微博也趁热晒出了一张前联合国秘书长潘基文与妻子的合影. 然而,谁也不会想到,娱乐圈的蝴蝶扇动了一下翅膀,竟引发了中国科技界的一次创新,促成了微博与阿里云史上最大规模的混合云实践.当流量激增形成脉冲计算,要保证系统的稳定性和服务的正常运转,唯一的办法就是快速扩容,甚至实时扩容."晨冰恋&

【双11背后的技术】17.5W秒级交易峰值下的混合云弹性架构之路

选自<不一样的技术创新--阿里巴巴2016双11背后的技术>,全书目录:https://yq.aliyun.com/articles/68637 前言 每年的双11都是一个全球狂欢的节日,随着每年交易逐年创造奇迹的背后,按照传统的方式,我们的成本也在逐年上升.双11当天的秒级交易峰值平时的近10多倍,我们要用3-4倍的机器去支撑.但大促过后这批机器的资源利用率不高,到次年的双11会形成较长时间的低效运行.试想一下,电商交易有大促峰值,而阿里云有售卖Buffer,如果能充分发挥云计算的弹性能力,