互聯(lián)網(wǎng)技術(shù)架構(gòu)-10、新浪.sinaappengine_第1頁(yè)
互聯(lián)網(wǎng)技術(shù)架構(gòu)-10、新浪.sinaappengine_第2頁(yè)
已閱讀5頁(yè),還剩4頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

SinaAppEngine文/SinaAppEngine(簡(jiǎn)稱(chēng)SAE)是新浪研發(fā)中心于2009年上半年開(kāi)始開(kāi)發(fā),并S版本的國(guó)內(nèi)首個(gè)公有云計(jì)算平臺(tái)(.cn),是新計(jì)算(簡(jiǎn)稱(chēng))戰(zhàn)SAE作為國(guó)內(nèi)的公有云計(jì)算,借鑒吸納了開(kāi)發(fā)者可以在Linux/Mac/Windows上通過(guò)SDK或者Web版SDK進(jìn)行開(kāi)發(fā)、部署、調(diào)試,團(tuán)隊(duì)

每個(gè)應(yīng)用的資源消耗(包括CPU、內(nèi)存、磁盤(pán)SAE云計(jì)算在國(guó)外已經(jīng)有4~5年的歷史。年,Amazon就推出了以EC2為代表的公有云計(jì)算,并且實(shí)現(xiàn)了大規(guī)模;2008年,推出了以ppgne代表公有云計(jì)算。國(guó)內(nèi)的云計(jì)算卻一直是炒得很厲害,聯(lián)網(wǎng)公司都在宣傳,。從2004年開(kāi)始,新浪就開(kāi)始了私有云方向已經(jīng)支撐新浪的絕大部分業(yè)務(wù)。從2008年起,新浪又啟動(dòng)了“”的公有云計(jì)算計(jì)劃,“”的產(chǎn)物。

作者簡(jiǎn)介技術(shù)主管,擅長(zhǎng)應(yīng)用算和統(tǒng)計(jì)中心精確的計(jì)算表1SAE和傳統(tǒng)的虛擬主機(jī)托管VPS的主要區(qū) 自身的兩個(gè)目標(biāo):第一,類(lèi)使用方目SLA(類(lèi)使用方目SLA(服務(wù)承諾計(jì)費(fèi)方 ,確計(jì)所付即所用,所付僅所依服務(wù)商變化,無(wú)嚴(yán)格協(xié)高可靠性及嚴(yán)格的服務(wù)承僅基本需設(shè)備租服務(wù)使無(wú)用Web開(kāi)發(fā)有云不同于私有云,更強(qiáng)調(diào)安全性和可性,這也對(duì)整體的架出了更苛刻的要求;2010 特別策劃.indd 2010-10-26服務(wù)提供一整套的解決方案,SAE爭(zhēng)取提供開(kāi)發(fā)者開(kāi)發(fā)。經(jīng)過(guò)技術(shù)團(tuán)隊(duì)一年的開(kāi)發(fā),SAE目前已經(jīng)提供了十多種服務(wù),整體上分為計(jì)算型和型,型又包括同步計(jì)算和異步計(jì)算,而型則分為持久化如表2。

反向 層、路由邏輯層、Web計(jì)算服務(wù)池。而從Web計(jì)算服務(wù)層延伸出SAE附屬的分布式計(jì)算型服務(wù)和分布式 型服務(wù),具體又分成同步計(jì)算型服務(wù)、異步計(jì)算型服務(wù)、持久化 服務(wù)、非持久化服務(wù)。各種服務(wù)統(tǒng)一向日志和統(tǒng)計(jì)中心匯報(bào)如圖1所示CoverStory服務(wù)名類(lèi)CoverStory服務(wù)名類(lèi)說(shuō)同步計(jì)帶SAE沙盒的Apache持久提供分布式文非持久提供分布式緩存服持久分布式數(shù)據(jù)庫(kù)集群,提MySQL服異步計(jì)異步計(jì)異步計(jì)分布式定時(shí)服同步計(jì)分布式抓取服非持久提供臨時(shí)文提供應(yīng)用配置功能,取Apache異步計(jì)郵件發(fā)送服同步計(jì)圖像處理服同步計(jì)提供的強(qiáng)大PHP調(diào)優(yōu)工其他工WindowsGUISDK、lineSDKOnline布Alpha1版本SAE發(fā)布了Alpha2版本,SAE

圖1SAE整體架構(gòu) 識(shí),快速地(O(1)時(shí)間復(fù)雜度)到相應(yīng)的Web服務(wù)池及相應(yīng)的硬件路徑。如果發(fā)現(xiàn)關(guān)系不存在或者錯(cuò)誤,則給出相應(yīng)的錯(cuò)誤提示。該層對(duì)用戶(hù)隱藏了很多具體地址信息,使開(kāi)發(fā)者無(wú)需關(guān)心服務(wù)的。成。每個(gè)Web服務(wù)池實(shí)際是由一組ApacheServer組成的,這些池按照不同的SLA提供不同級(jí)別的 程序

盡管SAE一直沒(méi)有開(kāi)放(實(shí)際云計(jì)算的模式也不以用戶(hù)的規(guī)模為評(píng)價(jià)標(biāo)準(zhǔn)),但已經(jīng)擁有了一批

務(wù)。每個(gè)WT請(qǐng)求,進(jìn)程運(yùn)行在H服務(wù)沙盒內(nèi),在SAE沙盒內(nèi)的PH解析引擎。用戶(hù)的代碼最終通過(guò)接口調(diào)用各種服務(wù)。日志和統(tǒng)計(jì)中心:負(fù)責(zé)對(duì)用戶(hù)所使用的所有服務(wù)的進(jìn)行統(tǒng)計(jì)和資源計(jì)費(fèi),這里的有兩種,一種是分鐘,用來(lái)保證整個(gè)平臺(tái)的穩(wěn)定;一種是天,用戶(hù)可以給自己設(shè)定每天資源消耗特別策劃.indd 2010-10-26圖2SAE沙盒結(jié)構(gòu)以理解為SAEPHP版的STL)很方便地調(diào)用它們。真正的用戶(hù)代碼是跑在SAE提供的Web運(yùn)行環(huán)境下的,為了提供公有云計(jì)算特有的安全性,SAE設(shè)計(jì)多層沙盒來(lái)保證用戶(hù)應(yīng)用之間的性,如圖2。最內(nèi)層的就是用戶(hù)代碼,大部分PHP代碼不需要做任何修改就可以跑在SAE平臺(tái)上,小部分代碼需要做一些修改以適應(yīng)SAE的平臺(tái)特性。這主要有兩部分:第一,SA因?yàn)榘踩越昧吮镜豂/O,所以fwrite等函數(shù)需要修改為使用Tmpfs讀寫(xiě)本地臨

一是通過(guò)標(biāo)準(zhǔn)的.i,我們?cè)O(shè)定了一些特殊配置和禁用函數(shù);第二,為了達(dá)到一些.i無(wú)法實(shí)現(xiàn)的沙盒功能,我們對(duì)d解釋器核做了一些改進(jìn),以便通過(guò)用戶(hù)標(biāo)識(shí)將資源進(jìn)行。另外我們還把一些E的特定服務(wù)也在d層。Apache為標(biāo)準(zhǔn)的ApacheWebServer,版本為2.2。不過(guò)我們禁用了htaccess,并提供了自己實(shí)現(xiàn)的替換方案AppConfig。用戶(hù)可以通過(guò)類(lèi)自然語(yǔ)言的方式編寫(xiě)AppConfig,-compress:Length”]>=500)compress表示按 件啟動(dòng)頁(yè)面壓縮。目前AppConfig提 的功能有 默認(rèn)頁(yè)面、自定義錯(cuò) 頁(yè)面、壓縮、頁(yè)面重定向、頁(yè)面過(guò)期 設(shè)置響應(yīng)頭的content-type、設(shè)置頁(yè) 權(quán)限。我們選擇自行實(shí)現(xiàn) 還有一個(gè)考慮,就是因?yàn)閭鹘y(tǒng)Apache htaccess因?yàn)橐?遞歸方式合并配置文件, HTTPServer沙盒為Apache的安全可靠運(yùn)行提供了多種保護(hù)功能,比如防止某個(gè)用戶(hù)占用連最外層的是標(biāo)準(zhǔn)POSIX環(huán)境,目前我們的服務(wù)跑在x2.6上。文件或者直接通過(guò)Stor讀寫(xiě)我們的分布式文 FetchURL服務(wù)。我們提供了PHPWrapper以方便用PHPZend為標(biāo)準(zhǔn)的PHP解釋器,我們采用SAEZendSandbox為一個(gè)邏輯概念,為用戶(hù)的代碼運(yùn)行提供良好的性。這里有兩個(gè)層面,第

靜態(tài)擴(kuò)展用戶(hù)和資源有強(qiáng)綁定關(guān)系最典型的例子為Amazon的EC2和Ruby云計(jì)算平臺(tái)

2010 特別策劃.indd 2010-10-26系,換句話(huà)說(shuō),A用戶(hù)申請(qǐng)的虛擬機(jī)在A退還資源前,用戶(hù)不能使用,哪怕。 臺(tái)提供了良好的性,資源可以固定在某個(gè)用戶(hù)下,但缺點(diǎn)是資源利用率不高;動(dòng)態(tài)擴(kuò)展的長(zhǎng)處是資源利用率高,這樣整個(gè)云計(jì)算平臺(tái)的成本會(huì)很低,但缺點(diǎn)是對(duì)性有更高的要求,因?yàn)橘Y源可以在很短的時(shí)間被多個(gè)用戶(hù)使用。相比較,在安。CoverStory在SAE平臺(tái)上,我們采用以動(dòng)態(tài)擴(kuò)展為主、靜態(tài)擴(kuò)展為輔的兼而有之的設(shè)計(jì)。在b計(jì)算池層是典型的動(dòng)態(tài)擴(kuò)展。而在E的某些服務(wù)中,又是以靜態(tài)擴(kuò)展的方式展現(xiàn),如C(tlBtr)分布式數(shù)據(jù)庫(kù)集群,當(dāng)用戶(hù)申請(qǐng)了yL服務(wù),我們就會(huì)在C后端根據(jù)A創(chuàng)建一主多從的B給用戶(hù),在用戶(hù)顯式刪除該前,該B都不會(huì)被別人使用。當(dāng)然,通過(guò)C,任何一個(gè)用戶(hù)也無(wú)需知道后端的實(shí)際地址,只需統(tǒng)一的tCoverStory高可靠性(HighAvailability,簡(jiǎn)稱(chēng)面則門(mén)戶(hù)所使用的帶寬環(huán)境。另外,所有速度和新浪服務(wù)一樣。針對(duì)計(jì)算型服務(wù),冗余設(shè)計(jì)就是程序在多節(jié)點(diǎn)運(yùn)行。我們要求SAE所有的代碼程序要做到Stass(無(wú)狀態(tài)依賴(lài)),即無(wú)依賴(lài)部署無(wú)依賴(lài)啟動(dòng),隨時(shí)終止進(jìn)程隨時(shí)重啟進(jìn)程,這樣一旦出現(xiàn)機(jī)器故障或者程序自身Bug時(shí),所有進(jìn)程能夠隨著硬件環(huán)境的重新恢復(fù)而第一時(shí)間重啟。而多點(diǎn)執(zhí)行的

計(jì)算型程序多點(diǎn)部署,會(huì)帶來(lái)一致性問(wèn)題,最主要的困擾就是問(wèn)題,如何在多個(gè)節(jié)點(diǎn)中選出一個(gè)主節(jié)點(diǎn)來(lái)執(zhí)行。比如E上的分布式定時(shí)服務(wù)Cron,采用多點(diǎn)部署方式,多個(gè)計(jì)算節(jié)點(diǎn)相互隔離,通過(guò)時(shí)鐘同步服務(wù)同時(shí)觸發(fā)用戶(hù)設(shè)定的定時(shí)任務(wù),但要求只能有一個(gè)節(jié)點(diǎn)負(fù)責(zé)執(zhí)行。為了解決這個(gè)問(wèn)題,E設(shè)計(jì)出了一套分布式鎖算法來(lái)提供選舉服務(wù)。該算法可以在犧牲某些特定條件下的一致性來(lái)提供比s算法更高的可靠性(臺(tái)機(jī)器在最高任意過(guò)程仍然正常,而xs算法最多臺(tái))。目前,該算法E。 兩種方式。如SAE上MySQL之間的主從Binlog同步就是典型的 ,用戶(hù)只寫(xiě)寫(xiě)庫(kù),數(shù)據(jù)從寫(xiě)庫(kù)同步到多個(gè)讀庫(kù)中。Taskqueue、DeferredJob等服務(wù)也采用的方式,用戶(hù)的任務(wù)描述會(huì)寫(xiě)到主內(nèi)存級(jí)隊(duì)列中,主隊(duì)列利用線(xiàn)程將寫(xiě)操作同步到從隊(duì)列上,一旦主隊(duì)列發(fā)生故障,從隊(duì)列會(huì)快速的切換為主隊(duì)列。另外SAE上也有部分服務(wù)采用主動(dòng)(雙寫(xiě))的方式來(lái)保證HA,比如Cron,當(dāng)用戶(hù)通過(guò)App的工程配置文件a

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論