Reddit月浏览量从百万扩容到十亿的陷阱和教训 - 博客 - 伯乐在线



Reddit月浏览量从百万扩容到十亿的陷阱和教训 - 博客 - 伯乐在线

伯乐在线导读:Reddit[1]是一个社交新闻网站。用户可以将互联网上搜集或原创的图片或材料以帖子形式发布于网站上。而后其他用户可以投票,投票的结果将作为帖子排名的依据。

Reddit 网站的第一位领薪雇员杰里米・埃德伯格在RAMP[2]讨论会上做了一次出色的演讲 ,他教给我们很多关于如何创建一个成功的社交网站。这儿可以看到视频。

杰里米借用了(宗教里对比)罪恶和美德的方式来总结经验教训,他分享了在扩展Reddit过程中所犯错误的例子,也可以看到他们同样做了很多正确的事情。不过有点令人吃惊的是,杰里米现在是Netflix[3]的可靠性架构师。所以这篇文章中也有Netflix的一些经验。(感谢 dryrun 的热心翻译和详细的译注,感谢@战斗的那美克星人 的重审校对。如果其他朋友也有不错的原创或译文,可以尝试提交到伯乐在线。)

我完全认可的一些经验教训:

  • SSD[4]看做是便宜的内存[5],而不是昂贵的硬盘。当我们为了数据库的性能将reddit从普通硬盘转移到SSD后,我们的服务器数量从12台降低到1台(这个很可能是个比例数据,译者),并且还有很大的富余。SSD虽然贵了四倍,但是你会得到16倍的性能提升,这么做是很值得的。
  • 给用户一些权力,看看他们怎么做,然后考虑把好的点子加入到网站功能中来。用用户让reddit学到了很多东西,并且,用户很大程度上提升了网站的流畅度(文后会有描述用户如何协助网站的顺利运转,译者),这个是我众多收获中很重要的一点。用户会告诉你很多你不知道的事情。关于这点,reddit gold是个很好的案例,这个项目开始只是社区里的一个玩笑,后来它被做成了产品,并深得所有用户喜爱。
  • 项目之初关于可扩展性架构的考虑其实是没有太多必要的。一开始时你不知道什么会是你的功能集,所以你也不会知道你有哪些扩展问题。随着你的网站增长,你可以了解哪里将存在扩展问题。
  • 把未登录用户当作二等公民。给未登录用户返回缓存内容,Akamai(美国著名CDN服务提供商)[6]首当其冲,reddit压力大减,这种做法带来巨大的性能提升。


Read full article from Reddit月浏览量从百万扩容到十亿的陷阱和教训 - 博客 - 伯乐在线


No comments:

Post a Comment

Labels

Algorithm (219) Lucene (130) LeetCode (97) Database (36) Data Structure (33) text mining (28) Solr (27) java (27) Mathematical Algorithm (26) Difficult Algorithm (25) Logic Thinking (23) Puzzles (23) Bit Algorithms (22) Math (21) List (20) Dynamic Programming (19) Linux (19) Tree (18) Machine Learning (15) EPI (11) Queue (11) Smart Algorithm (11) Operating System (9) Java Basic (8) Recursive Algorithm (8) Stack (8) Eclipse (7) Scala (7) Tika (7) J2EE (6) Monitoring (6) Trie (6) Concurrency (5) Geometry Algorithm (5) Greedy Algorithm (5) Mahout (5) MySQL (5) xpost (5) C (4) Interview (4) Vi (4) regular expression (4) to-do (4) C++ (3) Chrome (3) Divide and Conquer (3) Graph Algorithm (3) Permutation (3) Powershell (3) Random (3) Segment Tree (3) UIMA (3) Union-Find (3) Video (3) Virtualization (3) Windows (3) XML (3) Advanced Data Structure (2) Android (2) Bash (2) Classic Algorithm (2) Debugging (2) Design Pattern (2) Google (2) Hadoop (2) Java Collections (2) Markov Chains (2) Probabilities (2) Shell (2) Site (2) Web Development (2) Workplace (2) angularjs (2) .Net (1) Amazon Interview (1) Android Studio (1) Array (1) Boilerpipe (1) Book Notes (1) ChromeOS (1) Chromebook (1) Codility (1) Desgin (1) Design (1) Divide and Conqure (1) GAE (1) Google Interview (1) Great Stuff (1) Hash (1) High Tech Companies (1) Improving (1) LifeTips (1) Maven (1) Network (1) Performance (1) Programming (1) Resources (1) Sampling (1) Sed (1) Smart Thinking (1) Sort (1) Spark (1) Stanford NLP (1) System Design (1) Trove (1) VIP (1) tools (1)

Popular Posts