过去的一段时间里,移动手机视频社交APP微拍非常火爆,它在App Store和各个Android应用市场都名列前茅。微拍以其独特的视角获得了用户的喜爱。微拍中有着大量“白富美”每日发表自拍视频,用(diao)户(si)量一度上升到几百万,日活跃量30万以上。面对如此庞大的用户和流量,微拍和其他的移动APP一样,他们都会觉得幸福来得太突然。大量的流量每时每刻都可能冲垮他们的防线,和前段时间火爆的移动应用足记一样,微拍也遇到了同样的困扰。
随着用户数量的猛增,微拍的后台系统不堪重负。每天高峰期服务器资源紧张,让用户等待时间过长。APP经常出现访问超时现象,严重影响用户体验。就连我等屌丝给白富美献个花都显示访问超时…… 用户数量的不断增长没有让微拍感觉到幸福,而是惆怅。如何面对用户量不断增长背后的困扰?
当在线用户达到一定数量后,由于服务资源有限,微拍无法承受如此大的访问压力,难免会造成各种各样的性能问题。每当到用户访问高峰期时,就会造成应用服务访问排队等待,以至于整体应用堵塞,无法访问。一开始选择的解决办法是将业务迁移到顶配的机器上(所有服务端的机器都配置成了12核60G),但这种解决办法只能算是临时的,并没有从根本上解决问题。如果下一次用户大潮再次来袭时,他们还是会面临同样的问题。
微拍技术团队意识到自己的问题并非是资源不足,而是资源无法随着访问量而弹性动态扩展。通过参考twitter,airbnb等面对同样挑战公司的经验,微拍将目光转向了分布式技术。
分布式技术是由很多松耦合的服务组合而成,它们可以在不同物理主机上运行,并通过网络来通信。分布式应用具有动态的生命周期,它们可以通过“请求”伸缩和更新,这也正是微拍所需要的。经过一番深思熟虑,微拍选择了国外同行twitter,airbnb所采用的方案:Docker+Mesos的技术解决方案。Docker是一个相对较新且发展非常快速的项目,可用来创建非常轻量的“虚拟机”。当Docker容器规模达到一定量级之后,又需要相应的管理框架,而Mesos就是专门设计用来管理大规模容器的。Mesos和Docker是一组黄金搭档,已经在上述公司数万台的服务器集群规模中得到了验证。
找到新的解决方案后,微拍开始动手改进他们的基础设施。但发现将开源技术用在生产环境中是需要时间来不断试错的。微拍用户量正在爆发式增长,显然没有这个时间去等待。找专业的人,做专业的事。找专业的分布式技术解决方案的公司成了微拍的最佳选择。经过朋友介绍,微拍找到了数人科技的创始人王璞。王璞曾担任google广告部门分布式系统架构师,对分布式技术有着很深的理解。其回国后创立了数人科技——一家专注于分布式技术的创业公司,并在今年正式发布了mesos和docker企业级高性能云解决方案。
数人科技根据微拍的实际需求,为其提供了企业级的高性能、高可用的云解决方案。整个方案的架构是分布式的,这和微拍的构想也是一致的。通过采用Mesos技术,数人科技让微拍的后台系统实现了水平动态扩展,使微拍能够随用户在线量的变化而自动调整资源,始终保障用户的使用体验。通过使用Mesos上的Marathon Framework的服务发现功能,微拍后台系统做到了自动发现和恢复故障节点。保证了可用的服务实例数量,解决了微拍所担心的服务连续性问题。
到此,微拍才真正地容纳了如此大量级的用户和流量,才真正享受到了用户增长所带来的成功的味道。作为我等”屌丝”能有事没事看看白富美也是极好的。但是,但是…… 如果卡的连给MM献个花都显示访问超时……那就是万万不能忍受的了。现在我们可以随时随地的上微拍围观白富美啦。