要設計出一個好的系統,需要多年的知識積累。有一個捷徑是研究真實世界的系統架構。本文將介紹一些有幫助的閱讀材料。 務必留意那些真實系統之間共通的原理和相同的底層技術。研究每個技術并了解它解決了什么問題, 這是一個鞏固基礎知識和完善設計過程的好方法。
有一些材料可以幫你理解不同公司產品的系統架構背后的一般設計思想。以下是一些經典的博客文章,建議你仔細閱讀。
- Facebook Timeline:Brought to You by the Power of Denormalization
- Scale at Facebook
- Building Timeline:Scaling Up to Hold Your Life Story
- Erlang at Facebook (Facebook Chat)
- Facebook Chat
- Finding a Needle in Haystack:Facebook’s Photo Storage
- Serving Facebook Multifeed:Efficiency, Performance Gains through Redesign
- Scaling Memcache at Facebook
- TAO:Facebook’s Distributed Data Store for the Social Graph
- Amazon Architecture
- Dynamo:Amazon’s Highly Available Key-value Store
- A 360 Degree View of the Entire Netflix Stack
- It’s All About Testing:the Netflix Experimentation Platform
- Netflix Recommendations:Beyond the 5 stars (Part 1)
- Netflix Recommendations:Beyond the 5 stars (Part 2)
- Google Architecture
- The Google File System (Google Docs)
- Differential Synchronization (Google Docs)
- YouTube Architecture
- Seattle Conference on Scalability:YouTube Scalability
- Bigtable:A Distributed Storage System for Structured Data
- Instagram Architecture:14 Million Users, Terabytes of Photos, 100s of Instances, Dozens of Technologies?The Architecture Twitter Uses to Deal with 150M Active Users
- Scaling Twitter:Making Twitter 10000 Percent Faster
- Announcing Snowflake
- Timelines at Scale
- How Uber Scales Their Real-Time Market Platform
- Scaling Pinterest
- Pinterest Architecture Update
- A Brief History of Scaling LinkedIn
- Flickr Architecture
- How We’ve Scaled Dropbox
- The WhatsApp Architecture Facebook Bought for$19 Billion
如果你將要參加一家公司的面試,最好先閱讀一下它的工程博客
,了解該公司采用的技術和系統架構
。此外,工程博客也提供了關于一些特定領域的寶貴見解,定期閱讀其中的文章可以幫助我們成為更好的工程師。