云計(jì)算參考架構(gòu):
上圖闡釋如何創(chuàng)建私有和混合云,最終用戶可以自行提供計(jì)算、 存儲(chǔ)和網(wǎng)絡(luò),許多大型組織開(kāi)始創(chuàng)建內(nèi)部的私有。
58同城,國(guó)內(nèi)著名的分類(lèi)信息網(wǎng)站。
58同城云架構(gòu)
百度社區(qū)的云架構(gòu)
百度社區(qū)云架構(gòu)
結(jié)合對(duì)彈性服務(wù)的理解,第一個(gè)是彈性伸縮,你讓你的業(yè)務(wù)隨著你的性能,隨著你的流量,隨著業(yè)務(wù)的變化自動(dòng)的伸縮流量,這是第一個(gè)點(diǎn)。第二個(gè)點(diǎn)是我能夠自動(dòng)的屏蔽異常處理,我的機(jī)器出問(wèn)題的時(shí)候,對(duì)業(yè)務(wù)是透明的,也是沒(méi)有影響的。
云計(jì)算系統(tǒng)架構(gòu)的四個(gè)方面有怎樣的影響:
●可擴(kuò)展性:我能否增加資源以處理增加的需求?
●可用性:我的應(yīng)用能否容忍短暫的和持久的故障?
●可管理性:我是否有辦法了解生產(chǎn)系統(tǒng)的健康和性能?
●可行性:我能否在時(shí)間和成本預(yù)算之內(nèi)構(gòu)建和維護(hù)這個(gè)系統(tǒng)?
可擴(kuò)展性
可擴(kuò)展性來(lái)自于兩個(gè)方面:資源和密度。能力是指增加額外的硬件,它可能微不足道(在一個(gè)負(fù)載均衡器后增加額外的網(wǎng)絡(luò)服務(wù)器)也可能非常地困難(增加一個(gè)次要的數(shù)據(jù)庫(kù)服務(wù)器)。密度是指你能以怎樣的效率去使用已經(jīng)擁有的能力。傳統(tǒng)的性能調(diào)優(yōu)可以大幅地增加密度。
可度量的資源
可度量的資源是某些需要小心監(jiān)控的東西。舉例來(lái)說(shuō),數(shù)據(jù)庫(kù)連接就是一種可度量的資源。作為一種有限的資源,濫用它就會(huì)大幅度地降低密度。其他可度量資源的例子還包括認(rèn)證服務(wù)器和第三方網(wǎng)絡(luò)服務(wù)。這些有時(shí)被稱(chēng)為“隱形的資源”,因?yàn)殚_(kāi)發(fā)人員設(shè)計(jì)架構(gòu)時(shí)經(jīng)常會(huì)忽略掉它們。
通過(guò)隊(duì)列負(fù)載均衡
上傳時(shí)的峰值可能會(huì)成為問(wèn)題,尤其是在那些針對(duì)大量讀取工作負(fù)載優(yōu)化過(guò)的系統(tǒng)上。一種降低這種峰值的方式是,通過(guò)使用隊(duì)列以等待時(shí)間交換可用性。 在這種方案下,新數(shù)據(jù)在數(shù)據(jù)庫(kù)中不是同步保存的。相反,它們會(huì)被放到一個(gè)隊(duì)列中,這是個(gè)后臺(tái)進(jìn)程監(jiān)控器。這個(gè)后臺(tái)進(jìn)程可以使負(fù)載趨于平滑,以便數(shù)據(jù)庫(kù)始終會(huì)被使用,而不是某些時(shí)候忙,其他時(shí)候閑。 使用隊(duì)列的其他好處是可以批量處理那些工作。一般來(lái)說(shuō),把信息批量寫(xiě)入到數(shù)據(jù)庫(kù)中要比一次一條記錄快得多。
最后要說(shuō)的是,這還增加了解耦點(diǎn)。后臺(tái)進(jìn)程或數(shù)據(jù)庫(kù)可以宕掉,完全不會(huì)影響前端應(yīng)用接受新數(shù)據(jù)的能力。
改善消息隊(duì)列的可用性
如果過(guò)多的消息是被同時(shí)接收的,可以使用輔助的消息隊(duì)列去保存過(guò)量的部分。為了做到這一點(diǎn),你需要設(shè)計(jì)應(yīng)用能夠支持多個(gè)隊(duì)列,即使最初你打算只部署有一個(gè)隊(duì)列的應(yīng)用。
記錄錯(cuò)誤的數(shù)據(jù)
大多數(shù)開(kāi)發(fā)人員都很清楚需要去驗(yàn)證數(shù)據(jù),但是當(dāng)驗(yàn)證失敗的時(shí)候,他們不知道做什么。僅僅棄掉數(shù)據(jù)和拋出錯(cuò)誤是不夠的。應(yīng)該把錯(cuò)誤的數(shù)據(jù)以它原有的格式記錄下來(lái),以便開(kāi)發(fā)人員能夠斷定為什么會(huì)有這種錯(cuò)誤的請(qǐng)求。