糗事百科的消息推送技术选型

  • 霍泰稳

2013 年 7 月 3 日

话题:云计算DevOps语言 & 开发架构百度云

以“快乐减压、健康生活”的糗事百科,不经意间已经从一个个人网站成长为一家有着千万级移动应用的“大”公司。记得编辑几年前和其创始人王坚沟通时,当时他还在腾讯,问及关于糗事百科的发展,他提到那只是一个玩票,希望能让自己更好地理解互联网用户的习性。显然,现在王坚不仅理解了互联网用户的习性,还摸到了移动互联网用户的需求。目前,糗事百科全职员工已经超过 10 人,主要分布在北京和深圳两地,其最近发布的微电影“鸭梨公司”,也是火的一塌糊涂。

对于这样一家虽然用户量大,但是从团队规模到发展阶段都还只能算是创业过程中的公司来说,如何在不增加研发成本的情况下,借用类似百度云推送这样的技术,让自己的千万用户收到系统所推送的信息;以及在应用这些技术过程中所遇到的坑,所积累的经验等。这些是这次 InfoQ 编辑拜访糗事百科位于西二旗辉煌国际的办公室,并和其联合创始人也是技术负责人高志深入沟通的主要目的。

糗百的“屌丝”技术架构组合

先从糗事百科的技术架构谈起,细究下来,你会发现大名鼎鼎的糗百的架构绝对是“屌丝”风范,从头到脚都是市面上随处可见的技术,随处可见的免费应用。比如 CDN 用的是网站宝,承担了糗事百科 70% 左右的带宽,而且是不收费的,也帮助他们节约了大量的成本;其统计平台用的是百度统计,也是百度的开放应用,不收费;网站监控系统用的是监控宝,原来腾讯公司出来的同事做的,友情支持。这样做的好处,按照高志的话来说,如果没有这些开放而低成本的应用,需要自己组织团队去开发,凭他们的那点力量,基本就没有时间运营自己的业务了。

使用云推送技术的背景和原因

再谈到做消息推送的背景。对于任意一款移动应用来说,消息推送都是一个很重要的功能,对于糗事百科来说,高志认为消息推送是自己和用户交流的一个渠道。以前没有用的主要原因是用户量太少,及时发送了消息,也很难统计出来有价值的数据。现在日活跃用户超过 200 万了,双向的沟通机制就显得越来越重要和迫切。

在选择使用推送技术时,之所以想到百度的云推送,其实是有历史原因的。糗事百科和百度此前进行过多次合作,团队协作起来很顺畅。另外,百度在基础性工作上一直做得挺不错,比如他们的数据统计收集平台,从技术人员的角度来看,这些东西确实都是非常艰巨的任务,但是他们都做得挺好。当然,对于用户来说,还有很多欠缺的功能,因为消费者的需求永远都是无止境的。所以,糗事百科的团队也在每天给百度云推送团队提意见,推动他们去实现一些必要的功能。至于在使用时遇到的问题,高志和其研发团队都提到,因为云推送的接口很全,文档定义也比较清楚,所以用起来非常简单。负责糗事百科消息推送的技术人员是一个还未毕业的研究生,稍微有些开发基础,他用了两周的时间基本完成了所有的技术工作。

创业团队技术选型的简要标准

在沟通的过程中,高志也谈到现在的自己在技术选型时的一些简要标准,比如准确性,因为糗事百科的用户量在千万级以上,所以如果消息不能及时、准确地被推送到终端消费者面前,那么就很难让开发者选择你的产品。另外就是平台的完整性,虽然这一点确实难以做到一步到位,但是对于用户来说,更多的是信心,你是不是能够让他相信你的能力、你的技术实力和执行能力等。还有一点就是平台的易用性,对于用户来说,需要多长时间熟悉该平台,学习多长时间之后可以接入自己的系统等。现在对于几大厂商来说,都基本做到了小时级的开发成本,大家都做得很好。几家之间也没有明显的高下之分,到最后,哪家能够吸引并留住开发者,最重要的还是技术的稳定性和功能的丰富性等。百度开放云从 3 年前启动到现在,已经吸引了包括爱奇艺、糗事百科、TouchChina、贝瓦儿歌、Gif 快手、儿童影像馆、365 日历等诸多知名的应用,其技术的实力和易用性也得到了他们的认可。

放心,大公司目前对这些应用不收费

说到收费的事情,高志也结合自己的经验给出了一些见解。其实就目前的发展来看,包括百度在内的这些大厂商向创业者收费的可能性很小。究其原因,一方面是现在大家还都处在抢开发者的阶段,谁都巴不得你不到其他地方去呢,如果一收费,岂不是直接将辛辛苦苦积累的用户赶走?另外,对于这几家大的公司来说,他们在乎的并不是这点收入,他们在原有的业务已经有很大收入支撑他们做这些开放的服务,他们真正在乎的是能否与开发者共建一个云的生态圈。通过和这些动辄千万级的应用开发者合作,可以为用户提供更加精准的、个性化的服务,这些都是未来互联网和移动互联网发展的方向。

补:本文所提到的百度云推送技术其实是百度开放云中的一小部分,其他技术还包括 SiteApp、应用引擎 BAE、移动测试中心、云存储、云数据库等,详情可浏览 InfoQ 上的“百度开放云专题”,加入百度开发者中心(简单注册即可免费使用各种百度开放云的技术)。另外,百度在 7 月份还组织了多场和开放云相关的技术活动,包括 7 月 6、7 日在北京贝塔咖啡举办的“百度开放云骑士之夜”,7 月 7 日在北京车库咖啡举办百度开发者俱乐部活动(现在可报名,会上还会发布百度开放云编程马拉松活动),7 月 20、21 日北京、成都、武汉、台北、新加坡五地互动联办的,可能是规模最大的亚太区百度开放云编程马拉松大赛(现在可报名,台北和新加坡在 7 月 27、28 日)。

云计算DevOps语言 & 开发架构百度云