天天看點

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

不重複發明輪子,可以打磨輪子,比進行如一些功能腳本定制之類的工作。

發明不重複的輪子

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

盡可能的自動化

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

更好的了解硬體