阿裡巴巴-雅虎中國技術研發部總監譚曉生講演

日期:2006-10-24  作者:喜騰小二  來源:PHPChina


    非常榮幸今天能夠作為一個使用者談一談我們對LAMP的使用。雅虎是全球着名的網際網路公司,產品非常多,雅虎中國隻是雅虎.COM產品的一個子級,真正在北美這邊生活的話,妳可以看到雅虎網站關係到生活的方方麵麵,從看新聞到財經的資訊到開車怎麼走,到找一些本機的餐飲、購物等資訊,在雅虎的網站都可以做得到。我介紹雅虎Web伺服器的體係結構。從最左邊看起,前端用IE或者其它浏覽器上來,經過一個標準的負載均衡裝置,可能會是一個簡單的DNS裝置也可能是私用的VIP的裝置,標準是跑Apache,編程語言是PHP,下麵寫到基於記憶體資料庫的係統MDBM,右邊可以看到後端存儲有甲骨文、MySQL資料庫,UDB伺服器專門存使用者的認證資訊以及郵件存在什麼地方AD伺服器,做廣告投放,AD是裡麵非常重要的。除了專有資料庫和標準的資料庫獲得資訊之外,還可以透過其它各種各樣的渠道,透過合作夥伴可以把資料Feeds進來。中間雲圖叫Proxyio,為瞭解決網路通信的問題,隨着使用者數量的增加,使用者使用量的增加,單臺伺服器滿足不了要求,每一個模組都可能是由多臺伺服器跑的,模組之間的通訊演化N乘M層級的問題,可以有效地簡化,這是非常概要的圖,這張圖裡麵沒有體現操作係統,WEB站線的語言用PHP,資料庫有MySQL和甲骨文。

    下麵可以看到HP的伺服器,為什麼唯寫了HP,並不是HP贊助了這個會,雅虎有若乾萬臺的伺服器,都選擇不同的供應商,在全球的支援變成非常困難的一件事情,所有東西經過驗證,在某一個版本下麵、某一種型號、某一種版本能執行不錯,全球盡可能統一,HP伺服器用得最多,在國內也開始使用戴爾。

    在此之前操作係統有兩個標準的操作係統,用得最多的是BSD,上麵之前跑Apache,至此之上有PHPBase和雅虎自己的Exts和PHP的語言,Y  Mods是雅虎內部攻擊預防的係統,經常會起作用。red更多像Linux偏一些,雅虎中國幾韆臺操作係統在一個月切換,最核心像索引器全部用64位元的機器,操作係統也是64位元,應用也是64位元的。

    Yapache和Apache的區別,雅虎從操作係統開始到Apache做過一些改造,第一個是效能方麵的最佳化,第二安全性方麵的提昇,第三是可管理性方麵的提昇,輪轉方式改變了,GZIP編碼有改變,最後這一行非常有說明,可以說明定位在哪一臺伺服器產生。

    雅虎為什麼要采用PHP?

    雅虎在使用PHP之前都用過什麼東西,我到雅虎之後這些東西都已經是歷史了,HF2K、CS/HDF。像雅虎以前郵件的页面,有HF2K、HTMIForm的東西,但是先都結束歷史舞臺。

    展現層分成五部分,第一個页面框架,這部分95%的HTML、50%PHP解決這方麵的問題。在顯示元件HTML和PHP是對半的,在業務邏輯部分90%用PHP做業務邏輯,在Ceneric百分之百用PHP,在庫部分大部分用PHP,只要滿足效能要求都可以用PHP,如果PHP實在乾不了,可以用C/C++編寫PHP延伸,如果說用PHP在效能上可以滿足的話,公司推薦盡可能用PHP寫,相對來說編程速度比較快,產量比較高。

    從業務邏輯往後叫Back  End  Engineering,還有一部分是Front  End  Eng。所以在雅虎工程師很有意思,在國內要徵人PHP工程師還是蠻困難的,尤其要徵人高素質的PHP,寫出穩定、安全又高效的程式碼,這其實還是比較難找的,雅虎的用人方法我們招C++工程師,要求俱備C++編程功底,到公司再學PHP,雅虎程式設計人員超過一半會PHP,不是進公司之後會的,而是去的時候學的。PHP是一個簡單的語言,但是簡單不等於可以胡亂寫,真正要寫出高效安全的程式,還是需要很嚴密的邏輯。

    在資料庫方麵來說,右邊講了甲骨文,右邊講了MySQL。MySQL在雅虎大量采用資料庫,在我見到過雅虎的產品裡邊90%以上用MySQL,隻有對併發度要求特別高,對資料安全性要求特別高,一般來說是收費服務,資料一旦丟失會有一些法律糾紛的,在這種情況下會考慮采用甲骨文,在實際開發裡邊,如果說拿出一個技術方案要用MySQL,簡單看一下,不是涉及到收錢這種業務,就過了。不管什麼樣的業務,只要用甲骨文,我們就坐下來談一談為什麼選擇甲骨文,有什麼樣非要選甲骨文不可的原因。我們在其他所有的地方,使用甲骨文不需要額外花錢,一年交多少錢給這些公司,包括MySQL的支援,都是買斷的,我在公司內部都可以用,不用花錢,大家線上執行的時候會進行認真的審核。

    在網頁搜尋中,PHP有什麼樣的用處。雅虎.COM一個搜尋的包括首頁、相關頁和結尾頁都是PHP,跑在Apache。雅虎到底有多少極其是使用Linux操作係統的,拿雅虎中國實際的數字采用非Linux操作係統的機器,不到1%,而且在實際的工作裡邊,Windows放在不同的網段,這方麵有很嚴格的規定。

    雅虎在LAMP的工作。雅虎參加Apache分散式資料處理工作,如果大家對DFS有瞭解的話,做分散式資料處理,雅虎中國在過去比較多是技術使用者,包括雅虎.COM產生雅虎中國在用,雅虎中國有五名工程師參與其中,明年投入更多的人力。我們鼓勵員工參加這樣的活動,公司也給他們提供這樣的支援。

    感謝大家!

<<<返回技術中心

技術文章

站內新聞

我要啦免费统计