1. 程式人生 > >從 Twitter 運維技術經驗可以學到什麼

從 Twitter 運維技術經驗可以學到什麼

沒有一個網站的效能像 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 用的就是 RRDtoolGangliaMRTG 這些已經成為很多網站標準配備的元件。而不是自己寫一大堆功能重複的東西。值得注意的是, Twitter 也一直在用 Google Analytics 進行業務分析。

不重複發明輪子,可以打磨輪子,比進行如一些功能指令碼定製之類的工作。

發明不重複的輪子

Twitter 開源了他們自己用的一個 Apache 模組 mod_memcache_block

(a distributed IP blocking system),這個模組根據 HTTP 程式碼請求限制訪問頻率。熟悉 Twitter 的朋友會知道這是針對第三方應用程式的必須的一個功能,否則的話,會產生類似 DDos 的效果 :) John Adams 說這個模組是他多年以來就期待的東西,我相信,如果有人已經做了同樣的事情,他們肯定不會自己再寫一個。

儘可能的自動化

無論是配置管理還是針對各項功能的"開關",都儘可能的自動化。依賴於人來控制一些事情容易"規範",但是流程冗雜,節奏變慢。

更好的理解硬體

擁抱新技術體系,使用更有經濟效益的硬體(比如對 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--