124.灰色世界

  为什么程旭元会说香蕉能成功算是一个不大不小的奇迹?
  这中间,路舟自然明白程旭元这话里头的道理。这源于产品迭代和更新的方法论。
  怎么说千度也是三巨头之一,而程旭元又是在千度干了一段时间。
  若是有懂行的知道了路舟这中间给梦谷广告、给方强的指路,绝对能惊掉一帮人的下巴。
  路舟这番产品嗅觉,一点就中,一做就对,几近妖孽。这不是寻常人能办到的事情。
  最为关键的还是,香蕉做成功了,融了一大笔钱,而且还在大规模扩张当中。
  话又说回来,路舟又何尝不知道,一个互联网产品一经发布,这个产品的后续版本应该怎么更新?这道里可是有着大量不同的手段和策略。
  以梦谷广告来说,最初的一切架构和产品原型均来自路舟自己脑子中的想法。
  创业伊始,梦谷广告是借由辉腾提供的十台服务器一年的租约做起来的,在早期这些服务器甚至还不到满载。
  前期的业务量较小,而路舟自然也就没有按照常规的开发路子走。
  到了现在,承载梦谷广告日常业务运转的服务器大约是二十台左右。
  这是自香蕉上线后,带来的业务膨胀。中间的大部分业务也在后续的版本更新中逐步切分成了微服务。
  这些微服务,大多经由某个负载均衡服务来均衡入网的用户访问,就近、就闲为用户转到相应的服务器上获取数据。
  如果现在方强要更新梦谷平台或者香蕉市场,那他应该是怎么做的?
  假定今天正在服务器上运行的是2.0版本,明天将要发布的是3.0版本,那么方强就得在凌晨时分登陆服务器,通过远程指令或者脚本,将服务器上的版本更新到3.0。
  简言之,梦谷广告现在就是“暴力发布”的阶段。
  当方强决定要升级梦谷广告的版本,那么二十台服务器上所有业务的代码版本都将在某个集中的时间内从2.0更替至3.0。而这个升级过程中间,相关的服务也会面临中断。
  甚至,一旦新版本中出现了突发性bug,那服务器就不得不面临版本回退的问题。
  自然,“暴力”有暴力的好处,简单粗暴地靠人力和脚本来解决日常迭代,操作简单,成本低廉。这倒是非常适合梦谷广告这样的初创公司。
  较之“暴力”,更为优雅的则是“金丝雀”,又或者叫“灰度发布”。
  金丝雀这个词,来源于17世纪英国的矿井工人有携带金丝雀下井的做法。因为人的鼻子难以嗅出瓦斯的气味。而恰恰金丝雀却对瓦斯极其敏感,能够预警矿井中是否有瓦斯泄露。
  互联网中的发布测试,所指的“金丝雀发布”,也就是将其中某部分服务器或者服务当初“金丝雀”、“小白鼠”。
  如果梦谷广告要更替为这样的版本发布模式,那便是在每个更新期中,将3.0的版本更新到其中一台“金丝雀”服务器上。
  待到金丝雀确定了新版本功能一切正常后,再继而逐一进行后续服务器的版本发布。
  当然,想到这里,路舟倒觉得这也没有所说那么玄乎,与其说这是一种迭代的方法论,不如说是常人处事的正常手段。
  投石问路,不外乎如是。
  路舟笑着说道,“千度出来的大工程师就别埋汰我这庙小了,为了请程大工程师来,我可是砸锅卖铁啊。”
  “砸锅卖铁?你逗我呢这是。算算千度给多少年薪,你给多少年薪。要不是当年同床,我还不乐意来。”
  路舟也没接下这玩笑话,“陈年老吊,别提这种酸事。一言蔽之,一切草创,百废待兴。你千度里头用的那些花里胡哨的东西,我这一样没有。全得老老实实一步步重头写起。”
  程旭元也不意外,“好吧。之前我是一个劲地推进开发的进度,毕竟也没到上线,当真是没太注意这回事。这些我还以为是温哥在帮你弄着。这没有就算了,重头写吧,多麻烦还真没有,费工夫而已。”
  路舟接着问道,“嗯,麻烦倒是不至于,只是时间有些紧张,人手不太够。这一两周吧,我生撸一个轮子出来。话说,千度a/b测试应该用得非常多吧?”
  “嗯。功能开关,a/b,灰度等等日常都在使用。个别老项目迁移可能会用影子测试。很流程化的东西,具体看不同项目群,一般会单独做专门的管理平台。”
  路舟摸着下巴,片刻后,“给你点想象空间。其他就不提了。a/b测试做成云服务怎么样?倒不是我想钱想疯了,单纯是这东西做了,内部也没有必要反复造轮子。”
  “嗯?”程旭元惊咋了一下。
  路舟冒出这个想法也非偶然。
  所谓a/b测试也好,灰度发布也好,秉承的都是一个原则市场和用户才是正确的。
  路舟脑子里有先知,脑子里有一些关于微信的原型,但是绝对正确吗?路舟愿意去相信自己的记忆没有错误,却又同样不愿意去赌它的正确性。
  他的想法可以定下方向,却无法代表其他用户的真实需求。
  而具体到路舟究竟要如何制定微讯的发布策略和编写软件平台,事情依旧是一个“投石问路”。
  目前,微讯已经初步实现了第一阶段移动通讯阶段。这个阶段的版本承载了微讯最基础的功能,如通讯录、收发消息和图片,语音和视频功能,lbs等等。
  而仅仅这个阶段,程旭元就已经陆陆续续做出了数个版本的产品纵深。
  灰度发布下,微讯完全可以通过发布平台的控制,向特定的用户发布应用,以供用户使用。在获得了这批用户返回用户的反馈后,路舟就可以再结合运营统计数据等,继而确定某个版本的功能是否适合大规模发布。
  在这种情况下,路舟可以选择自己已经贯通的渠道作为耕地。根据用户画像,向不同群体的香蕉用户推送微讯,作为灰度发布的初始用户。
  同样,灰色测试也是异曲同工。后续的小版本,先向小范围测试,获得正确反馈后再进行全面发布。
  就像程旭元提到的千度内部一样,这是个流程化的东西,大型互联网公司会制定成管理平台,作为除了数据统计之外的补充反馈。
  它首先流程化了产品提升、迭代的过程,接着利用技术化的手段来实现所谓的方法论。
  所有的事情,不是非黑即白,而恰恰只是灰色的。每一个放出来的新东西,从发布到测试阶段,一开始就仅仅都是一只金丝雀,一颗问路的石头。
  没有绝对正确的产品,只有绝对正确的数据和用户。

上一章目录+书签下一章