從 Twitter 運維技術經驗可以學到什麼
阿新 • • 發佈:2019-01-06
沒有一個網站的效能像 Twitter 這樣這麼令人牽腸掛肚,看見那條大鯨魚總是讓人感覺很無奈。Twitter 的運維專家 John Adams 在 Velocity 2009 上做了一篇題為 Fixing Twitter 的技術分享(PDF ),人家也是一直在努力阿。John Adams 在 2008 年七月加入的 Twitter ,對於 Twitter 的站點穩定的確做了不少工作。
Twitter 運維團隊的職責:
- 軟體效能(後端) Software Performance (back-end)
- 可用性 Availability
- 容量規劃 Capacity Planning (metrics-driven)
- 配置管理 Configuration Management
看完這個接近 50 頁的 PDF ,除了滿足我們一小部分技術窺探的癖好,或許也可以學到點什麼。
不重複發明輪子
對於監控,Twitter 用的就是 RRDtool ,Ganglia 、MRTG 這些已經成為很多網站標準配備的元件。而不是自己寫一大堆功能重複的東西。值得注意的是, Twitter 也一直在用 Google Analytics 進行業務分析。
不重複發明輪子,可以打磨輪子,比進行如一些功能指令碼定製之類的工作。
發明不重複的輪子
Twitter 開源了他們自己用的一個 Apache 模組 mod_memcache_block
儘可能的自動化
無論是配置管理還是針對各項功能的"開關",都儘可能的自動化。依賴於人來控制一些事情容易"規範",但是流程冗雜,節奏變慢。
更好的理解硬體
擁抱新技術體系,使用更有經濟效益的硬體(比如對 8 核 CPU 的選型與更換)會帶來更好的收益。而這個要建立在對硬體體系的正確理解上才行。
另外幾句話要記住:
- Disk is the new Tape. (記憶體是新型別的磁碟. 磁碟是新型別的磁帶)
- Kill long running queries before they kill you. (問題是如何提前發現? 有效的監控!)
- Use metrics to make decisions, not guesses.
- "Cache Everything!" not the best policy
或許還應該學到更多...
--EOF--