標籤:http os 使用 strong ar for 資料 問題 代碼
如果沒有開源軟體,Twitter將不會存在。你發送和接收的每一個Tweet在移動端和PC端發送的過程中,都會需要開源軟體。我們非常好奇Twitter使用了多少開源軟體。除此之外,我們想要知道開源對Twitter公司的文化產生了什麼影響。
我們採訪了Twitter公司主管開源的Manager Chris Aniszczyk,來和我們大家分享Twitter的開源故事。Aniszczxk將會在本月的LinuxCon(8月29日至31日,在San Diego,CA)上做主題演講: The open source technology behind a Tweet.賭王娛樂城
讓我們看一下Aniszczy如何看待Open Source以及Twitter的開源文化。
請給我們簡單介紹一下你即將在LinuxCon上做的報告“The Open Source Technology Behind a Tweet”?
表面上來看,Twitter提供一種簡單的即時Message Service,其傳播的是140個位元組組成的被稱為Tweets的訊息單元。更進一步的看一下運行此服務的複雜性:每天超過4億的Tweets被發送。在這樣一個規模下,你必須處理一些有趣的即時工程性問題。在這個報告中,我將講述我們如何應對這些挑戰以及為什麼我們選擇開源軟體來應對這個挑戰。這個報告的內容將要講述一個Tweet的整個生命週期,從我們的後端服務到最上層顯示。我期待聽眾在聽完報告後,能夠對開源技術有更好的瞭解和認識,同時知道一個簡單的Tweet在出現在他們的timeline時,背後都發生了什麼。
一個Tweet的傳播情境背後,使用了多少開源軟體?
我們使用了許多開源軟體。依我來看,作出這個決定是很自然的事情。因為使用開源軟體允許我們在公司和服務快速發展的過程中,可以定製代碼用以滿足我們快速迭代的工程需求。在Twitter,當我們計劃開展一個新的項目時,我們總是會取衡量我們的需求以及開源能夠提供給我們的能力,同時傾向於定製開源軟體用以滿足需求。通過這樣的方法,Twitter大部分構建在開源軟體基礎之上,作為結果,open source的方式現在是我們文化中普遍存在的一部分。另外,從開源社區中擷取並回饋給開源社區形成了一個正反饋,我們也在Github上分享了我們很多代碼。
下邊是我們使用的一些開源軟體的具體的例子:
- MySQL被大量使用,是Tweet的主要儲存工具;我們開發了MySQL fork in the open用來和開源社區合作;
- Cassandra, Hadoop, Lucence, Pig以及一些其他的Apache基金會的項目被我們的架構使用,用來增強分析資料和搜尋的服務能力。我們也回饋這些項目並資助Apache軟體基金會。
- Memcached在我們的緩衝架構中被大量使用,用來應對我們告訴增長的流量。我們最近開源了Twemcache, 這個項目基於Memcached的代碼進行開發。
另外,我們也提供了一些開源軟體:
- lago是我們開發的一個流量產生工具,用來協助我們把服務在生產環境上線前進行測試。lago提供適合於Twitter環境所需的流量和精度用來測試我們的服務。
- Zipkin是我們開發的一款分布式追蹤(tracing)工具,協助我們收集timing data,這些data是對Twitter API請求中的不相關聯的服務產生的。
- Scalding是以個Scala庫,使用這個庫可以容易的在Hadoop上開發MapReduce作業,利用內建整合的Scala和JVM。
我還想提一下Apache Mesos,它使得開發分布式應用以及共用資料中心的資源非常容易。我們在Twitter內部很多地方使用它,從執行Hadoop上的作業分析,到運行Rails應用。它真的是Twitter的基礎應用之一。你能查看這個演講用來擷取更多的資訊。
在Twitter工作是什麼樣子的?你們的文化受到Open Source影響嗎?
如果你在開源社區花費一些精力,你將會意識到資訊的開放溝通對整個世界將會帶來積極的影響。在Twitter,我們謹記這個準則,每個員工有意願和機會參與其中。我們每周都會開all-hands會議,在這個會上,尖銳的問題被提出和回答,因為我們從內到外都保有開放的心態和互相之間的信任。更進一步,我們大約在一年前成立了一個open source office用來支援對我們至關重要的開源組織。我們對開源社區所作出的偉大工作充滿感恩,想要和開源社區保持健康的關係。
在工程文化方面,Twitter本身是一個即時的事件驅動的工程難題,我們也將我們的工程文化塑造成即時響應以及事件驅動。我們想要敏捷、小步迭代的工程文化,這些伴隨著整個公司的成長而發展。每天有超過4億Tweets被發出,同時有大量的Tweets被遞送。我們每季度也舉辦hackweeks,員工可以拿出一周的時間從事各式各樣他們真正富有激情的項目,這些項目不需要和他們每天負責的職責相關。
Twitter背後用到了哪些開源軟體與技術?