社交網絡 David Recordon談Facebook的開源之路
超過5億用戶,Facebook是迄今為止世界上最大的社交網站,并且一直在向開源社區做重要的貢獻。David Recordon, Facebook負責開源的頭,受LXF網站(http://www.linuxformat.com/)的專訪,談及自己及Facebook的開源之路。
LXF: 你的開源背景?
David Recordon(以下簡稱:DR): 當我10幾歲時,就已經開始從事開源。我使用YaBB SE(PHP論壇軟件),并且開始幫助社區內的其他人。
當時,我知道C++,Perl知道一點,但真的沒有做過Web編程。PHP容易掌握,并且我喜歡這種點擊保存、刷新瀏覽器的感覺。幾年后,我開始更多的深入項目,幫助發起改寫Simple Machines Forum,并與朋友創建論壇托管業務。
我想這是真的我第一次深入體驗一個開源項目。
LXF:你繼續與網站業務打交道嗎?
DR: 幾年后,我在LiveJournal的實習,開始學習Perl,并告知不要承認我用過Nano(在轉向Emacs后)。在LiveJournal的工作也是我把Linux作為桌面每日使用的第一次體驗。
LXF:你在OpenID的世界非常知名,怎么參與到這個項目的?
DR: 很多人利用LiveJournal核心開源的優勢,并克隆。根據維基百科,先后有30個不同的站點使用DeadJournal。垃圾對于LiveJournal。com從未成為重要問題。因為沒有身份共享的概念。
OpenID最初創建于Six Apart幫助解決跨站點以分散的方式評論的問題。它的急劇演變起于2005年,當時我在Verisign,開始深度參與OpenID 2.0。
它幾乎被所有的web公司所采用,但是仍有很長的路要走。我看到OpenID下一個版本將建立在OAuth 2.0上,這將是它成為瀏覽器外應用工作的技術的很小一部分。
LXF: 你是怎么進入Facebook的? DR: 我在2009年加入到Facebook,工作內容是開源及標準。我的團隊致力于使用、貢獻、發布開源項目,使之對每個人變得容易的偉大工作。
有時,也意味著將我們融入到其他的工程師團隊,比如我們在2010年發布的HiHop for PHP。雖然HipHop已經在Facebook內部得到驗證,但是仍有大量的工作要做,使之成為其他網站的基礎設施的有用的一部分。
LXF: HiHop具體是做什么的?
DR: HipHop真正體現了我們如何在Facebook上創建開源。它一開始由趙海平創建,作為Hackathon項目,后來Iain Proctor和楊明輝加入。海平注意到PHP語法和C + +不少相似之處,而且知道你是否能改寫成另一種編程。
2年半的時間,以及一些其他的工程師的加入,現在HipHop服務于Facebook絕大部分的產品。它需要我們的PHP源代碼,轉換成C + +中,并編譯它成為一個獨立的二進制文件,我們再在Web服務器上部署。
這是個Facebook如何開始項目的典型模式,1或2個人決定嘗試一些事情,我們稱之為“黑客文化”。
LXF: 你在OpenID和OAuth標準的工作,是否在Facebook繼續使用?
DR: 我們平臺的工程師團隊去年做了很多OAuth 2.0的工作。OAuth創建標準化API的設計模式,人們可以同意web站點準入而無需輸入密碼。雖然OAuth 1.0在過去的兩年幾乎在每個新的API中被使用,但它對于許多開發者來說還是過于復雜。
OAuth 2.0依賴SSL來保護訪問令牌,當API請求對應HMAC簽名時。這消除了大量的復雜性,因為開發者與您的API交互不再需要正常化、排序,然后簽署他們的所有的HTTP請求的參數。
我們是第一家在f8平臺上宣布將OAuth 2.0作為圖形API一部分的,當4月份與IETF社區合作做了大量工作之后。同樣在f8,我們引入了OGP開放圖形協議Open Graph Protocol ( http://ogp.me ),,它使用一個非常簡單的RDFa的框架子集來表示任何web頁面作為社區圖的一部分。
LXF: 人們認為Facebook是個閉源的站點。你又如何貢獻開源?
DR: Facebook工程師對于貢獻Apache Hadoop生態系統,以及MySQL、PHP等,非常活躍。也創建了大量的功能使memcached規模部署在現代的硬件上。
但是,我們不僅是貢獻其他項目或發布開發工具,我們開源了產品架構的全部原件。HipHop, FlashCache, Apache Hive and Cassandra, Thrift, Scribe, 以及其他在Facebook創建的。我不認為還有其他與我們一樣規模的網絡公司能做到這一點。
LXF:另一方面,在公司,開展開源的困難是什么? DR: 對公司來說,很容易陷入相信“開源不需要額外的時間和努力”的神話。它確實需要時間,如果你想做好。重要的是,對于項目,在開源協議下分享你的源代碼和完全分享對項目自身的控制之間的范圍上,合理設置預期,
我幾乎覺得這里的決定對比其他公司設置預期變得不那么重要。
LXF: 你對Facebook克隆-Diaspora,怎么看?
DR: 我對那些家伙充滿敬意。他們很顯然對于他們在做什么以及創建產品充滿激情。我們他們會有很多的挑戰。一個開源的社交網絡是遠比站點之間狀態更新和發送消息要更多,它也擁有一個全球意識的ID,把你的朋友和內容與你聯系起來,通過各地的網絡,同時保持對于看到誰和分享什么進行控制。
LXF: 你認為Facebook目前在擁抱開放式網絡嘛?
DR: 是的,我認為我們在去年走了很長的路。無論 OAuth 2.0, HTML 5, 或是Open Graph Protocol,我們使用現存的標準,并且也與社區協作,在沒有標準的領域創建標準。
我們經常會被批評沒有使用現存的技術,但是最好的標準創建是基于工作來實現,并非其他途徑。正如我在夏季提到的新興的標準,“不要怕需要時弄亂它們,如果你最終得到更好的產品,更好的技術,和最終的更好的標準。” 我們正在應用OAuth 2.0,互聯網會因它變得更好。
【編輯推薦】