推ter背后的開源技術

openkk 12年前發布 | 21K 次閱讀 Twitter

     原文:The open source technology behind 推ter

     如果沒有開源軟件,推ter將不會存在。你發送和接收的每一個Tweet在移動端和PC端發送的過程中,都會需要開源軟件。我們非常好奇推ter使用了多少開源軟件。除此之外,我們想要知道開源對推ter公司的文化產生了什么影響。

     我們采訪了推ter公司主管開源的Manager Chris Aniszczyk,來和我們大家分享推ter的開源故事。Aniszczxk將會在本月的LinuxCon(8月29日至31日,在San Diego,CA)上做主題演講: The open source technology behind a Tweet.

     讓我們看一下Aniszczy如何看待Open Source以及推ter的開源文化。 

     請給我們簡單介紹一下你即將在LinuxCon上做的報告“The Open Source Technology Behind a Tweet”?

     表面上來看,推ter提供一種簡單的實時消息服務,其傳播的是140個字節組成的被稱為 Tweets的消息單元。更進一步的看一下運行此服務的復雜性:每天超過4億的Tweets被發送。在這樣一個規模下,你必須處理一些有趣的實時工程性問題。在這個報告中,我將講述我們如何應對這些挑戰以及為什么我們選擇開源軟件來應對這個挑戰。這個報告的內容將要講述一個Tweet的整個生命周期,從我們的后端服務到前端顯示。我期待聽眾在聽完報告后,能夠對開源技術有更好的了解和認識,同時知道一個簡單的Tweet在出現在他們的timeline時,背后都發生了什么。

     一個Tweet的傳播場景背后,使用了多少開源軟件?

     我們使用了許多開源軟件。依我來看,作出這個決定是很自然的事情。因為使用開源軟件允許我們在公司和服務快速發展的過程中,可以定制代碼用以滿足我們快速迭代的工程需求。在推ter,當我們計劃開展一個新的項目時,我們總是會取衡量我們的需求以及開源能夠提供給我們的能力,同時傾向于定制開源軟件用以滿足需求。通過這樣的方法,推ter大部分構建在開源軟件基礎之上,作為結果,open source的方式現在是我們文化中普遍存在的一部分。另外,從開源社區中獲取并回饋給開源社區形成了一個正反饋,我們也在Github上分享了我們很多代碼。

     下邊是我們使用的一些開源軟件的具體的例子:

  •       MySQL被大量使用,是Tweet的主要存儲工具;我們開發了MySQL fork in the open用來和開源社區合作;
  •       Cassandra, Hadoop, Lucence, Pig以及一些其他的Apache基金會的項目被我們的架構使用,用來增強分析數據和搜索的服務能力。我們也回饋這些項目并資助Apache軟件基金會。
  •       Memcached在我們的緩存架構中被大量使用,用來應對我們告訴增長的流量。我們最近開源了Twemcache, 這個項目基于Memcached的代碼進行開發。

     另外,我們也提供了一些開源軟件:

  •       lago是我們開發的一個流量生成工具,用來幫助我們把服務在生產環境上線前進行測試。lago提供適合于推ter環境所需的流量和精度用來測試我們的服務。
  •       Zipkin是我們開發的一款分布式追蹤(tracing)工具,幫助我們收集timing data,這些data是對推ter API請求中的不相關聯的服務產生的。
  •       Scalding是以個Scala庫,使用這個庫可以容易的在Hadoop上開發MapReduce作業,利用內置集成的Scala和JVM。    

     我還想提一下Apache Mesos,它使得開發分布式應用以及共享數據中心的資源非常容易。我們在推ter內部很多地方使用它,從執行Hadoop上的作業分析,到運行Rails應用。它真的是推ter的基礎應用之一。你能查看這個演講用來獲取更多的信息。

     在推ter工作是什么樣子的?你們的文化受到Open Source影響嗎?

     如果你在開源社區花費一些精力,你將會意識到信息的開放溝通對整個世界將會帶來積極的影響。在 推ter,我們謹記這個準則,每個員工有意愿和機會參與其中。我們每周都會開all-hands會議,在這個會上,尖銳的問題被提出和回答,因為我們從內到外都保有開放的心態和互相之間的信任。更進一步,我們大約在一年前成立了一個open source office用來支持對我們至關重要的開源組織。我們對開源社區所作出的偉大工作充滿感恩,想要和開源社區保持健康的關系。

     在工程文化方面,推ter本身是一個實時的事件驅動的工程難題,我們也將我們的工程文化塑造成實時響應以及事件驅動。我們想要敏捷、小步迭代的工程文化,這些伴隨著整個公司的成長而發展。每天有超過4億Tweets被發出,同時有大量的Tweets被遞送。我們每季度也舉辦hackweeks,員工可以拿出一周的時間從事各式各樣他們真正富有激情的項目,這些項目不需要和他們每天負責的職責相關。  

轉自:http://www.cnblogs.com/liuhao/archive/2012/08/15/2640665.html

 本文由用戶 openkk 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!