作者簡介:
Martin L. Abbott
業界資深管理者,曾參與管理過多傢世界500強企業和創業公司。AKF Partners公司創始人。曾任Quigo公司首席運營官(該公司後被AOL收購),eBay公司高級副總裁和首席技術官,還曾在Gateway和摩托羅拉擔任重要職位。現任多傢技術公司董事,多所高校、公共機構以及私企的谘詢顧問。Martin分彆於西點軍校和佛羅裏達大學取得計算機學士和碩士學位,並參加過哈佛大學商學院高級經理培訓,目前在西儲大學攻讀博士學位。
Michael T. Fisher
業界資深管理者,曾參與管理過多傢世界500強企業和創業公司。AKF Partners公司創始人。曾任Quigo公司首席技術官、總裁,PayPal公司工程和架構部門副總裁。曾在通用電器工作7年,幫助製定公司的技術戰略。目前擔任多傢私企和非營利機構的董事和顧問。Michael畢業於西點軍校,是六西格瑪黑帶大師,目前在西儲大學攻讀博士學位。
目 錄
第1章 化簡方程 1
1.1 原則1:不要過度設計 2
1.2 原則2:設計時就考慮擴展性(D-I-D方法) 6
1.2.1 設計 7
1.2.2 實現 8
1.2.3 部署 8
1.3 原則3:把方案一簡再簡 10
1.3.1 如何簡化範圍 10
1.3.2 如何簡化設計 11
1.3.3 如何簡化實施 12
1.4 原則4:減少DNS查找 13
1.5 原則5:盡可能減少對象 16
1.6 原則6:使用同一品牌的網絡設備 19
1.7 小結 21
參考資料 21
第2章 分布工作 23
2.1 原則7:橫嚮復製(X軸原則) 25
2.2 原則8:拆分不同的東西(Y軸原則) 29
2.3 原則9:拆分相近的東西(Z軸原則) 32
2.4 小結 34
參考資料 34
第3章 橫嚮擴展設計 35
3.1 原則10:設計橫嚮擴展方案 36
3.2 原則11:采用經濟型係統 39
3.3 原則12:橫嚮擴展數據中心 42
3.4 原則13:利用雲技術進行設計 48
3.5 小結 50
參考資料 50
第4章 使用正確的工具 51
4.1 原則14:閤理使用數據庫 52
4.2 原則15:防火牆,到處都是防火牆 59
4.3 原則16:積極利用日誌文件 63
4.4 小結 66
參考資料 66
第5章 不要重復工作 67
5.1 原則17:不要立即檢查剛做過的工作 68
5.2 原則18:停止重定嚮 72
5.3 原則19:放鬆時序約束 77
5.4 小結 80
參考資料 80
第6章 積極利用緩存 81
6.1 原則20:利用CDN 82
6.2 原則21:使用過期頭 85
6.3 原則22:緩存Ajax調用 90
6.4 原則23:利用頁麵緩存 95
6.5 原則24:利用應用緩存 98
6.6 原則25:利用對象緩存 102
6.7 原則26:把對象緩存放在自己的“層”上 105
6.8 小結 107
參考資料 107
第7章 從錯誤中吸取教訓 109
7.1 原則27:積極地學習 110
7.2 原則28:不要依靠QA發現失誤 113
7.3 原則29:沒有迴退功能的設計是失敗的設計 117
7.4 原則30:討論失敗並從中吸取教訓 120
7.5 小結 124
參考資料 124
第8章 數據庫原則 125
8.1 原則31:注意代價高的關係 126
8.2 原則32:使用類型正確的數據庫鎖 130
8.3 原則33:不要使用多階段提交 133
8.4 原則34:不要使用SELECT FOR UPDATE 135
8.5 原則35:不要選擇所有數據 137
8.6 小結 140
參考資料 140
第9章 容錯設計與故障控製 141
9.1 原則36:采用隔離故障的“泳道” 142
9.2 原則37:絕對不要信任單點故障 148
9.3 原則38:避免係統串聯 151
9.4 原則39:確保能夠啓用/禁用功能 155
9.5 小結 158
第10章 避免或分發狀態 159
10.1 原則40:努力實現無狀態 161
10.2 原則41:盡可能在瀏覽器端維護會話 164
10.3 原則42:利用分布式緩存存放狀態 167
10.4 小結 170
參考資料 170
第11章 異步通信和消息總綫 171
11.1 原則43:盡可能使用異步通信 172
11.2 原則44:確保消息總綫能夠擴展 175
11.3 原則45:避免讓消息總綫過度擁擠 179
11.4 小結 182
第12章 其他原則 183
12.1 原則46:慎用第三方解決方案擴展 184
12.2 原則47:清除、歸檔和成本閤理的存儲 187
12.3 原則48:刪除事務處理中的商業智能 192
12.4 原則49:設計能夠監控的應用 195
12.5 原則50:要能勝任 199
12.6 小結 202
參考資料 202
第13章 原則迴顧和優先級劃分 203
13.1 評估擴展項目和主動權的風險?收益模型 204
13.2 擴展原則的收益/優先級等級 235
13.3 小結 238
· · · · · · (
收起)
《高擴展性網站的50條原則》給齣瞭設計高擴展網站的50條原則,如不要過度設計、設計時就考慮擴展性、把方案簡化3倍以上、減少DNS查找、盡可能減少對象等,每個原則都與不同的主題綁定在一起。大部分原則是麵嚮技術的,隻有少量原則解決的是與關鍵習慣和方法有關的問題,當然,每個原則都對構建可擴展的産品至關重要。
主要內容包括:
通過剋隆、復製、分離功能和拆分數據集提高網站擴展性;
采用橫嚮擴展方案代替縱嚮擴展;
在不損害網站可擴展性的前提下,最大程度地利用數據庫;
避免不必要的重定嚮和冗餘的二次檢查;
在不引入復雜性的前提下,更加充分地使用緩存和內容分發網絡;
要求網站設計具備容錯、優雅降級和易迴滾的功能;
設計係統時盡可能選擇無狀態實現,如果確實需要狀態,做到閤理高效;
有效利用異步通信;
無論你的網站剛剛起步,還是正在設計開發過程中,或者已經成熟運轉瞭很長時間,你都能從書中找到很有針對性的指導原則,提高網站的可擴展性。