Instagram 5 岁了!这 5 年时间,它的用户一直稳定增长。本文作者便是 Instagram 的联合创始人 Mike Krieger。他细数了这一路走来的里程碑事件,并给出了自己的干货总结,希望能够帮到其他创业者。
2010 年,发布 Instagram 第一个版本的前夜,联合创始人 Kevin 和 Mike Krieger 打在明天会有多少人下载这款 App。
Kevin 猜测是 2,500 人,而 Mike 还沉浸在乐观的情绪中,给出了更大的数字:25,000 人。第二天,Mike 的鼻子贴到了屏幕上都不敢相信那个数字是真的。
如今,Instagram 5 岁了,目前它在全世界拥有 4 亿的用户,每天上传 8000 的视频和照片。一路走来,可以确定的说,Instagram 在「简洁」与「匠心」之间做了很好的平衡,与此同时,在去年,Instagram 还重新修改了搜索/探索这个版块功能,发布了全新的私密分享功能 Instagram Direct,并且放出创意拼图工具 Layout。
在过去的 5 年时间,Instagram 的团队不断成长壮大(感谢上帝),并不断奉「简洁」为第一原则,在接下来的 5 年内的发展也会以它为核心。现在是时候回顾一下过去 5 年所取得的里程碑事件了,不管它是好的,坏的,出乎意料的,都会得出一些宝贵的经验教训,对于目前仍然走在路上的创业者来说都是无比宝贵的财富。
里程碑事件之一: 3 个月达到 100 用户。
归类为:最大的挑战
在 Instagram 发布的第一个月,其实团队一片混乱。凌晨三点服务器的警告信息发出时有发生。从发布当日人数超过 25,000,到三个月后达到 100 人,这个增长可以用一路飙升来形容。
当看到人们是如此热爱你所开发的产品,没有什么比这更鼓舞人心了。整个团队都立刻调整到了连轴转,高负荷的工作状态中,目的就是为了不断满足这持续增长的产品需求。起初只是在洛杉矶的一台服务器上运行 Instagram,其计算能力甚至不如一台 Macbook Pro。产品发布当天,激增的流量让 Mike 不得不打电话给主机服务商,主机服务商请求给予 4 天的周转期,如果急的话 2 天也可以。鉴于整个用户的增长态势无法预测,整个团队最终决定将服务整个搬运到 Amazon 的 Web Services cloud 云服务上。
无论是 Mike 还是 Kevin,他们都不是系统底层架构的专家,所以一路上他们都在贪婪的汲取着知识。在 QCon 还有 Velocity 上有很棒的视频会议,在 Facebook,Netflix,Twitter 以及其他地方,有着非常棒的文章。整个科技圈那种将技术拿出来分享,互帮互助的健康氛围让每个人都受益其中,也让 Instagram 的工程技术博客能够不断稳定更新,记录进步中的点点滴滴。
干货建议:Instagram 的信条就是「简洁至上」。这是产品发布的前几个星期里就形成的原则。因为当时就 Mike 和 Kevin 这两个人,他们决定每次遇到突发状况,必须采取最快速、最简单的解决方案。如果当时他们每次决策都要考虑到长远的目标,时间都拿来考虑谋划而非行动,那么估计产品早就半途夭折了。正是因为能够在每个关键时刻查找到最重要的问题是什么,并以最简单的解决方案应对,这才使得整个产品能够应付得来爆炸式的用户增长。
里程碑事件之二:发布 Android 版本
归类为:最众望所归的一次发布
在 Instaram 刚刚出来的头几年,Kevin 和 Mike 的耳朵被同样一个问题磨的都出茧子了:「到底什么时候 Android 版本会开发出来?」
之所以 Instagram 一开始选择只开发 iOS 版本,是因为他们希望在产品上实现快速迭代。毕竟只有两个工程师啊。但是当进入 2012 年,是时候将 Instagram 撒向多个平台了。Instagram 的 Androdi App 开发是由 3 个工程师在 3 个月的时间里完成的。其中的两个工程师还是一边跟着 Phillip 学习,一边尝试着开发。Phillip 是 Instagram 团队在开发 Gowalla(另一款社交软件)Android 版本时加入进来的,从 Instagram 的 Android 初代版本开发至今,他一直是这方面的负责人。
在开发 Android 版本的这段时间里,Mike 的角色成为了「专职 eBay 买手」。因为 Android 对应的智能手机型号台多,团队需要在多个设备上测试这款应用,其中包括了「M865 华为 II 2 Touch」。那段时间最经常干的事就是:拆封新手机,试运行 App,然后再为 App 的流畅稳定赞叹不已。确实,以 Android 为系统运行的智能手机品类之杂确实给团队带来了一些挑战,尤其是在开发 Instagram 视频内容时更是难上加难。但最终看到 Android 那本稳定运行在这么多的手机上,而不需要针对某个机型做特别的更改的时候,大家都蛮喜出望外的。
Android 版本发布的十二个小时内,新增用户就超过了 100 ,这简直太不可思议了。也就在那个时候,Mike 写了一篇关于系统底层架构设计的文章。又过了一段时间,Instagram 的 Android 版本在使用上更像是原生软件了,而如今,它已经成为了 Android 阵营中运行最快速,评价最高的应用产品。
干货建议:在单一平台上发布产品使得团队能够专注下来快速迭代,而不需要做任何事情都要干两遍。在时机成熟的时候,再实现多平台扩张。
里程碑事件之三:2012 年维吉尼亚风暴
归类为:最严重的突发状况
2012 年,Mike 正在波特兰享受为期三天的周末假日吗,这个时候电话打来:「Instagram 宕机了!」他赶紧在线上查明原因:原来不仅仅 Instagram 一家出了状况,还有 Netflix 等其他网站。Mike 快速回到酒店,将笔记本打开,查收到了 Amazon Web Service 状态页面上写着这样一句话:「在美国东部出现了断电事故。」原来在当时一场突如其来的风暴横扫了维吉尼亚州,当时 Instagram 几乎半数的设备都失去了电力供应。在接下来的 36 个小时,所有人都发动起来,几乎重新将整个系统从无到有的打造出来。之所以有这么大的动力,源自于用户的支持。这种热情到底有多么高涨,具体可以参考下面这一张图。
在当时,整个后端技术团队不过创始人 Mike,最初的工程师 Shayne 以及 Rick。Rick 加入团队还不到一个月的时间。所幸运的是,就是凭借这几个人的努力,用户数据没有出现任何丢失。但是这一次意外让所有人意识到在自动化底层架构的路上还有多少工作亟待完成。
警钟既然敲响,团队开始寻求一种可以重复的服务器配置办法。次年,团队从脆弱的 shell scripts 转移到了全 Chef 系统,并且让团队新成员介入到底层架构的门槛大幅降低。
与此同时,团队不再依赖 Amazon 的 Elastic Block Storage 存储方案,转而采取了 WAL-E 以及 Postgres 的 WAL 复制技术。
干货建议:打造一个可编写脚本的系统底层当然是挺花费功夫的一件事,但是这却一劳永逸,新人工程师在加入团队的时候能够方便他们快速融入到项目本身,另外这样做也在突发状况中起到缓冲作用。
里程碑事件之四:服务器迁移
归类为:最大胆的工程项目
2010 年 10 月 5 日:0 用户
2010 年 10 月 6 日:25,000 用户
2010 年 11 月: 100 用户
2012 年:3000 用户
2013 年:2 亿用户
到了 2013 年,Instagram 已经拥有 2 亿的用户,超过 200 亿张招聘存储在服务器上。整个团队虽然还在扩张,但仍然规模相对较小,所有人因为 Instagram 的用户能够在这么长的时间还能稳定持续增长而欣喜不已。
与此同时,团队还想办法不断跟其他公司的后端系统进行整合,比如 Facebook。它的 Site Integrity 系统能够有效地帮助 Instagram 防御垃圾系统的侵扰。但是在 Amazon Web Service 上做这些整合是非常困难的一件事。而且 Mike 也逐渐意识到,等的时间越长,后面要让越来越庞大的底层系统迁移走就是越困难的一件事。
所有人都知道 Instagram 应该迁移到 Facebook 的底层架构中,但另一方面却不想让这次迁移影响了正常的运营。于是就开始了这场叫做「Instagration」的行动。Mike 更愿意将此次行动称之为:「在一辆时速上 100 的车子上把所有内部零件给更换一番。」由来自 Instagram 和 Facebook 的 8 名工程师所组成的团队开始负责将 Instagram 从 EC2 转移到 Amazon 的 Virtual Private Cloud(VPC)上,所使用的内部工具称之为 Neti。接下来是系统和工具上的迁移,包括「IG」命令行工具。最终实现了一次几乎没有什么干扰的规模巨大的迁移。
干货建议:不要白费力气做重复性工作。通过迁移到 Facebook 的服务器,Instagram 使得自己的系统底层拥有一个更快,更高效的「家」,当然还享有抵御垃圾信息干扰等工具。
里程碑事件之五: Instagram 上的趋势标签
归类为:下一个巨大的注
今年早期,Instagram 团队彻底改善了「搜索/发现」这个功能,使得人们更加方便地搜索到当下世界其他角落所发生的有趣事情,并搭建了全新的系统,用户借此针对平台上的内容进行识别、评分、以及扩散。
第一次对「趋势」概念的尝试是在 2010 年。当时「流行」这个页面在 Instagram 一经发布就存在了。整个算法非常简单:每张照片上有多少点赞数,照片发布四小时后就会自动撤下。当用户基数还比较小的时候,这个功能特别好用。但是随着用户越来越多,Instagram 需要更加细致精巧的算法了。
有了这么庞大的用户群体,在 2014 年 Instagram 尝试了个性化「探索」功能,使得「照片/视频」这个页面无限地下拉,所展示的内容是针对每个人的兴趣胃口而设计的。在短短几个月的时间,后台数据显示:与未经个性化设置的「探索」功能相比,现在用户与内容的互动比率已经提升了 5 倍!在今年,整个团队重新关注到了最开始的「流行「页面,将其重新包装打造成为「趋势」产品。如今整个团队掌握着更加高级的评级技术,机器学习人才也不断加入进来,越来越能开发出更加人性化的精细算法,来挖掘平台上更多有趣有料的内容。
干货建议:做简单的事并不意味着你的解决方案是永远可行的。Instagram 的团队一直保持着开放学习的心态来不断演化推进自己的产品,在不同的发展阶段建立针对性的技术团队,来满足迅速增长的用户需求。