有關(guān)可伸縮性系統(tǒng)的十三條軍規(guī)
這篇文章中總結(jié)了一些構(gòu)建可伸縮性系統(tǒng)的***實踐,總結(jié)的不錯,于是翻譯了下,翻譯內(nèi)容如下:
可伸縮性系統(tǒng)的***實踐
下面是我們認(rèn)為的一些可伸縮性的***實踐:
1、異步;盡可能的使用異步,同步調(diào)用會導(dǎo)致兩個服務(wù)的可用性綁在一起,意味著一個服務(wù)出問題或變慢,另一個也會受到影響,這點也是eBay一直強(qiáng)調(diào)的;
2、泳道設(shè)計;錯誤隔離機(jī)制,避免一個失敗影響全局,這種機(jī)制也有助于錯誤查找和代碼替換;
3、緩存;在所有層次均使用緩存,例如數(shù)據(jù)、頁面、頁面片段等;
4、監(jiān)測;從用戶角度來看系統(tǒng)的性能。這包括從外部網(wǎng)絡(luò)來對系統(tǒng)進(jìn)行性能的監(jiān)測,以及內(nèi)部的系統(tǒng)間交互次數(shù)以及時間的監(jiān)測;
5、數(shù)據(jù)復(fù)制;一方面是為了容災(zāi),另一方面是為了提供多個用于讀的數(shù)據(jù)庫,降低寫庫的壓力;
6、拆分;包括了應(yīng)用的拆分以及數(shù)據(jù)庫的拆分;
7、盡量少的使用數(shù)據(jù)庫特性;盡可能的把數(shù)據(jù)庫僅作為一個在線存儲的功能而使用,不要把業(yè)務(wù)邏輯放在數(shù)據(jù)庫里,否則將來會非常難擴(kuò)展;
8、緩慢發(fā)布;發(fā)布時應(yīng)緩慢發(fā)布,以保證新版本是正常的,避免由于某個壓力測試時沒測到的點,導(dǎo)致全站出問題;
9、壓力以及性能測試;在發(fā)布前測試性能,盡管這不一定能發(fā)現(xiàn)全部問題,因此在發(fā)布前仍然要做好回滾的方案;
10、容量規(guī)劃;提前判斷系統(tǒng)能支撐多大的量,并做好擴(kuò)容計劃;
11、回滾;每次都要做好回滾的準(zhǔn)備;
12、根源分析;確認(rèn)有辦法找到線上問題的根源所在,從而能夠真正的解決問題;
13、從一開始就要注重質(zhì)量;質(zhì)量不能僅靠測試來保證,必須從設(shè)計階段開始就去保證。
譯注:
以上說的這十三點可謂是構(gòu)建可伸縮性系統(tǒng)的金玉良言,但可惜缺乏了實例引導(dǎo),沒有經(jīng)驗的同學(xué)估計會很難看明白為什么一定要這樣做,如果有些實例來說明的話,就更帥了!
本文來自BlueDavy的博客:《【譯】可伸縮性***實踐》
【編輯推薦】