返回 登录
0

快速应对年度峰值,微博基于阿里云与Docker的混合云实践

面对不期而至的流量高峰,在最短的时间内将服务器部署规模扩大1倍,微博是如何实现的?

近日,微博研发中心高级架构师刘道儒和阿里云云上技术服务负责人丁原接受CSDN记者专访,介绍了微博如何基于阿里云的混合云方案和Docker等开源技术构建混合云平台来应对业务发展中面临的流量峰值挑战。

微博的混合云需求

作为典型的社交媒体平台,微博的IT架构面临的一大挑战就是流量峰值,包括可预期峰值流量和随机峰值流量两种。前者如春晚和红包的双重刺激,后者如范冰冰李晨事件,都会导致微博发布量和请求量暴增,包括大量的图像和视频,超出了冗余服务器所能实现的最大负载。

以2016年春节为例,新浪微博日活跃用户达到1.34亿,同比去年增长31%。春晚直播期间,讨论春晚的微博达到5191万条,网友互动量达到1.15亿,增长76%,春晚相关话题的总阅读量达到182亿次。截至除夕24点,网友抢微博红包的总次数超过8亿次。

社交媒体如微博一直都是各类热点事件的爆发地,除了过年过节的流量峰值之外,随机热点事件带来的流量峰值是很难预测到和提前做准备的,系统对稳定性和弹性伸缩都有极高的要求。相比传统的提前预估流量峰值去采购并部署服务,周期非常长,而且随机热点事件完全无法预测发生时间,很难做得到准实时的快速扩容,通过混合云架构,企业把公共云计算当做自有机房的延伸,利用云计算快速的应对节日和突发流量峰值带来的海量弹性资源扩容需求,快速借用公共云的计算能力为己所用,充分发挥云计算的弹性伸缩能力,业务峰值流量过去后,又迅速将公共计算资源快速释放掉,避免了高峰期后的闲置浪费。

当然,像微博这样具有大量传统IT资产的企业,短期把业务全部放到公共云计算也不太现实,这需要一个过程,混合云会架构是个很好的上云过渡路径。对微博来说,混合云的部署对公共云平台和微博技术团队也存在很大的挑战。

  • 需要选择性能指标能够满足微博高并发需求的公共云资源,例如充足的冗余资源、高速缓存以及网络带宽等,并且冗余资源具备一套快速分发、快速释放的机制。

  • 公共云资源需要和内部服务器资源实现无缝衔接,所有资源网络对业务系统来说是一致的,同时还要保证数据访问和传输的安全性。

  • 内部业务系统的架构需要改造以适应新的扩展模式,能够快速通过API扩容,具备成熟的发布体系。

微博的混合云实践

从资源、技术、团队各方面考虑,微博选择基于阿里云构建混合云平台。如前所述,实现混合云,微博方面需要做内部系统的改造,而对于阿里云来说,和微博的此次合作时间紧任务重,挑战重重。

好在阿里云历经2015年天猫双11这一全球最大规模的混合云实践考验,丁原表示,对于现在的阿里云来说,通过ECS镜像、ESS弹性伸缩等功能,应用快速部署1000台的效率几乎和1台的效率是相当的,面对突发性业务峰值压力可快速通过云服务器ECS速实现大规模的服务器扩容。

更重要的是,阿里云专门挑选经历双11考验的资深技术专家组建了一个护航团队,针对客户业务压力暴涨的情况提供全面的系统保障服务即护航服务,现场模拟业务状况和排查问题。护航的内容包括:系统化现有瓶颈定位,模拟真实业务场景进行系统压测和容量摸底,峰值系统容量评估和扩容方案设计,安全保障,应用优化,数据库优化等,为客户提供护航期间的全程应急技术保障,协同客户一起保障系统顺利度过业务峰值。同时,护航会针对系统现有问题设计改造方案,以更贴近云计算和互联网架构来设计现有的业务系统,应对未来更大的流量峰值。

与此同时,微博也通过热门的Docker技术来抹平业务差异性实现快速扩容。事实上,微博于2014年4月就开始研究Docker,2015年1月完成内网上线,经过2016年元旦的测试,在2016年春节进行首次大规模应用。大规模部署Docker的目的,很大程度上就是为了满足快速、弹性扩展的需求。因此,微博对Docker的主要运用就是Registry,可以快速创建和销毁,同时不需要为Docker目前存在的一些还不成熟的或者复杂的功能买单。

刘道儒介绍,微博对 Docker Registry做了如下的主要改进:

  1. 前端部署了Nginx,并配置转发策略,兼容Docker1.3+所有版本。

  2. 后端存储均使用Ceph,便于弹性扩容。

  3. 阿里云中使用二级缓存的部署结构,二级缓存可迅速扩容,提高分发效率,同时减小回穿内网的请求量。

  4. 高可用和性能的优化。

图片描述

刘道儒说:“通过这样的改造之后,阿里云资源和微博原有的资源组成的池子对业务系统来说并无区别,但扩容更加无边界和灵活。由此,微博实现了从提前扩容到实时扩容服务器的升级,可以结合实际的流量负载与实时数据分析对预估峰值进行动态调整,一旦发现请求量有暴涨趋势,就可以启动应急方案,在最短的时间之内将服务器部署规模扩大一倍。”

微博在应对2016年春节峰值流量时上了1400多台云服务器ECS,其中核心业务需要800多台。当监控系统发现资源使用量达到预先设定的阈值,就会自动申请阿里云资源。通过混合云扩容,相对于之前提前扩容的方案,资源成本节约40%,同时运维工程师也摆脱了很多基础类的手工运维的工作,将精力放在系统开发等工作。

关于未来的计划,刘道儒表示,主要精力还是不断完善系统。例如,PHP体系带本地缓存,其机器日常的管理,如容量评估、上线/下线,还不能完全自动化,还需要提炼一个比较通用的解决方案。

阿里云的混合云观

事实上,阿里云的混合云、护航服务不仅仅在于微博。其他的社交媒体公司,比如陌陌,在海量图片存储、大数据分析方面,也在通过阿里云技术提高用户体验。丁原介绍,除了社交媒体行业,护航保障服务基本覆盖到了各行各业,包括游戏,金融,网站,电商,物流,网站,政企行业等,典型的包括12306春运,新浪微博,芒果TV,天弘基金,世界互联网大会,红岭创投等。

在阿里云看来,优秀的混合云技术架构需要满足如下特点:

  1. 对客户来说,公共云和专有云要有一致的开发和管理体验,业务体验是无缝的。

  2. 从IaaS到PaaS的全栈架构,让客户能够真正按照资源配比实现混合云,实现如传统虚拟化的功能。

要做到无缝的体验,VPC是一个重要的功能,VPC完全当做物理网络的隔离,实现多租户,并允许客户定制自己的网络,这是公共云多租户无法实现的。阿里云VPC在开始设计的时候充分考虑企业级应用对网络稳定性、灵活性、高性能、高可用、大容量和功能丰富性的要求,在架构设计和功能实现上兼顾了多方面的要求。同时,阿里云VPC还可以轻松实现不同地域之间的互联,用户点点鼠标就可以拥有一条跨地域的专线。

丁原表示,阿里云是一个开放的平台,在选择混合云合作伙伴的时候,主要关注合作伙伴是否可以和阿里云形成优势互补,通过技术或者商业合作给客户提供真正有价值的混合云解决方案,解决客户的痛点问题。客户的IT环境是多种多样的,发展阶段和发展路径也不尽相同,阿里云会持续扩展生态,和合作伙伴一起,提供多种解决方案满足不同客户的不同应用场景。

评论