基本信息
定價 :¥35.00原書名:Scalability Rules: 50 Principles for Scaling Web Sites
作者: (美)Martin L.Abbott Michael T.Fisher
譯者: 張欣 楊海玲
叢書名: 圖靈程式設計叢書
出版社:人民郵電出版社
ISBN:9787115275721
上架時間:2012-5-22
出版日期:2012 年6月
開本:16開
頁碼:1
版次:1-1
所屬分類: 計算機 > 計算機網路 > Web Server > 綜合
編輯推薦
網站運營的必備寶典詳細分析網站擴展性的通用原則
業內專家多年實戰總結,亞馬遜書店好評如潮
內容簡介
《高擴展性網站的50條原則》減少dns 查找、儘可能減少對象等,每個原則都與不同的主題綁定在一起。大部分原則是面向技術的,只有少量原則解決的是與關鍵習慣和
方法有關的問題,當然,每個原則都對構建可擴展的產品至關重要。
《高擴展性網站的50條原則》適合各層次web 開發人員閱讀。
作譯者回到頂部↑本書提供作譯者介紹
Martin L. Abbott業界資深管理者,曾參與管理過多家世界500強企業和創業公司。
AKF Partners公司創始人。曾任Quigo公司營運長(該公司後被AOL收購),eBay公
司高級副總裁和首席技術官,還曾在Gateway和摩托羅拉擔任重要職位。現任多家技術公
司董事,多所高校、公共機構以及私企的諮詢顧問。Martin分別於西點軍校和佛羅里達
大學取得計算機學士和碩士學位,並參加過哈佛大學商學院高級經理培訓,目前在西儲
大學攻讀博士學位。
Michael T. Fisher業界資深管理者,曾參與管理過多家世界500強企業.. << 查看詳細
目錄
第1章 化簡方程 11.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
前言
感謝你對本書感興趣!本書既可以作為初級讀物,又可以作為複習資料和簡單的參考手冊,幫助每一位工程師、架構師、管理者開發和維護可擴展的網際網路產品。本書設
計了一系列原則,每個原則都與不同的主題綁定在一起。大部分原則是面向技術的,只
有少量的原則解決的是與關鍵的習慣和方法有關的問題,當然,每個原則都對構建可擴
展的產品至關重要。這些原則的深度和關注點各不相同。有些原則是通用的,如定義一
個幾乎適用於所有可擴展性問題的模型;而有些原則則是專用的,解釋了某種技術,例
如,如何修改檔案頭,從而讓內容儘量適合快取。
快速使用指南
對於經驗豐富的工程師、架構師和管理者來說,都應該首先閱讀所有原則開頭的說
明部分,它包含了原則的目的、適用情形、套用方式以及套用理由。讀者可以按順序瀏
覽每一章,也可以直接跳到第13章,該章匯總了所有原則的開頭說明部分。讀過這些說
明之後,再去閱讀對你來說全新的章節或者你感興趣的章節。
對於經驗較少的讀者來說,一下子面對50條原則可能會令你不知所措。我們雖然確
信你最終會了解所有原則,但是也充分理解你需要根據事情的輕重緩急來分配時間。正
因為如此,我們專為管理者挑出了5章內容(第1、2、4、7、12章),為軟體開發人員挑
出了5章內容(第1、2、5、10、11章),為技術運維人員挑出了5章內容(第2、3、6、8
、9章),你應該優先閱讀相應章節的內容,這樣可以幫助你儘快掌握高擴展性知識。
無論你具體從事哪種工作,我們都建議你在有時間的時候閱讀本書的所有原則,熟
悉這些原則和概念。本書很薄,也許在某次短途航班上就能讀完。
本書可以作為案頭的參考資料。如果你想修正或者重新架構現有產品,那么第13章
提供了一種方法,可以讓你基於成本和預期收益的考慮將這些原則套用到現有平台上。
如果你已經有了自己的分級方法,那么除非你認為我們的更好,否則還是不要改變它。
如果你還沒有分級方法,那么我們的方法則可以幫助你考慮首先應該套用哪條原則。
如果你剛開始開發一個新產品,那么這些原則可以算是開發高擴展性產品的最佳實
踐。在這種情況下,第13章提供的劃分優先權的方法,可以在你設計產品時指導你最應
該考慮哪些方面。你應該看看那些最可能使短期和長期需求具有高可擴展性的原則,然
後將其付諸實踐。
對於所有公司來說,這些原則有助於形成一套推動未來發展的架構理論。選用原則5
、原則10或者原則15能使你的產品具有高擴展性,並可使用它們提升現有設計。工程師
和架構師可以針對你選的每一條擴展原則提出一些問題,以確保新的設計能達到高擴展
性標準。儘管這些原則是具體且固定的,但仍然有可修改的空間,具體要視系統的特殊
要求而定。如果你和你的團隊具有豐富的擴展經驗,那么可以對這些原則進行必要的修
改,使它們適用於特定場景。如果不具備這種經驗,那就嚴格遵守這些原則吧,看看它
們能實現多大的可擴展性。
最後要說的是,本書還可當做一本參考手冊。第13章是一個快速索引,概述了所有
原則。無論是遇到了問題,還是想開發一個更具備擴展性的解決方案,都可以查閱第13
章,以最快的速度找到能脫離困境的原則,或者在新的開發過程中發現最佳路徑。除了
把本書作為案頭的參考手冊,你還可以用各種方法把它融入到組織中,例如每周實踐一
兩個原則並且在技術例會上討論。
本書寫作意圖
目前市場上還沒有什麼關於高擴展性的好書。就講述的方法而言,本書在市場上獨
一無二。它是第一本以面向原則的方式闡述高擴展性的書,又是第一本既提供了相關主
題概覽,又可以作為參考手冊的書。對於想將本書套用於現有平台的讀者,我們還特別
準備了一章,對50條原則進行了總結和分級。
在我們的部落格上,得到評論最多的一篇博文是關於將高擴展性作為一門學科的。我
們和那些研究擴展性問題的專家都認為,當今的科技公司急需高擴展性架構師。在計算
機系統發展的早期,幾乎人人都是程式設計師,然後逐漸分化為運維人員、DBA、架構師等。
現在的技術團隊是由許多不同學科和專業的人才組成的,其中就缺少高擴展性架構師這
類人才。
DBA只需要把自己的事情做完,而不必再教其他人,除非正在帶初級DBA。而高擴展
性架構師則與之不同,他們的一項主要職責就是培養技術人員。高擴展性架構師應該是
老師與布道者,而不是知識的保密者。我們把50條原則集合起來,為這種教學奠定基礎
,相信這50條原則能夠為擴展自己系統的公司提供指導性幫助。
如何決定選用哪50條原則
決定選用哪些原則並不容易。一本書可以輕鬆地寫上100條甚至200條原則。我們選
用原則的標準是看我們最常向客戶提出哪些建議,以及我們針對客戶的產品最常推薦哪
些變更、添加和修正。我們發現在前50條原則之後,推薦率大幅下降。這並不是說,前
50條原則的推薦率是完全相等的,也不是說第51條就相當不常用。只是說,我們經常向
客戶推薦這50條。這些原則的介紹順序也並不是根據它們的推薦頻率來排的。在第13章
中,我們對每條原則能降低多少風險,以及實施或採用起來的成本進行了評級,然後根
據套用這些原則的好處和優先權對它們進行了分組。
本書和The Art of Scalability 有什麼不同
The Art of Scalability是我們所著的有關該主題的第一本書,重點關注人員、方
法和技術,而本書則專注於技術。不要誤解了,我們始終認為人員和方法是構建高擴展
性解決方案最重要的因素。畢竟,在制定可擴展的解決方案方面獲得成功或遭遇失敗的
是公司,而公司則是由做出貢獻的個體和管理制度構成的。擴展的失敗不是技術的過失
,它是人在構建、選擇或集成時犯下的錯誤。不過我們認為,The Art of Scalability
一書已經足以解決與高擴展性相關的人員和方法的問題,而我們想要的是在技術方面更
深入一層。
本書展開論述了上一本書的第三部分(技術部分)。本書中的內容比上一本書更新
,討論的方式也更技術化。上一本書中討論過的內容,本書中都進行了擴展,或者用稍
微不同的方式進行了定義,以便讀者更好地理解這些概念。
媒體評論
“本書是Abbott 和 Fisher的又一力作,我想把它推薦給我們公司的所有工程師。對於處理線上業務可擴展性的每一位人士,本書必不可少。”
——Chris Lalonde,Bullhorn公司副總裁
“Abbott和Fisher從實踐出發,再次以獨一無二的方式解決了擴展性難題。目前,
網站設計要素錯綜複雜且不斷增多,兩人將這些難題和挑戰總結為50條功能強大、簡單
易用的原則。可以說,本書是關於網站擴展性秘訣的秘籍,它能夠指引讀者穿越‘爆發
式增長網路難題的迷霧’,創建擴展性優良的網站。”
——Geoffrey Weber,Shutterfly公司副總裁
“50條原則是Abbott和Fisher多年智慧的結晶,運用這些原則可以避免網站的許多
特殊問題。這套原則強大、令人信服!”
——Jonathan Heiliger,Facebook副總裁