Pinterest改变了我们在可视Web上呈现信息的方式。但是Pinterest本身自开始以来并没有太大变化。

也就是说,在编码级别上。 Pinterest的工程主管Jon Jenkins最近透露,图像共享社区仍在其原始代码库上运行。 

也可以看看 令人难以置信的事实,将使您关心Pinterest

“对于许多规模巨大的网络公司来说,’替换整个架构的常见做法-有时是几次,”他说。 “我们’我们选择了将我们早期的堆栈扩展到如今的堆栈,而没有发生重大变化,并与我们的公司一起发展。”

非常规的决定

通过代码库和体系结构,Jenkins意味着使Pinterest运行的基础技术。随着网站的发展,工程师赢得了’只是进行视觉上的重新设计以保持网站外观的新鲜感,但是他们将使用有助于提高其运行效率的新技术来修改代码库。 Tumblr 由于定期检修其代码库而特别臭名昭著,这会导致用户不愉快但必要的停机时间。

与这种做法最公开的对比之一是LinkedIn。中 项目反转,领英’工程团队在重新编写整个代码库的过程中冻结了两个月的新功能开发。可以肯定的是,这项措施非常严厉,但是LinkedIn及其投资者都认为这是必不可少的,这是支持LinkedIn的一项重要措施。’s growing influence. 

“我们认识到平台’的快速增长以及我们不断发布创新产品的愿望,要求从基于功能分支的软件开发和部署方式转变为持续部署系统,”领英发言人说。 

但是,Pinterest从未做出过这样的转变,即使是曲棍球增长曲线也是如此。詹金斯说,基本的构建模块包括Python 网页服务器,mySQL数据库,开源数据结构服务 雷迪斯 and caching daemon 记忆快取,仍然构成了构建Pinterest的大部分代码。团队定期通过就地重写来改进部分代码库。 

詹金斯说:“换句话说,我们进化了事物,而不是取代它们。”

爆炸性增长如何塑造代码遗产

这有助于建立Pinterest原始代码库的三名工程师Yash Nelapati,Marty Weiner和Ryan Probasco仍在今天工作,并且可以监督代码库的悠久历史。 

根据Weiner的说法,保留Pinterest在2011年初使用的相同代码库并不是一种明智的选择,而是出于必要而诞生的。 

他说:“该站点开始移动,2011年以快速增长的方式度过。” “没有时间考虑进行重大的重新架构。 每天都花时间试图修复在这12到24个小时内着火的一两个东西,也许能成功实现我们认为在接下来的12个小时内会崩溃的东西。”

但是随着调整的不断完善,面对网站的持续增长,Pinterest的架构变得越来越不可扩展。当他们注意到这些编辑(由各种技术拼凑而成)使代码库不稳定时,他们有两种选择。他们可以用其他技术解决方案代替代码库。或者,他们可以重写并增强原始的构建基块。 

“我们做出了一个明智的决定,将所有卡片放在桌子上,然后重新思考,” said Weiner. “我们选择了一些性能良好的技术,如MySQL,Python,Memcache,Redis和其他一些技术。 最终我们有了一个新的开始’从那时起,我们一直在发展。”

没有人可以否认Pinterest给用户带来的时尚外观,但是对于开发人员来说,使用Pinterest的故事式代码库,肯定会有一些令人惊讶的古老复活节彩蛋。 

“我们仍然使用2010年编写的邀请代码,” Weiner说。 “我最喜欢的文件还是原始的notes.txt文件,它是我们的“ Apollo 13检查表”,该文件显示了如何调出盒子或解决某些问题。”

乔恩·詹金斯(Jon Jenkins)的照片由 O’关于Flickr的Reilly会议