
Facebook使用LAMP(Linux、 Apache、 MySQL、 PHP)作為技術(shù)構(gòu)架。前臺(tái)開發(fā)語言主要是PHP,一些后臺(tái)應(yīng)用使用Python、Perl和Java,以及一些gcc和Boost。
LAMP Linux+Apache+Mysql+Perl/PHP/Python,一組常用來搭建動(dòng)態(tài)網(wǎng)站或者服務(wù)器的開源軟件,本身都是各自獨(dú)立的程序,但是因?yàn)槌1环旁谝黄鹗褂?,擁有了越來越高的兼容度,共同組成了一個(gè)強(qiáng)大的Web應(yīng)用程序平臺(tái)。
1、Web 前端是由 PHP 寫的。Facebook 的 HipHop會(huì)把PHP轉(zhuǎn)成 C++ 并用 g++編譯,這樣就可以為模板和Web邏賀業(yè)務(wù)層提供高的性能。
2、業(yè)務(wù)邏輯以Service的形式存在,其使用Thrift。這些Service根據(jù)需求的不同由PHP,C++或Java實(shí)現(xiàn)。
3、用Java寫的Services沒有用到任何一個(gè)企業(yè)級(jí)的應(yīng)用服務(wù)器,但用到了Facebook自己的定制的應(yīng)用服務(wù)器??瓷先ズ孟袷侵匦掳l(fā)明輪子,但是這些Services只被暴露給Thrift使用(絕大所數(shù)是這樣),Tomcat太重量級(jí)了,即使是Jetty也可能太過了點(diǎn),其附加值對(duì)Facebook所需要的沒有意義。
除了語言層面的,還有很多架構(gòu),多數(shù)是開源架構(gòu),并且有很多是Facebook根據(jù)自己的業(yè)務(wù)需求而設(shè)計(jì)的架構(gòu)并使之開源的。
隨著開源潮流的蓬勃發(fā)展,開放源代碼的LAMP已經(jīng)與J2EE和.Net商業(yè)軟件形成三足鼎立之勢,并且該軟件開發(fā)的項(xiàng)目在軟件方面的投資成本較低,因此受到整個(gè)IT界的關(guān)注。
LAMP是基于Linux,Apache,MySQL和PHP的開放資源網(wǎng)絡(luò)開發(fā)平臺(tái),PHP是一種有時(shí)候用Perl或Python可代替的編程語言。這個(gè)術(shù)語來自歐洲,在那里這些程序常用來作為一種標(biāo)準(zhǔn)開發(fā)環(huán)境。名字來源于每個(gè)程序的第一個(gè)字母。每個(gè)程序在所有權(quán)里都符合開放源代碼標(biāo)準(zhǔn):Linux是開放系統(tǒng);Apache是最通用的網(wǎng)絡(luò)服務(wù)器;mySQL是帶有基于網(wǎng)絡(luò)管理附加工具的關(guān)系數(shù)據(jù)庫;PHP是流行的對(duì)象腳本語言,它包含了多數(shù)其它語言的優(yōu)秀特征來使得它的網(wǎng)絡(luò)開發(fā)更加有效。開發(fā)者在Windows操作系統(tǒng)下使用這些Linux環(huán)境里的工具稱為使用WAMP。