php在yahoo!的應(yīng)用
雅虎中國技術(shù)研發(fā)部總監(jiān)譚曉生講演;
非常榮幸今天能夠作為一個用戶談一談我們對LAMP的使用。雅虎是全球著名的互聯(lián)網(wǎng)公司,產(chǎn)品非常多,雅虎中國只是雅虎.COM產(chǎn)品的一個子級,真正在北美這邊生活的話,你可以看到雅虎網(wǎng)站關(guān)系到生活的方方面面,從看新聞到財經(jīng)的信息到開車怎么走,到找一些本地的餐飲、購物等信息,在雅虎的網(wǎng)站都可以做得到。我介紹雅虎Web服務(wù)器的體系結(jié)構(gòu)。從最左邊看起,前端用IE或者其它瀏覽器上來,經(jīng)過一個標(biāo)準(zhǔn)的負(fù)載均衡設(shè)備,可能會是一個簡單的DNS裝置也可能是專用的 VIP的設(shè)備,標(biāo)準(zhǔn)是跑Apache,編程語言是PHP,下面寫到基于內(nèi)存數(shù)據(jù)庫的系統(tǒng)MDBM,右邊可以看到后端存儲有甲骨文、MySQL數(shù)據(jù)庫,UDB服務(wù)器專門存用戶的認(rèn)證信息以及郵件存在什么地方AD服務(wù)器,做廣告投放,AD是里面非常重要的。除了專有數(shù)據(jù)庫和標(biāo)準(zhǔn)的數(shù)據(jù)庫獲得信息之外,還可以通過其它各種各樣的渠道,通過合作伙伴可以把數(shù)據(jù)Feeds進(jìn)來。中間云圖叫Proxyio,為了解決網(wǎng)絡(luò)通信的問題,隨著用戶數(shù)量的增加,用戶使用量的增加,單臺服務(wù)器滿足不了要求,每一個模塊都可能是由多臺服務(wù)器跑的,模塊之間的通訊演化N乘M層級的問題,可以有效地簡化,這是非常概要的圖,這張圖里面沒有體現(xiàn)操作系統(tǒng),WEB站線的語言用PHP,數(shù)據(jù)庫有MySQL和甲骨文。
下面可以看到HP的服務(wù)器,為什么只寫了HP,并不是HP贊助了這個會,雅虎有若干萬臺的服務(wù)器,都選擇不同的供應(yīng)商,在全球的支持變成非常困難的一件事情,所有東西經(jīng)過驗證,在某一個版本下面、某一種型號、某一種版本能運行不錯,全球盡可能統(tǒng)一,HP服務(wù)器用得最多,在國內(nèi)也開始使用戴爾。
在此之前操作系統(tǒng)有兩個標(biāo)準(zhǔn)的操作系統(tǒng),用得最多的是BSD,上面之前跑Apache,至此之上有PHPBase和雅虎自己的Exts和PHP的語言,Y; Mods是雅虎內(nèi)部攻擊預(yù)防的系統(tǒng),經(jīng)常會起作用。red更多像Linux偏一些,雅虎中國幾千臺操作系統(tǒng)在一個月切換,最核心像索引器全部用64位的機器,操作系統(tǒng)也是64位,應(yīng)用也是64位的。
Yapache和Apache的區(qū)別,雅虎從操作系統(tǒng)開始到Apache做過一些改造,第一個是性能方面的優(yōu)化,第二安全性方面的提升,第三是可管理性方面的提升,輪轉(zhuǎn)方式改變了,GZIP編碼有改變,最后這一行非常有幫助,可以幫助定位在哪一臺服務(wù)器產(chǎn)生。
雅虎為什么要采用PHP?
雅虎在使用PHP之前都用過什么東西,我到雅虎之后這些東西都已經(jīng)是歷史了,HF2K、CS/HDF。像雅虎以前郵件的頁面,有HF2K、HTMIForm的東西,但是先都退出歷史舞臺。
展現(xiàn)層分成五部分,第一個頁面框架,這部分95%的HTML、50% PHP解決這方面的問題。在顯示組件HTML和PHP是對半的,在業(yè)務(wù)邏輯部分90%用PHP做業(yè)務(wù)邏輯,在Ceneric百分之百用PHP,在庫部分大部分用PHP,只要滿足性能要求都可以用PHP,如果PHP實在干不了,可以用C/C++編寫PHP擴(kuò)展,如果說用PHP在性能上可以滿足的話,公司推薦盡可能用PHP寫,相對來說編程速度比較快,產(chǎn)量比較高。
從業(yè)務(wù)邏輯往后叫Back; End; Engineering,還有一部分是Front; End; Eng。所以在雅虎工程師很有意思,在國內(nèi)要招聘PHP工程師還是蠻困難的,尤其要招聘高素質(zhì)的PHP,寫出穩(wěn)定、安全又高效的代碼,這其實還是比較難找的,雅虎的用人方法我們招C++工程師,要求具備C++編程功底,到公司再學(xué)PHP,雅虎程序員超過一半會PHP,不是進(jìn)公司之后會的,而是去的時候?qū)W的。PHP是一個簡單的語言,但是簡單不等于可以胡亂寫,真正要寫出高效安全的程序,還是需要很嚴(yán)密的邏輯。
在數(shù)據(jù)庫方面來說,右邊講了甲骨文,右邊講了MySQL。MySQL在雅虎大量采用數(shù)據(jù)庫,在我見到過雅虎的產(chǎn)品里邊90%以上用MySQL,只有對并發(fā)度要求特別高,對數(shù)據(jù)安全性要求特別高,一般來說是收費服務(wù),數(shù)據(jù)一旦丟失會有一些法律糾紛的,在這種情況下會考慮采用甲骨文,在實際開發(fā)里邊,如果說拿出一個技術(shù)方案要用MySQL,簡單看一下,不是涉及到收錢這種業(yè)務(wù),就過了。不管什么樣的業(yè)務(wù),只要用甲骨文,我們就坐下來談一談為什么選擇甲骨文,有什么樣非要選甲骨文不可的原因。我們在其他所有的地方,使用甲骨文不需要額外花錢,一年交多少錢給這些公司,包括MySQL的支持,都是買斷的,我在公司內(nèi)部都可以用,不用花錢,大家在線執(zhí)行的時候會進(jìn)行認(rèn)真的審核。
在網(wǎng)頁搜索中,PHP有什么樣的用處。雅虎.COM一個搜索的包括首頁、相關(guān)頁和結(jié)尾頁都是PHP,跑在Apache。雅虎到底有多少極其是使用 Linux操作系統(tǒng)的,拿雅虎中國實際的數(shù)字采用非Linux操作系統(tǒng)的機器,不到1%,而且在實際的工作里邊,Windows放在不同的網(wǎng)段,這方面有很嚴(yán)格的規(guī)定。
雅虎在LAMP的工作。雅虎參加Apache分布式數(shù)據(jù)處理工作,如果大家對DFS有了解的話,做分布式數(shù)據(jù)處理,雅虎中國在過去比較多是技術(shù)使用者,包括雅虎.COM產(chǎn)生雅虎中國在用,雅虎中國有五名工程師參與其中,明年投入更多的人力。我們鼓勵員工參加這樣的活動,公司也給他們提供這樣的支持。
感謝大家!
http://www.phpchina.com/viewnews_2295.html
