自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

探索Facebook背后的開源力量

開源
盡管Google極其推崇開源,并推出大量的開源項目,但是從根本上來看,Google的開源力度、開放程度遠遠比不上Facebook。這也是為什么Facebook能夠在短短的幾年間,一躍成為全球最大的社交網站的原因之一。本文就來看看Facebook背后的開源力量。

盡管Google極其推崇開源,并推出大量的開源項目,但是從根本上來看,Google的開源力度、開放程度遠遠比不上Facebook。這也是為什么Facebook能夠在短短的幾年間,一躍成為全球最大的社交網站的原因之一。本文就來看看Facebook背后的開源力量。 

[企業(yè)開源系列]系列專注于全球著名企業(yè)(包括國內企業(yè))中的開源現(xiàn)狀,探討開源軟件的力量,以使更多的開發(fā)者了解開源、貢獻開源,打造更加和諧的國內開源生態(tài)。 

一、Facebook vs. Google 

Facebook從2004年創(chuàng)始以來,已經從一個哈佛大學校內網站一躍發(fā)展成為了全球最大的社交網站。目前,F(xiàn)acebook的用戶數(shù)量已經突破10億,全球平均每天有7億用戶在使用其服務,遠遠將Google+(活躍用戶3.43億)甩在了身后。 

相比Google+,F(xiàn)acebook已經完勝。Facebook大量的用戶也造就其巨額的廣告收入,在互聯(lián)網廣告業(yè)務方面,F(xiàn)acebook已經成為Google最具威脅的競爭對手。 

Facebook發(fā)展如此迅速,與其內部大量的人才分不開。而近幾年,F(xiàn)acebook與Google的競爭也體現(xiàn)在人才搶奪戰(zhàn)中。Facebook瘋狂從Google、微軟、蘋果、雅虎等公司挖掘人才,以微軟為例,2012年每1名Facebook員工跳槽至微軟,就有30.5名微軟員工跳槽至Facebook。而Google對Facebook的該比例為15.5 : 1。 

如今Facebook的員工總數(shù)已達5000人,盡管如此,F(xiàn)acebook公司的規(guī)模還只相當于Google的十分之一(Google員工已經達到5萬多人)。而在資金方面,F(xiàn)acebook比Google也差了一大截。 

在人力、財力都不及對手的情況下,F(xiàn)acebook憑什么得以與互聯(lián)網的霸主Google抗衡?其中一個很大的因素就是開源,這樣可以吸引全球更多的開發(fā)者為你工作,以此來彌補某些不足。 #p#

二、Facebook的開源大手筆 

盡管Google一直聲稱擁抱開源,但是Google對于其某些技術、服務器方面的信息諱莫如深。而在此方面,F(xiàn)acebook要顯得大度得多。 

1.  開源Facebook平臺代碼 

Facebook在2008年選擇將該平臺上的重要部分的代碼和應用工具開源。Facebook稱,平臺已經基本發(fā)展成熟,此舉可以讓開發(fā)者更全面地理解整個Facebook平臺,更容易地為Facebook開發(fā)應用軟件,并可以回報社區(qū)。 

該項目代號為“FBOpen”,其中包含了實現(xiàn)Facebook平臺的一些基礎設施、功能等,如API架構、FQL分析器、FBML分析器、FBJS,以及許多常用方法和標簽的實現(xiàn),代碼基于PHP。這意味著其他開發(fā)者可以很方便地利用Facebook所采用的基礎設施和技術。 

項目地址:https://github.com/facebook/platform/tree/master/fbopen 

開源的代碼中,絕大部分使用CPAL(Common Public Attribution License)許可,而FBML分析器使用的是MPL(Mozilla Public License)許可證。 

2.  開源數(shù)據(jù)中心和網絡系統(tǒng) 

為了在數(shù)據(jù)中心上與Google對抗,2011年Facebook宣布了開源計算項目(Open Compute Project,簡稱OCP)計劃。該項目旨在創(chuàng)建“開源的”數(shù)據(jù)中心硬件,F(xiàn)acebook數(shù)據(jù)中心設計圖、服務器配置、數(shù)據(jù)中心監(jiān)控界面等悉數(shù)開源。Facebook此舉的目的是為大數(shù)據(jù)中心建立更快、更便宜、用材更少的硬件。更重要的是,通過OCP免費提供的設計,任何企業(yè)都可以使用它,并對其進行調整。 

今年5月份,F(xiàn)acebook又宣布將其包括交換機等網絡設備在內的網絡系統(tǒng)開源。 

采用開源數(shù)據(jù)中心,使得Facebook可以與Google這一規(guī)模、經濟實力都在它之上的對手在數(shù)據(jù)中心領域展開競爭。 

三、Facebook開源的基礎設施 

除了大的系統(tǒng)平臺、數(shù)據(jù)中心外,F(xiàn)acebook也開源了其所使用的基礎設施和服務。介紹如下。 

1.  Apache Cassandra 

這是一個分布式的存儲系統(tǒng),用來管理結構化數(shù)據(jù),并可以擴展非常大型的、跨多個商品服務器(commodity servers)的大數(shù)據(jù)集,而不用擔心出現(xiàn)單點故障。 

2.  Apache Hive 

這是一個數(shù)據(jù)倉庫基礎設施,構建于Hadoop之上,其提供的工具可以輕松對大數(shù)據(jù)集進行數(shù)據(jù)匯總、即席查詢(adhoc querying)和分析等。 

3.  FlashCache 

這是一個針對Linux的通用的回寫塊緩存。它可以作為一個可加載的Linux內核模塊,在文件系統(tǒng)之下使用。 

4.  HipHop for PHP 

這是一個PHP虛擬機、運行時、JIT(Just In Time,實時生產系統(tǒng))。它的前身是HPHPc(可將PHP代碼編譯為C++的項目)。HipHop虛擬機為PHP代碼帶來了一個大大的性能提升。 

5.  folly 

folly(Facebook Open-source LibrarY)是一個提供類似std和boost功能的底層庫,基于C++11特性。folly的開發(fā)者包括了Andrei Alexandrescu之類的C++編程領域的大師級人物。folly與std和boost的最大不同就是在大規(guī)模的場景中效率更高。 

6.  Scribe 

這是一個可擴展的服務,用于從大量的服務器中實時聚合日志數(shù)據(jù)流。 

7.  Thrift 

該項目提供了一個框架,用于可擴展的跨語言服務開發(fā)。Thrift結合了一個軟件堆棧和一個代碼生成引擎,來構建可高效工作的服務,可無縫跨C++、Java、Python、PHP、Ruby、Erlang、Perl、Haskell、C#、Cocoa、JavaScript、Node.js、Smalltalk、OCaml、Delphi和其他語言。 

8.  Tornado 

一個相對簡單、無阻塞的Web服務器框架,使用Python編寫。它被設計用來處理成千上萬的并發(fā)連接,這使得它非常適合實時Web服務。 

9.  React 

這是一個用于構建用戶界面的JavaScript庫,用來呈現(xiàn)instagram.com和Facebook的部分站點。 

10.  FBMock 

FBMock是一個PHP mocking框架,簡單且易于使用。 #p#

四、Facebook開源的內部開發(fā)工具 

Facebook也選擇將其內部開發(fā)人員所使用的工具開源。 

1.  codemod 

可以協(xié)助開發(fā)者對大型代碼庫進行部分自動化重構工作,但仍然需要人的監(jiān)督和不定期的干預。 

2.  Facebook Animation 

這是一個JavaScript庫,可以幫助開發(fā)者使用DOM和CSS來創(chuàng)建自定義動畫。 

3.  Online Schema Change for MySQL 

允許你在線更改集群中的大型數(shù)據(jù)庫表,而不需將集群離線。 

4.  Phabricator 

這是一個Web應用程序集合,可以幫助開發(fā)者輕松編寫、審查和共享源代碼。目前數(shù)百名Facebook工程師每天都在使用它。 

5.  PHPEmbed 

該工具使得嵌入PHP對于開發(fā)者來說變得真正簡單,這是一個更方便和更簡化的、構建于PHP SAPI之上的API。

6.  phpsh 

該工具為PHP提供了一個交互式的shell,功能包括readline歷史、標簽自動完成以及快速訪問文檔等。有趣的是這個工具是用Python寫的。 

7.  Three20 

這是一個針對iPhone開發(fā)者的Objective-C庫,提供了很多UI元素和數(shù)據(jù)輔助工具,不過該項目現(xiàn)在已經不維護了,不過你可以用于iOS5/6系統(tǒng)的應用開發(fā)中。 

8.  XHP 

XHP是一個PHP擴展,可以增強PHP語言的語法,比如將XML文檔片段變?yōu)橛行У谋磉_式。 

9.  XHProf 

這是一個針對PHP的函數(shù)級的分層分析器,擁有一個簡單的基于HTML的導航界面。 

五、開發(fā)平臺 

Facebook的平臺工程團隊也發(fā)布和維護著一些開源的平臺SDK,這些SDK可以幫助開發(fā)者很方便地將Facebook整合進第三方應用中。 

#p#

六、Facebook工程師貢獻的開源項目 

Facebook的工程師也參與了很多開源項目的貢獻。這些開源項目在Facebook中都有應用,并在生產環(huán)境中得到了優(yōu)化。 

1.  Apache Hadoop 

Apache Hadoop提供了可靠的、可擴展的、分布式的計算基礎設施,在Facebook中用于數(shù)據(jù)分析。 

2.  Apache HBase 

這是一個分布式的、面向列的數(shù)據(jù)存儲,構建于Hadoop分布式文件系統(tǒng)(HDFS)之上。 

3.  Cfengine 

這是一個基于規(guī)則的配置系統(tǒng),用于服務器的自動配置和維護。Facebook使用Cfengine來維護主機配置,并在產品層面上自動化許多管理操作。 

4.  jemalloc 

這是一個快速、一致、支持堆分析的內存分配器。Facebook的工程師為其添加了堆分析特性,并做出了很多優(yōu)化。 

5.  memcached 

這是一個分布式的內存對象緩存系統(tǒng)。Memcached最初不是由Facebook開發(fā)的,但Facebook已經成為了該技術的最大用戶。 

6.  MySQL 

MySQL是Facebook數(shù)據(jù)庫基礎設施的骨干。你可以在Launchpad中找到很多Facebook貢獻的補丁,還可以通過MySQL@Facebook頁面來了解Facebook如何使用它。 

7.  PHP 

Facebook的大部分代碼都是使用PHP開發(fā)的。它的語法很簡單,讓Facebook在產品上能夠更快地遷移和迭代。

8.  Varnish 

在Facebook,該項目每天處理來自全世界用戶的數(shù)十億請求。當你加載朋友的圖片和和頭像時,Varnish就有參與。 

總結 

由上可知,F(xiàn)acebook在開源方面的力度非常大。在與規(guī)模、財力都在其之上的Google的競爭中,開源確實是一個非常好的途徑——采用開源項目,使得Facebook可以使用很少的成本即可快速構建穩(wěn)定、高效的系統(tǒng);而通過將自己的產品開源,F(xiàn)acebook吸引了全球大量的優(yōu)秀的開發(fā)者為其工作。 

Facebook的所有開源項目都可以在Github中找到:https://github.com/facebook 

利用開源,使得Facebook這個后起之秀能夠快速崛起,并逐漸縮小與互聯(lián)網霸主Google的差距。還有哪些企業(yè)利用開源獲得了成功呢?請關注[企業(yè)開源系列]的后續(xù)報道。 

責任編輯:黃丹 來源: iteye.com
相關推薦

2013-08-14 11:14:20

開源Google

2013-08-01 10:49:59

開源

2023-07-23 18:35:58

2012-05-10 17:18:42

Facebook應用中心

2012-06-04 13:25:34

Facebook開源

2024-04-02 08:00:00

函數(shù)式編程開發(fā)

2013-07-23 09:02:48

Facebook Ho應用設計

2016-02-24 16:18:22

2012-05-14 13:58:15

Evernote印象筆記

2012-08-30 09:32:12

FacebookiOS

2019-04-04 13:00:19

Linuxshell命令

2021-09-02 18:36:13

工業(yè)互聯(lián)網安全

2015-11-09 16:49:44

力登電源管理

2023-09-06 10:39:01

Java反射Java

2021-10-08 08:55:23

FacebookBGP工具

2015-10-19 09:43:11

facebookinternet.or天網

2013-10-30 09:42:38

Facebook圖搜索大數(shù)據(jù)

2015-10-20 15:00:51

七牛云

2009-03-12 15:25:50

firefox火狐
點贊
收藏

51CTO技術棧公眾號