一年多前的晨冰恋很多人还记忆犹新。2015年5月29日,李晨与范冰冰在新浪微博上晒出甜蜜合影并配文“我们”,宣布两人恋情。这股“我们”风潮在创造了微博2小时阅读量超1000万的记录,联合国的官方微博也趁热晒出了一张前联合国秘书长潘基文与妻子的合影。
然而,谁也不会想到,娱乐圈的蝴蝶扇动了一下翅膀,竟引发了中国科技界的一次创新,促成了微博与阿里云史上最大规模的混合云实践。
当流量激增形成脉冲计算,要保证系统的稳定性和服务的正常运转,唯一的办法就是快速扩容,甚至实时扩容。“晨冰恋”话题发酵期间,新浪微博开始引入阿里云的弹性计算资源来应对流量短时高峰。
到2017年,包括微博的Feed、广告、搜索、话题、视频、直播、手机微博、图片等多个核心业务系统已部分迁移至了阿里云平台,除夕期间的“红包飞”业务则100%架构在阿里云上。由于微博的用户规模和业务体量以及特殊的社交媒体特性,微博与阿里云不仅实现了双方史上最大规模混合云,而且在全球范围来看也是极具代表意义。
微博独特短时流量高峰现象
根据2017年2月发布的第四财季报,微博表现出强劲营收和盈利能力增长。与此同时,也频繁出现了微博短时间内流量冲高的独特社交媒体现象。媒体和明星名人集中选择微博作为独家发布平台,奥运会期间有近300名运动员发布微博,总互动量接近5.79亿。而霍建华与林心如婚礼等明星公众事件,都给微博造成了短时流量冲高的挑战。
“(晨冰恋)那一次由于峰值流量迅猛且持续时间长,信息流业务受到很大影响,由此我们开始深入研究云计算技术以及如何利用公共云应对流量瞬时高峰。”微博研发中心研发总监刘道儒告诉钛媒体。
他还认为,对于微博来说,需在十几分钟内完成上千台服务节点扩容。如果仅为应对流量高峰而常备一两千台空闲服务器,这对公司来说成本也太大。这就是后来与阿里云合作的起因。
2015年“晨冰恋”之后,接下来一个里程碑事件就是2016年 8月的奥运会,创造了当时微博新的历史峰值,而且是持续的峰值。就是在此奥运期间,微博内部通过DCP平台弹性调度上云的业务都经受住了流量冲击,而没有弹性上云的业务则或多或少受到了影响,也由此引发了后来微博内部核心业务的大规模上云。
除了用户和流量的持续增加外,视频内容的增加也给微博带来了流量增点,这些都需要依赖可靠的IT支撑。
基于Docker的无人值守混合云
微博平台核心总体分为前端和后端平台,前端主要是PC端、移动端、开放平台以及企业开放平台,后端平台主要是Java、PHP编写的各种接口层、服务层、中间件层及存储层。就平台前端来说,每日超过千亿次的API调用、超过万亿的RPC调用,产生的日志就达百T+。这么大体量的业务系统对于运维的要求也很严格,例如接口层的SLA服务水平协议就必须达到4个9,接口平均响应时间不能高于50ms。
每年的元旦、春晚、红包飞等会为微博带来巨大的流量挑战,这些业务场景的主要特点是:瞬间峰值高、持续时间短。每一次峰值事件的互动时间在3小时左右,而明星事件、红包飞等业务,经常会遇到高达多倍的瞬间峰值。微博IT的传统应对手段,主要是“靠提前申请足够的设备保证冗余、降级非核心及周边的业务”这两种,除了需要提前预知相关IT成本外,还有业务负载饱和度不一、扩缩容流程繁琐且周期长等问题。
微博研发中心资深架构师付稳介绍说,为了更好的应对微博这种特殊的业务场景,微博基于云计算等新技术设计与实现了新一代基于Docker的混合云平台DCP(Docker Container Platform)。DCP目前已经具备20分钟将服务器部署规模扩大1倍的交付能力,并在2015年和2016年的双11、三节(圣诞、元旦、春晚)、红包飞等场景中得到了很好的考验,覆盖了100%的微博业务线,包括手机微博、红包飞等。
所谓20分钟内弹性扩容1倍服务器规模,即阿里云要满足10分钟内完成上千台服务器的创建与交付,同时,微博DCP平台则在接下来的10分钟内完成服务器的初始化、服务调度、上线等全流程,包括操作系统的安装、Docker及运维软件环境的安装、各种授权、服务的启动、流量的引入、上线等,这些全部在20分钟内完成。
付稳介绍说,DCP目前已经实现全自动化的“无人值守”式运维,只需要人工填写所需设备的数量后,运维软件会自动完成向阿里云的申请、扩容和缩容等工作而无需人工参与。
混合云的关键之一是实现双方资源的无缝衔接,专有网络VPC是核心功能。为此,双方在2017年春节期间部署开通了超100Gb的专线。“这也是目前行业内几乎没人做过的超大规模双冗余百Gb专线”,参与该项目的阿里云工程师陆震洧介绍。
改造后,阿里云资源和微博原有的数据中心组成了可称之为无边界的计算资源池,对业务系统来说无区别,但扩容更加灵活快捷。微博实现了从提前扩容到实时扩容的升级,可以结合实际的流量负载与实时数据对预估峰值进行动态调整。
2017年春晚,微博首次实现了全业务无降级的混合云架构实践,平稳渡过了流量新高峰,阿里云部署了近5000台服务器,这一数字在2016年的除夕夜是1400台。
微博与阿里云在混合云方面的合作,云服务器ECS的弹性计算仅是开始。平台所应用的产品还包括负载均衡、对象存储OSS、缓存服务、专有网络VPC等计算、存储、网络、数据库相关服务,以及CDN、视频直播服务、安全滤网、OCR图片鉴黄、大数据等等,“几乎阿里云所有的核心产品都在用。”
创造社交媒体新历史
“10分钟将服务器部署规模扩大1倍,20分钟内完成所有的调整和上线,这在国内还处于非常领先的水平。绝大多数国内技术团队做不到,这是因为他们没有把这件事情标准化,主要原因是没有业务动力。”刘道儒表示微博业务的独特性造就了国内社交媒体史上最大规模的混合云。
“混合云项目在微博内部拿了创新大奖,峰值流量来临时,外部让用户可以无感知地使用微博,双方的成功也是一个很好的混合云模式。包括病毒式话题扩散速度、明星事件等对云上弹性扩容和高效要求,很多都没有条件提前验证,而是双方一起合作、消灭了各种问题。”
从单一和基本业务流程再到全业务流程转到阿里云,从半自动化到全自动化,这经历了很长时间的磨合。尤其是在2016年,微博业务会在每天晚上做例行的阿里云动态扩容,晚上8点开始申请到晚上12点下线服务器,通过不间断演练来打磨产品、技术以及双方的合作。
对于微博来说,也在这个过程中完成了DCP全自动化运维平台软件的开发及周边技术体系的建设。刘道儒表示,随着DCP技术的成熟,2016年年底DCP主要功能已通过OpenDCP开源,以供业界用于基于阿里云的混合云管理。这也恰恰让人们看到,IT部门已完成了从成本中心转变为创新中心、价值中心。
经过了2017年春晚的考验,如今微博已经放心地把红包飞业务全部迁移到了阿里云上,同时,Feed、手机微博、广告、搜索、话题、视频、直播以及相关的有信、红豆Live等多个业务也完成了服务上云。除了共百GB以上双专线外,微博还在阿里云上实现了双可用区,多VPC专有网络冗余环境。
微博与阿里云共同创造的混合云平台,更好的满足了业务快速发展对计算资源的需求,并支撑了中国最大社交网络之一的新业务开发以及整体业务平稳运行。而恐怕李晨和范冰冰自己也不会想到,当时的举动对于微博采用云计算优化造成了直接的影响吧!