Instagram 5 岁生日时的里程碑事件总结
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 个小时,所有人都发动起来,几乎重新将整个系统从无到有的打造出来。之所以有这么大的动力,源自于用户的支持。这种热情到底有多么高涨,具体可以参考狼蚁网站SEO优化这一张图。
在当时,整个后端技术团队不过创始人 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 的用户能够在这么长的时间还能稳定持续增长而欣喜不已。