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

后起之秀Facebook憑什么挑戰(zhàn)互聯(lián)網(wǎng)霸主Google?

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

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

 

[[83501]]

 

一、Facebook vs. Google

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

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

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

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

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

二、Facebook的開源大手筆

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

1. 開源Facebook平臺(tái)代碼

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

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

項(xiàng)目地址:https://github.com/facebook/platform/tree/master/fbopen

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

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

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

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

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

三、Facebook開源的基礎(chǔ)設(shè)施

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

1. Apache Cassandra

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

2. Apache Hive

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

3. FlashCache

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

4. HipHop for PHP

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

5. folly

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

6. Scribe

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

7. Thrift

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

8. Tornado

一個(gè)相對(duì)簡(jiǎn)單、無(wú)阻塞的Web服務(wù)器框架,使用Python編寫。它被設(shè)計(jì)用來處理成千上萬(wàn)的并發(fā)連接,這使得它非常適合實(shí)時(shí)Web服務(wù)。

9. React

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

10. FBMock

FBMock是一個(gè)PHP mocking框架,簡(jiǎn)單且易于使用。#p# 

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

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

1. codemod

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

2. Facebook Animation

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

3. Online Schema Change for MySQL

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

4. Phabricator

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

5. PHPEmbed

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

6. phpsh

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

7. Three20

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

8. XHP

XHP是一個(gè)PHP擴(kuò)展,可以增強(qiáng)PHP語(yǔ)言的語(yǔ)法,比如將XML文檔片段變?yōu)橛行У谋磉_(dá)式。

9. XHProf

這是一個(gè)針對(duì)PHP的函數(shù)級(jí)的分層分析器,擁有一個(gè)簡(jiǎn)單的基于HTML的導(dǎo)航界面。#p# 

五、開發(fā)平臺(tái)

Facebook的平臺(tái)工程團(tuán)隊(duì)也發(fā)布和維護(hù)著一些開源的平臺(tái)SDK,這些SDK可以幫助開發(fā)者很方便地將Facebook整合進(jìn)第三方應(yīng)用中。

Facebook Android SDK:針對(duì)Android平臺(tái)的SDK。

Facebook iOS SDK:針對(duì)iOS平臺(tái)的SDK。

Facebook JavaScript SDK:針對(duì)JavaScript應(yīng)用的SDK。

Facebook PHP SDK:針對(duì)PHP應(yīng)用的SDK。

六、Facebook工程師貢獻(xiàn)的開源項(xiàng)目

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

1. Apache Hadoop

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

2. Apache HBase

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

3. Cfengine

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

4. jemalloc

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

5. memcached

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

6. MySQL

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

7. PHP

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

8. Varnish

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

總結(jié)

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

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

利用開源,使得Facebook這個(gè)后起之秀能夠快速崛起,并逐漸縮小與互聯(lián)網(wǎng)霸主Google的差距。

責(zé)任編輯:王程程 來源: 博客園
相關(guān)推薦

2012-06-12 16:44:20

FacebookGoogle

2020-06-30 20:23:38

AMDCPU英特爾

2020-04-17 14:35:28

JuliaPython編程

2010-07-06 09:55:23

虛擬化甲骨文

2018-05-02 08:51:06

技術(shù)編程語(yǔ)言Python

2016-11-22 08:30:02

Solus Linux發(fā)行版桌面

2022-09-21 11:39:55

SvelteSolid前端

2022-02-16 08:48:58

HTTPSNginx服務(wù)器

2024-05-08 10:18:32

2009-12-28 09:51:41

微軟前員工

2013-10-21 10:14:03

阿里云阿里云開發(fā)者大會(huì)金融

2012-05-17 09:24:33

谷歌Android移動(dòng)系統(tǒng)

2017-08-08 16:34:41

云計(jì)算

2018-03-01 13:32:28

宏碁游戲本PC行業(yè)

2020-10-23 10:12:30

物聯(lián)網(wǎng)互聯(lián)網(wǎng)技術(shù)

2020-04-07 08:20:44

微軟Windows 比爾蓋茨

2009-06-25 10:15:27

2012-05-22 09:10:14

云筆記

2017-11-02 07:16:42

Google
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)