|
背景
在看阿凡達(dá)的時(shí)候,感嘆著他們接口的統(tǒng)一,和獲取知識(shí)的便利性。有時(shí)候在想,現(xiàn)在很多企業(yè)所做的工作,不就是要提供這類服務(wù)嗎。設(shè)想一下,我們有一朵公有云,存儲(chǔ)了用戶的數(shù)據(jù)、邏輯關(guān)系,提供標(biāo)準(zhǔn)的通訊接口,然后大家各自開發(fā)豐富的展現(xiàn)邏輯,讓云端變的豐富多彩。這次很榮幸能接到這個(gè)議題,談?wù)勎覀€(gè)人對(duì)這朵云的理解。
每個(gè)人心中都有自己的一朵云,在我設(shè)想中,應(yīng)該存在這么一種公有服務(wù),它能夠幫助用戶隨時(shí)隨地的獲取自己的數(shù)據(jù),與朋友交流,獲取好友最新狀態(tài)。在這服務(wù)之上,我們有這么一個(gè)平臺(tái),它能夠給用戶提供二次開發(fā)的接口,讓開發(fā)者根據(jù)用戶數(shù)據(jù)開發(fā)豐富的展現(xiàn)層,并且提供這些展現(xiàn)層的運(yùn)行平臺(tái)。
我們需要的云端服務(wù)
為了完成這個(gè)功能,我們需要什么準(zhǔn)備?
云存儲(chǔ):提供用戶數(shù)據(jù)的存儲(chǔ)功能。讓用戶方便的獲取自己的數(shù)據(jù)。
通訊系統(tǒng):提供以Mail,IM為基礎(chǔ)的通訊方式。
通知系統(tǒng):好友行為推送,能夠把握好友最新動(dòng)態(tài),或者告知好友你在干什么。
在這三個(gè)基本服務(wù)之上,用戶可以開發(fā)大量的運(yùn)用。比如“音樂(lè)盒”用于在線播放云存儲(chǔ)的MP3,圖片系統(tǒng)用于管理、分享,美化自己的照片……然而,用戶開發(fā)完邏輯應(yīng)用之后,需要機(jī)器運(yùn)行這個(gè)運(yùn)用。因此,第四個(gè)基本服務(wù)運(yùn)行平臺(tái)孕育而生,它提供所有云應(yīng)用運(yùn)行的基本資源,包括內(nèi)存、CPU、操作系統(tǒng)等。
這四個(gè)基本要素構(gòu)建成一個(gè)面向終端用戶的操作系統(tǒng)平臺(tái)(也就是我們的云),它能夠隨時(shí)被訪問(wèn),通過(guò)瀏覽器或者手機(jī)的App。滿足用戶在任意時(shí)刻團(tuán)購(gòu),玩三國(guó)殺,看視頻,聽音樂(lè)等需求。為了方便開發(fā)者開發(fā)更多的應(yīng)用,我們抽象一種編程模式,提供豐富的SDK,加速應(yīng)用的開發(fā)。由于云端服務(wù),有很大一部分會(huì)被手機(jī)等嵌入式設(shè)備訪問(wèn),于是需要各種平臺(tái)的編程框架(Android、ios)。編程框架將更加關(guān)心業(yè)務(wù)邏輯,屏蔽分布式細(xì)節(jié)和運(yùn)維問(wèn)題。
在滿足這些開發(fā)便利性的前提下,為鼓勵(lì)用戶開發(fā),提高APP質(zhì)量和數(shù)目,需要一套良好的收費(fèi)系統(tǒng),幫助開發(fā)者更好的盈利。
圍繞這這朵云,一點(diǎn)點(diǎn)的展開,發(fā)現(xiàn)想說(shuō)的東西太多,今天我們就談?wù)勂渲械膬蓚€(gè)核心架構(gòu):云端存儲(chǔ)和應(yīng)用運(yùn)行平臺(tái)(App Engine)。為什么要選這兩個(gè)?因?yàn)樵频暮诵木褪?a href=/pingce/cunchu/ target=_blank class=infotextkey>存儲(chǔ)和計(jì)算,其它都構(gòu)建在存儲(chǔ)和計(jì)算之上的基礎(chǔ)服務(wù)和用戶運(yùn)用。
云端存儲(chǔ)架構(gòu)
云端存儲(chǔ)主要是為了存儲(chǔ)用戶數(shù)據(jù),方便用戶訪問(wèn)。它涉及了三方面的技術(shù):
- 底層架構(gòu)。包括:分布式存儲(chǔ)、文件目錄管理、用戶權(quán)限系統(tǒng)。
- 下載優(yōu)化:各地CDN支持、客戶端下載技術(shù)(P2P)。
- 數(shù)據(jù)訪問(wèn)前端優(yōu)化
底層架構(gòu)設(shè)計(jì)的要點(diǎn)
首先我們比較一下跟傳統(tǒng)離線存儲(chǔ)的設(shè)計(jì)指標(biāo)差異
- 單個(gè)文件體積不大
- 文件數(shù)會(huì)很多
- 需要目錄管理
- 讀寫模式特殊性
- 檢索和訪問(wèn)的實(shí)時(shí)性
存儲(chǔ)互聯(lián)網(wǎng)用戶的數(shù)據(jù),注定文件不會(huì)很大。我們只要支持0-100G左右的單文件大小即可。為什么用戶文件會(huì)到100G?因?yàn)槲覀円WC用戶能分享高清電影。另外相對(duì)于海量的容量,如果單文件過(guò)小,那么海量空間也沒(méi)啥意義。多媒體是促進(jìn)磁盤發(fā)展的動(dòng)力。
跟GFS不一樣,云存儲(chǔ)的文件數(shù)是海量的。因?yàn)槊總€(gè)人都會(huì)存儲(chǔ)他們的文檔、mp3、圖片……這注定了單機(jī)保存全部文件的node是不可能的。
我們需要呈現(xiàn)傳統(tǒng)操作系統(tǒng)類似的目錄管理方式。另外根據(jù)云存儲(chǔ)文件數(shù)量多的特點(diǎn),我們要提供可靠的檢索做文件管理。
用戶對(duì)文件的訪問(wèn)模式是一次寫入,多次讀取,讀取支持隨機(jī)位置的讀?。ū热缫曨l從中間開始播放)等。另外考慮在用戶帶寬條件下,100M的文件也算是大文件了,我們要需要支持?jǐn)帱c(diǎn)續(xù)傳功能。另外,存在對(duì)單文件的高并發(fā)訪問(wèn)。
用戶上傳的數(shù)據(jù),在上傳成功之后,就應(yīng)該能訪問(wèn)到完整的數(shù)據(jù)。并且在檢索的時(shí)候就能夠體現(xiàn)出來(lái)。因此不僅要求存儲(chǔ)系統(tǒng)要求實(shí)時(shí)性,而且檢索系統(tǒng)也有要求實(shí)時(shí)性。
歸納一下,因?yàn)槲募?dǎo)致文件數(shù)過(guò)多,需要專門的目錄存儲(chǔ);針對(duì)文件的訪問(wèn)模式,我們需要設(shè)計(jì)一個(gè)比較合理的文件格式;提升檢索的實(shí)時(shí)性。
文件格式介紹
一個(gè)文件需要的存儲(chǔ)數(shù)據(jù):Meta信息和數(shù)據(jù)塊。Meta信息存儲(chǔ)這個(gè)文件的詳細(xì)信息,包括文件名、大小、文件類型(doc或者mp3)、MD5、創(chuàng)建者、具體數(shù)據(jù)塊的存放位置、數(shù)據(jù)塊大小,以及該文件格式的版本信息等。數(shù)據(jù)塊是真正存儲(chǔ)的文件數(shù)據(jù)。
我們將一個(gè)完整的文件,物理切成多塊。比如一個(gè)1G的文件,我們按照1M為塊大小,切成1024塊,然后將1024個(gè)塊數(shù)據(jù)散列到N臺(tái)機(jī)器中去。從而保證文件具備高并發(fā)的特點(diǎn),而且也能夠方便的為整個(gè)集群提供擴(kuò)展能力。然后我們會(huì)將這1024個(gè)塊的具體位置記錄到文件的meta信息中,方便訪問(wèn)。
因此,我們需要一個(gè)邏輯文件的訪問(wèn)入口(WebServer),和存儲(chǔ)這些數(shù)據(jù)塊與Meta信息的集群Chunk Cluster和Meta Cluster。
將一個(gè)不大的文件分散到各臺(tái)機(jī)器上存儲(chǔ)有什么好處?
- 方便做負(fù)載均衡和集群擴(kuò)容
- 將熱門文件的流量分散到各臺(tái)機(jī)器上,使熱門文件的高頻訪問(wèn)對(duì)后端影響降低。
這個(gè)文件格式的設(shè)計(jì),大家可能會(huì)覺(jué)得文件很大的話,Meta信息因需要存儲(chǔ)的塊位置而導(dǎo)致體積過(guò)大。其實(shí)這個(gè)問(wèn)題,可以通過(guò)二級(jí)索引塊來(lái)解決。
存儲(chǔ)架構(gòu)的工作原理
如上圖,WebServer在接收Http請(qǐng)求的時(shí)候,會(huì)解析參數(shù),然后根據(jù)Meta Cluster提供的Meta信息,讀取相關(guān)塊,返回給請(qǐng)求者。Chunck Cluster和Meta Cluster的設(shè)計(jì)都是一樣的,就是提供一套NoSQL系統(tǒng),支持針對(duì)Key(字符串) - value(二進(jìn)制)的增刪改查。但是考慮到訪問(wèn)頻率的不同,我們需要針對(duì)不同的硬件做單機(jī)的優(yōu)化,比如廉價(jià)的Sata盤存放相對(duì)靜止的數(shù)據(jù),SSD盤存放訪問(wèn)頻率過(guò)高的數(shù)據(jù)。
NoSQL集群不是我們這篇文件要簡(jiǎn)述的話題,有機(jī)會(huì)可以詳談。不過(guò)即使是分布式系統(tǒng),我們也應(yīng)注重模塊的單機(jī)性能。因?yàn)槿绻覀兊哪K單機(jī)性能提高一倍,那么我們的集群規(guī)模就會(huì)下降一倍。在上萬(wàn)臺(tái)機(jī)器中,節(jié)約的成本是非??捎^的。我們?nèi)绾魏饬窟@個(gè)存儲(chǔ)系統(tǒng)的單機(jī)引擎性能呢?方法很簡(jiǎn)單,如果一個(gè)單機(jī)模塊,能夠?qū)⒕W(wǎng)卡吞吐跑滿或者磁盤順序讀寫吞吐跑滿,對(duì)于存儲(chǔ)模塊本身來(lái)說(shuō),可以了。
目錄管理系統(tǒng)實(shí)現(xiàn)
海量文件的目錄管理,很難。這里,我們采用一個(gè)分布式有序表的方式來(lái)解決,分布式有序表也是NoSQL的一種。它對(duì)存儲(chǔ)的數(shù)據(jù),提供基于字典序的游標(biāo)查詢。比如:我們將所有的用戶文件名放入有序表中,該系統(tǒng)就會(huì)產(chǎn)生根據(jù)文件名排序的分布式數(shù)組,如下:
[/a.doc; /a/a.doc; /a/b.doc; /a/c.doc; /b.doc; /b/b/b.doc]
在執(zhí)行l(wèi)s /a/命令的時(shí)候,我們會(huì)尋找/a/的游標(biāo)得到/a/a.doc,接著我們開始遍歷這個(gè)游標(biāo),直到不是/a/打頭為止。如果該過(guò)程中碰到子目錄,程序會(huì)會(huì)通過(guò)二分查找直接跳過(guò)子目錄,從而防止遍歷過(guò)多。如果數(shù)目過(guò)多,我們會(huì)展現(xiàn)100條,其它隱藏。目錄管理,主要是給用戶組織自己數(shù)據(jù)的時(shí)候用的,理論上,用戶不會(huì)在一個(gè)目錄下放太多的文件,即使太多,也沒(méi)關(guān)系,我們就顯示100條,然后提供下一頁(yè)的按鈕(因?yàn)橄乱豁?yè)的游標(biāo)位置我們是知道的)。
實(shí)時(shí)檢索系統(tǒng)
討論這個(gè)議題的時(shí)候,需要假設(shè)我們已經(jīng)有一個(gè)傳統(tǒng)的檢索系統(tǒng),然后想辦法提高檢索的實(shí)時(shí)性。我們?cè)O(shè)計(jì)一個(gè)內(nèi)存索引,把用戶新增的文件,對(duì)文件名切詞后放到內(nèi)存中檢索,檢索的結(jié)果參與最終的合并。每隔五分鐘merge到傳統(tǒng)檢索系統(tǒng)中,然后釋放內(nèi)存。云存儲(chǔ),不像互聯(lián)網(wǎng)網(wǎng)頁(yè),在5分鐘之內(nèi),僅文件名的索引,數(shù)據(jù)量不可能太大,所以內(nèi)存不會(huì)是瓶頸。進(jìn)一步的,我們可以對(duì)文件的內(nèi)容作檢索,但是文件內(nèi)容沒(méi)有必要做到實(shí)時(shí)。
權(quán)限系統(tǒng)
用戶權(quán)限系統(tǒng),對(duì)于云存儲(chǔ)來(lái)說(shuō),也是個(gè)用戶文件,所以沒(méi)什么特別的,只不過(guò)我們需要專門的緩存做訪問(wèn)優(yōu)化。因?yàn)槊恳淮巫x寫請(qǐng)求,都要判斷訪問(wèn)者是否有相關(guān)的權(quán)限。
CDN技術(shù)
P2P技術(shù)和CDN支持,主要是為了減少帶寬成本而做的,在云存儲(chǔ)這種數(shù)據(jù)量巨大的服務(wù)中,這兩種技術(shù),顯的尤為重要。這兩塊是兩個(gè)專題,我們?cè)谶@里不多做介紹。不過(guò)這兩個(gè)技術(shù)在解決熱點(diǎn)問(wèn)題效果比較好,但是海量文件并不是所有文件都放CDN的,因此有些工作,數(shù)據(jù)訪問(wèn)前端不得不做。
數(shù)據(jù)訪問(wèn)與客戶端優(yōu)化考慮
客戶端訪問(wèn)速度差別,是我們要考慮的問(wèn)題。如果是內(nèi)部的訪問(wèn),帶寬可以保證是1000M以上,但是面向互聯(lián)網(wǎng)用戶,各種各樣的帶寬需求都有,比如GPRS、3G、ADSL,從20k-16M不等。這就要求我們的前端技術(shù),在處理這些請(qǐng)求下要工作的很好。另外我們還要考慮在正常服務(wù)下,網(wǎng)絡(luò)帶寬最小化,比如一個(gè)視頻是100分鐘,我們就應(yīng)該保證100分鐘內(nèi)傳完,滿足正常播放,不能太快,因?yàn)樘?,你不能保證用戶有耐心看完,可能他就看10分鐘,然后就關(guān)了,于是后面?zhèn)鬏數(shù)膸捜速M(fèi)了。如果是用戶下載,那么當(dāng)然是越快越好。這些控制,我們都通過(guò)WebServer來(lái)實(shí)現(xiàn)。
WebServer最主要的功能就是高并發(fā)支持,限速。再加上云存儲(chǔ)的數(shù)據(jù)是海量的,傳統(tǒng)的Apache做WebServer肯定不適合,這里我們采用異步的WebSever比如lighttpd或者nginx,然后對(duì)客戶端句柄進(jìn)行速度控制。為了支持大文件的斷點(diǎn)上傳,我們需要有一個(gè)專門的客服端,能夠?qū)⑽募謮K上傳。Webserver必須支持根據(jù)md5查詢這個(gè)文件哪些塊已經(jīng)上傳了,哪些沒(méi)上傳,從而通知客戶端正常工作。
云存儲(chǔ)有很多節(jié)約帶寬的優(yōu)化,比如上傳文件的時(shí)候,先上傳md5,如果云端已經(jīng)存在,就不需要上傳了,這樣可以做到大文件的秒傳,節(jié)約網(wǎng)絡(luò)帶寬。另外它提供對(duì)外標(biāo)準(zhǔn)的Http協(xié)議,可以采用迅雷等p2p軟件下載,從而提高訪問(wèn)速度,減少服務(wù)器帶寬沖擊。為了數(shù)據(jù)安全性,我們還得提供https協(xié)議的數(shù)據(jù)訪問(wèn)。
App Engine
完成云存儲(chǔ)的設(shè)計(jì)之后,我們需要一個(gè)開發(fā)平臺(tái),這個(gè)開發(fā)平臺(tái)提供用戶邏輯的運(yùn)行環(huán)境。這環(huán)境包括
- MYSQL集群化管理
- 離線任務(wù)的處理
- php的運(yùn)行環(huán)境
MySQL集群化管理
因?yàn)樵?a href=/pingce/cunchu/ target=_blank class=infotextkey>存儲(chǔ)沒(méi)有提供關(guān)系數(shù)據(jù)的存儲(chǔ)功能,為了降低用戶的開發(fā)門檻,我們需要一個(gè)MYSQL的集群化來(lái)完成類似的功能。MYSQL的集群化,主要是完成MYSQL讀寫分離和主從同步功能。
通過(guò)這種架構(gòu),保證了開發(fā)者不需要關(guān)心MYSQL的數(shù)據(jù)故障等問(wèn)題。因?yàn)镸YSQL Proxy會(huì)自動(dòng)的進(jìn)行主從切換和讀寫分離。這里我們要開發(fā)的就是解析SQL語(yǔ)句,完成相關(guān)的用戶認(rèn)證,并完成相關(guān)的后臺(tái)轉(zhuǎn)發(fā)、接收。
MYSQL的集群化管理沒(méi)有解決分布式的問(wèn)題,這個(gè)地方我們認(rèn)為不需要解決。因?yàn)?a href=/yuedu/hulianwang/ target=_blank class=infotextkey>互聯(lián)網(wǎng)在線業(yè)務(wù)類的關(guān)系數(shù)據(jù)不會(huì)太大,大的數(shù)據(jù)都放到云存儲(chǔ)里面了,數(shù)據(jù)庫(kù)只存索引。還有,數(shù)據(jù)庫(kù)的分庫(kù)分表也相對(duì)成熟,索引數(shù)據(jù)也很難快速膨脹。如果用戶有對(duì)分布式索引的需求,可以考慮前面我們談到的有序表。
離線任務(wù)處理
離線任務(wù)處理主要解決,用戶需要做大量的cpu密集型的工作,包括圖片轉(zhuǎn)化,視頻轉(zhuǎn)化等。我們這里采用了一套消息隊(duì)列的方式進(jìn)行離線處理。用戶將處理請(qǐng)求扔給消息隊(duì)列,執(zhí)行機(jī)獲取消息隊(duì)列的消息之后,會(huì)執(zhí)行相關(guān)的的用戶代碼。
php運(yùn)行環(huán)境
php運(yùn)行環(huán)境,主要解決php的分布式化問(wèn)題。云平臺(tái)上跑的服務(wù),千奇百怪,可能因?yàn)闆](méi)有流量,只用到實(shí)際機(jī)器的千分之一,也可能擁有巨額流量,需要上百臺(tái)機(jī)器支持。當(dāng)然大部分服務(wù)沒(méi)有什么流量。對(duì)于傳統(tǒng)的虛擬化來(lái)說(shuō),1臺(tái)機(jī)器能虛擬化成32臺(tái),已經(jīng)慢的不行。這樣,一臺(tái)物理機(jī)只能部署32個(gè)app運(yùn)用,對(duì)于基礎(chǔ)架構(gòu)來(lái)說(shuō)是不可接受的。因?yàn)?a href=/yuedu/hulianwang/ target=_blank class=infotextkey>互聯(lián)網(wǎng)上的云端運(yùn)用,會(huì)急劇膨脹,所以我們需要一種新的虛擬化架構(gòu),能將機(jī)器的粒度切的更細(xì)。
這里我們使用php為開發(fā)語(yǔ)言展示一個(gè)輕量級(jí)的虛擬化技術(shù)。我們通過(guò)輕量級(jí)虛擬化技術(shù),為每個(gè)用戶分配一組FAST CGI進(jìn)程資源,通過(guò)Web端的調(diào)度,將請(qǐng)求引到各自的FAST CGI進(jìn)程組中處理。這樣一臺(tái)機(jī)器能啟動(dòng)多少個(gè)進(jìn)程,我們就能虛擬化多少份。
如果網(wǎng)站流量很大,單機(jī)處理不了,該如何解決?我們是通過(guò)FAST CGI進(jìn)程個(gè)數(shù)來(lái)調(diào)度的,單機(jī)資源不夠的情況下,我們會(huì)在多臺(tái)機(jī)器上分配進(jìn)程,組成一個(gè)FAST CGI組,然后通知Web端,這個(gè)網(wǎng)站的請(qǐng)求可以分流到哪些FAST CGI中去。我們會(huì)有一個(gè)總控的Master來(lái)觀察各臺(tái)機(jī)器的負(fù)載,從而判斷是否要遷移FAST CGI進(jìn)程。FAST CGI進(jìn)程的遷移是簡(jiǎn)單的,這臺(tái)機(jī)器KILL,在另外一臺(tái)機(jī)器重啟即可。
這個(gè)是我們php執(zhí)行環(huán)境的架構(gòu)。
架構(gòu)依賴于資源定位服務(wù)。資源定位通知前端接入,哪些機(jī)器負(fù)載還行,可以引流,哪些已經(jīng)故障,或者壓力過(guò)大,不能引流。當(dāng)A.baidu.com的流量過(guò)來(lái)的時(shí)候,前端接入會(huì)解析域名,并且根據(jù)資源定位獲取的數(shù)據(jù)(本地有緩存),分發(fā)到對(duì)應(yīng)的某臺(tái)機(jī)器的FAST CGI端口上,執(zhí)行php代碼后返回。因?yàn)镕AST CGI讀取的用戶代碼存儲(chǔ)在網(wǎng)絡(luò)文件系統(tǒng)中,所以前端接入無(wú)論選擇哪臺(tái)FAST CGI都能夠有效的做處理。在實(shí)際過(guò)程中,我們發(fā)現(xiàn)網(wǎng)絡(luò)文件系統(tǒng)對(duì)性能,尤其是HTML的訪問(wèn)性能影響很大,因此我們對(duì)每臺(tái)機(jī)器做了單機(jī)緩存。不過(guò)Cache失效是個(gè)非常難解決的問(wèn)題,我們這里采用的方法是一但文件發(fā)生修改,資源定位會(huì)通知所有客戶機(jī)的該文件緩存失效,而且更新必須走同一的入口。由于我們只存儲(chǔ)代碼,效果還可以。有了分布式的網(wǎng)絡(luò)文件系統(tǒng),用戶代碼更新也變得異常簡(jiǎn)單。只要更新完成,通知緩存失效即可。
另外一個(gè)問(wèn)題,如果運(yùn)行平臺(tái)跑大量的垃圾網(wǎng)站,比如很多一天只有少量請(qǐng)求的網(wǎng)站。用輕量級(jí)虛擬化,即使1臺(tái)機(jī)器切出2000千份資源,還是很浪費(fèi)的。對(duì)于這種運(yùn)用,我們采用了FAST CGI復(fù)用,即很多小網(wǎng)站的請(qǐng)求都落到1個(gè)FAST CGI上,然后FAST CGI根據(jù)目前處理的網(wǎng)站,來(lái)獲取相關(guān)的配額控制。真正做到資源消耗跟訪問(wèn)量成正比,沒(méi)訪問(wèn)沒(méi)成本。這里可能用CGI更好點(diǎn),不過(guò)為了架構(gòu)統(tǒng)一下,這點(diǎn)優(yōu)化不算麻煩。
小結(jié)
簡(jiǎn)單介紹了App Engine所具有的能力,一個(gè)php的輕量級(jí)虛擬化,能夠?qū)?臺(tái)機(jī)器虛擬成萬(wàn)分之一,也能將萬(wàn)臺(tái)機(jī)器合成1個(gè)大的虛擬環(huán)境。實(shí)現(xiàn)從萬(wàn)分之一到萬(wàn)倍計(jì)算資源的漸進(jìn)分配。它成功解決了一個(gè)網(wǎng)站,從小到大的計(jì)算能力的無(wú)限擴(kuò)展問(wèn)題。
也介紹了云存儲(chǔ)所具備的能力,它支持海量的數(shù)據(jù)存儲(chǔ),成功解決了一個(gè)網(wǎng)站,從小到大的存儲(chǔ)能力無(wú)限擴(kuò)展問(wèn)題。
整個(gè)云端運(yùn)用,就是基于強(qiáng)悍可伸縮的計(jì)算能力和存儲(chǔ)能力之下構(gòu)建的網(wǎng)站。我們真正做的就是邏輯開發(fā),和各個(gè)終端下的特殊展現(xiàn)形式。用這套架構(gòu),實(shí)現(xiàn)一個(gè)視頻分享網(wǎng)站,電子書閱讀網(wǎng)站是容易的。減少了云端應(yīng)用的開發(fā)門檻,整個(gè)云端產(chǎn)品也將豐富多彩。它們都用統(tǒng)一的架構(gòu),計(jì)算和存儲(chǔ)分離,程序開發(fā)無(wú)狀態(tài)化,持久性存儲(chǔ)放在云存儲(chǔ)中。
有給力的基礎(chǔ)架構(gòu),云端運(yùn)用隨手拈來(lái)。目前在百度公司內(nèi)部,這種架構(gòu)已經(jīng)有成型的運(yùn)用,它極大的提高了應(yīng)用服務(wù)的開發(fā)效率,降低服務(wù)運(yùn)維成本和開發(fā)人員的技術(shù)門檻。百度內(nèi)部云平臺(tái)遷移了大量的在線服務(wù),有關(guān)百度的最新進(jìn)展和數(shù)據(jù),大家可以參考《QCon北京2011全球企業(yè)開發(fā)大會(huì)》公布的一些關(guān)于BAE的資料。
it知識(shí)庫(kù):我眼中的云端架構(gòu),轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。