大型網(wǎng)站技術(shù)架構(gòu):核心原理與案例分析(最接地氣的網(wǎng)站架構(gòu)經(jīng)驗(yàn),網(wǎng)站生存技術(shù)心要,應(yīng)對(duì)大數(shù)據(jù)挑戰(zhàn)的干貨分享。
定 價(jià):59 元
- 作者:李智慧 著
- 出版時(shí)間:2013/9/1
- ISBN:9787121212000
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP393.092
- 頁(yè)碼:218
- 紙張:膠版紙
- 版次:1
- 開本:16開
本書通過梳理大型網(wǎng)站技術(shù)發(fā)展歷程,剖析大型網(wǎng)站技術(shù)架構(gòu)模式,深入講述大型互聯(lián)網(wǎng)架構(gòu)設(shè)計(jì)的核心原理,并通過一組典型網(wǎng)站技術(shù)架構(gòu)設(shè)計(jì)案例,為讀者呈現(xiàn)一幅包括技術(shù)選型、架構(gòu)設(shè)計(jì)、性能優(yōu)化、Web安全、系統(tǒng)發(fā)布、運(yùn)維監(jiān)控等在內(nèi)的大型網(wǎng)站開發(fā)
全景視圖。
本書不僅適用于指導(dǎo)網(wǎng)站工程師、架構(gòu)師進(jìn)行網(wǎng)站技術(shù)架構(gòu)設(shè)計(jì),也可用于指導(dǎo)產(chǎn)品經(jīng)理、項(xiàng)目經(jīng)理、測(cè)試運(yùn)維人員等了解網(wǎng)站技術(shù)架構(gòu)的基礎(chǔ)概念;還可供包括企業(yè)系統(tǒng)開發(fā)人員在內(nèi)的各類軟件開發(fā)從業(yè)人員借鑒,了解大型網(wǎng)站的解決方案和開發(fā)理念。
本書作者是阿里巴巴網(wǎng)站構(gòu)建的親歷者,擁有核心技術(shù)部門的一線工作經(jīng)驗(yàn),直接體驗(yàn)了大型網(wǎng)站構(gòu)建與發(fā)展過程中的種種生與死,蛻與變,見證了一個(gè)網(wǎng)站架構(gòu)從幼稚走向成熟穩(wěn)定的歷程! ]有晦澀難懂的術(shù)語(yǔ),沒有詰屈聱牙的文句,沒有故弄玄虛的觀點(diǎn)…… 明明白白的語(yǔ)句,清清楚楚的文法,干凈利落的建議——讓讀者直接體會(huì)網(wǎng)站架構(gòu)的緊要處,不容馬虎的關(guān)鍵點(diǎn)——這恰好是一個(gè)優(yōu)秀的網(wǎng)站架構(gòu)所必備的要素! ∪绻f“水不在深,有龍則靈”,那么對(duì)于想了解網(wǎng)站架構(gòu)的讀者而言,這本書恰好是“書不在多,有它則行!” 還猶豫什么呢?
李智慧
曾在阿里巴巴擔(dān)任技術(shù)專家,參與阿里巴巴基礎(chǔ)技術(shù)平臺(tái)開發(fā)和www.alibaba.com架構(gòu)設(shè)計(jì)。
目前就職英特爾亞太研發(fā)中心從事云計(jì)算與大數(shù)據(jù)方面的研發(fā)工作。
媒體評(píng)論
這是我看過的最接地氣的一本介紹互聯(lián)網(wǎng)架構(gòu)的書籍,深入闡述了大型網(wǎng)站所面臨的各種架構(gòu)問題及解決方案,內(nèi)容通俗易懂,而且對(duì)架構(gòu)師的領(lǐng)導(dǎo)藝術(shù)進(jìn)行了介紹,很值得從事互聯(lián)網(wǎng)的技術(shù)人員學(xué)習(xí)和參考。
IBM咨詢經(jīng)理 種新華
此書讀來親切,能用不到300頁(yè)的篇幅將網(wǎng)站架構(gòu)的過去及未來說得如此通俗易懂,與作者多年的親身實(shí)踐分不開,并由此想到一個(gè)問題:當(dāng)此書人手一本的時(shí)候,阿里、騰訊、京東……的面試官們?cè)趺崔k呢?
Oracle資深工程師 付銀海
智慧同學(xué),人如其名,在阿里巴巴,人稱“教授”,可見其博學(xué)多才!洞笮途W(wǎng)站技術(shù)架構(gòu):核心原理與案例分析》一書更是其多年積淀厚積薄發(fā)之作,涵蓋構(gòu)建大型互聯(lián)網(wǎng)應(yīng)用所需的關(guān)鍵技術(shù),兼具實(shí)用性和前瞻性,無(wú)論是高并發(fā)、高性能還是海量數(shù)據(jù)處理、Web前端架構(gòu),都有針對(duì)性的解決之道。尤其難得的是此書還對(duì)架構(gòu)師的內(nèi)涵及技術(shù)管理有比較深刻地闡述,實(shí)在是同類書籍中難得一見的。作為互聯(lián)網(wǎng)應(yīng)用的開發(fā)者、架構(gòu)師和創(chuàng)業(yè)者的你,一定不要錯(cuò)過本書,本書足以解決你的技術(shù)之憂。
拓維信息平臺(tái)研發(fā)總監(jiān) 陳斌
教授(本書作者在阿里巴巴的昵稱)曾在知名的大型互聯(lián)網(wǎng)公司第一線浴血多年,經(jīng)驗(yàn)不可謂不豐富,然而更難得的是他不僅博聞強(qiáng)記,更用行云流水的幽默文風(fēng),將現(xiàn)代大型互聯(lián)網(wǎng)的內(nèi)部要害一一庖解。也許各家細(xì)節(jié)略有不同,但大部分的大型互聯(lián)網(wǎng)站基本都可以用這樣的視角去解讀。相信本書不僅對(duì)程序員,甚至對(duì)很多架構(gòu)師也有參考價(jià)值,尤其值得關(guān)注的是教授在書中頗多技術(shù)之外的考量思索,我愿意稱之為互聯(lián)網(wǎng)基因。
堆糖網(wǎng)技術(shù)合伙人 曹文炯
有幸拜讀了這本《大型網(wǎng)站技術(shù)架構(gòu):核心原理與案例分析》,本書從多個(gè)層面說明了如何構(gòu)建一個(gè)高可用、高性能、高可擴(kuò)展性的網(wǎng)站系統(tǒng),并結(jié)合了阿里巴巴及其他互聯(lián)網(wǎng)企業(yè)先進(jìn)的架構(gòu)實(shí)踐經(jīng)驗(yàn)進(jìn)行案例分析,講述非常全面且具指導(dǎo)意義。本書從網(wǎng)站的架構(gòu)設(shè)計(jì)、快速開發(fā)、高效部署、業(yè)務(wù)監(jiān)控、服務(wù)治理、運(yùn)維管理等多個(gè)角度描述了架構(gòu)設(shè)計(jì)的相關(guān)重點(diǎn),涉及的核心技術(shù)包括前端優(yōu)化、CDN、反向代理、緩存、消息隊(duì)列、分布式存儲(chǔ)、分布式服務(wù)、NoSQL存儲(chǔ)、搜索、監(jiān)控、安全等一系列保證大型網(wǎng)站安全可靠運(yùn)行的關(guān)鍵技術(shù)點(diǎn)。本書還提供了網(wǎng)站如何從小型網(wǎng)站伴隨用戶成長(zhǎng),逐步擴(kuò)展到大型網(wǎng)站的架構(gòu)演進(jìn)思路,是互聯(lián)網(wǎng)架構(gòu)師們不可多得的一本技術(shù)參考書。
中興通訊總工程師 錢煜明
設(shè)計(jì)和規(guī)劃一個(gè)網(wǎng)站的總體架構(gòu)涉及方方面面的東西,備選的方案也很多,如何在五花八門,紛繁復(fù)雜的技術(shù)中構(gòu)建最適合用戶的網(wǎng)站架構(gòu),變成了一件極具爭(zhēng)議和挑戰(zhàn)性的工作。一個(gè)好的架構(gòu)可以以最低的成本,在滿足用戶需求的同時(shí),滿足整個(gè)網(wǎng)站的架構(gòu)靈活性;同樣,一個(gè)糟糕的架構(gòu)可能會(huì)讓你的客戶在花費(fèi)了大量金錢后,得到一堆笨重、復(fù)雜且不切實(shí)際的東西,或是由于系統(tǒng)過于復(fù)雜,故障不斷,或是由于架構(gòu)不夠靈活,阻礙業(yè)務(wù)的發(fā)展等等。
回顧網(wǎng)站架構(gòu)的發(fā)展歷程,我們可以發(fā)現(xiàn)任何大型網(wǎng)站架構(gòu)的發(fā)展都非一蹴而就的,同自然界生物物競(jìng)天擇的自然進(jìn)化規(guī)律一樣,大型網(wǎng)站的架構(gòu)發(fā)展和演變也基本遵循著類似的規(guī)律。我們可能無(wú)法想象幾年后網(wǎng)站架構(gòu)的樣子,因?yàn)樵诨ヂ?lián)網(wǎng)行業(yè)快速變化的當(dāng)下,你甚至很難準(zhǔn)確地預(yù)測(cè)未來一年網(wǎng)站的產(chǎn)品演變方向,甚至網(wǎng)站流量規(guī)模。于是,產(chǎn)品設(shè)計(jì)師和工程師們提得最多的是迭代和演變,這在一個(gè)網(wǎng)站系統(tǒng)架構(gòu)設(shè)計(jì)過程中顯得尤為重要,因?yàn)槲覀冇肋h(yuǎn)無(wú)法像傳統(tǒng)行業(yè)一樣,去精確地估算,并按預(yù)先精確設(shè)計(jì)好的圖紙去完成我們的產(chǎn)品。那是不是網(wǎng)站的架構(gòu)設(shè)計(jì)和規(guī)劃就毫無(wú)規(guī)律及章法可循了呢?答案顯然不是,在互聯(lián)網(wǎng)快速發(fā)展的今天,隨著搜索引擎、電子商務(wù)、社交類等互聯(lián)網(wǎng)產(chǎn)品逐步應(yīng)用到每個(gè)人的身邊,大型網(wǎng)站的架構(gòu)及很多關(guān)鍵技術(shù)的發(fā)展,在逐步走向成熟。在構(gòu)建一個(gè)大型網(wǎng)站過程中可能面臨一些問題,人們正在嘗試逐漸總結(jié)并積累出一些具有通用性的、經(jīng)過驗(yàn)證的且成熟的局部解決方案,這也是本書將呈現(xiàn)給大家的內(nèi)容。本書中,作者以自己多年大型互聯(lián)網(wǎng)網(wǎng)站的架構(gòu)經(jīng)驗(yàn),嘗試總結(jié)當(dāng)下這些互聯(lián)網(wǎng)行業(yè)中相對(duì)成熟且經(jīng)過大量案例檢驗(yàn)的技術(shù)和方案。
相信通過閱讀本書,您可以一窺大型網(wǎng)站架構(gòu)的全貌。
阿里巴巴技術(shù)專家 余俊
循序漸進(jìn),娓娓道來,語(yǔ)言生動(dòng),舉重若輕。
阿里云高級(jí)專家 李文兆
第1篇 概述
1 大型網(wǎng)站架構(gòu)演化
1.1 大型網(wǎng)站軟件系統(tǒng)的特點(diǎn)
1.2 大型網(wǎng)站架構(gòu)演化發(fā)展歷程
1.2.1 初始階段的網(wǎng)站架構(gòu)
1.2.2 應(yīng)用服務(wù)和數(shù)據(jù)服務(wù)分離
1.2.3 使用緩存改善網(wǎng)站性能
1.2.4 使用應(yīng)用服務(wù)器集群改善網(wǎng)站的并發(fā)處理能力
1.2.5 數(shù)據(jù)庫(kù)讀寫分離
1.2.6 使用反向代理和CDN加速網(wǎng)站響應(yīng)
1.2.7 使用分布式文件系統(tǒng)和分布式數(shù)據(jù)庫(kù)系統(tǒng)
1.2.8 使用NoSQL和搜索引擎
1.2.9 業(yè)務(wù)拆分
1.2.10 分布式服務(wù)
1.3 大型網(wǎng)站架構(gòu)演化的價(jià)值觀
第1篇 概述
1 大型網(wǎng)站架構(gòu)演化
1.1 大型網(wǎng)站軟件系統(tǒng)的特點(diǎn)
1.2 大型網(wǎng)站架構(gòu)演化發(fā)展歷程
1.2.1 初始階段的網(wǎng)站架構(gòu)
1.2.2 應(yīng)用服務(wù)和數(shù)據(jù)服務(wù)分離
1.2.3 使用緩存改善網(wǎng)站性能
1.2.4 使用應(yīng)用服務(wù)器集群改善網(wǎng)站的并發(fā)處理能力
1.2.5 數(shù)據(jù)庫(kù)讀寫分離
1.2.6 使用反向代理和CDN加速網(wǎng)站響應(yīng)
1.2.7 使用分布式文件系統(tǒng)和分布式數(shù)據(jù)庫(kù)系統(tǒng)
1.2.8 使用NoSQL和搜索引擎
1.2.9 業(yè)務(wù)拆分
1.2.10 分布式服務(wù)
1.3 大型網(wǎng)站架構(gòu)演化的價(jià)值觀
1.3.1 大型網(wǎng)站架構(gòu)技術(shù)的核心價(jià)值是隨網(wǎng)站所需靈活應(yīng)對(duì)
1.3.2 驅(qū)動(dòng)大型網(wǎng)站技術(shù)發(fā)展的主要力量是網(wǎng)站的業(yè)務(wù)發(fā)展
1.4 網(wǎng)站架構(gòu)設(shè)計(jì)誤區(qū)
1.4.1 一味追隨大公司的解決方案
1.4.2 為了技術(shù)而技術(shù)
1.4.3 企圖用技術(shù)解決所有問題
1.5 小結(jié)
2 大型網(wǎng)站架構(gòu)模式
2.1 網(wǎng)站架構(gòu)模式
2.1.1 分層
2.1.2 分割
2.1.3 分布式
2.1.4 集群
2.1.5 緩存
2.1.6 異步
2.1.7 冗余
2.1.8 自動(dòng)化
2.1.9 安全
2.2 架構(gòu)模式在新浪微博的應(yīng)用
2.3 小結(jié)
3 大型網(wǎng)站核心架構(gòu)要素
3.1 性能
3.2 可用性
3.3 伸縮性
3.4 擴(kuò)展性
3.5 安全性
3.6 小結(jié)
第2篇 架構(gòu)
4 瞬時(shí)響應(yīng):網(wǎng)站的高性能架構(gòu)
4.1 網(wǎng)站性能測(cè)試
4.1.1 不同視角下的網(wǎng)站性能
4.1.2 性能測(cè)試指標(biāo)
4.1.3 性能測(cè)試方法
4.1.4 性能測(cè)試報(bào)告
4.1.5 性能優(yōu)化策略
4.2 Web前端性能優(yōu)化
4.2.1 瀏覽器訪問優(yōu)化
4.2.2 CDN加速
4.2.3 反向代理
4.3 應(yīng)用服務(wù)器性能優(yōu)化
4.3.1 分布式緩存
4.3.2 異步操作
4.3.3 使用集群
4.3.4 代碼優(yōu)化
4.4 存儲(chǔ)性能優(yōu)化
4.4.1 機(jī)械硬盤vs. 固態(tài)硬盤
4.4.2 B+樹vs. LSM樹
4.4.3 RAID vs. HDFS
4.5 小結(jié)
5 萬(wàn)無(wú)一失:網(wǎng)站的高可用架構(gòu)
5.1 網(wǎng)站可用性的度量與考核
5.1.1 網(wǎng)站可用性度量
5.1.2 網(wǎng)站可用性考核
5.2 高可用的網(wǎng)站架構(gòu)
5.3 高可用的應(yīng)用
5.3.1 通過負(fù)載均衡進(jìn)行無(wú)狀態(tài)服務(wù)的失效轉(zhuǎn)移
5.3.2 應(yīng)用服務(wù)器集群的Session管理
5.4 高可用的服務(wù)
5.5 高可用的數(shù)據(jù)
5.5.1 CAP原理
5.5.2 數(shù)據(jù)備份
5.5.3 失效轉(zhuǎn)移
5.6 高可用網(wǎng)站的軟件質(zhì)量保證
5.6.1 網(wǎng)站發(fā)布
5.6.2 自動(dòng)化測(cè)試
5.6.3 預(yù)發(fā)布驗(yàn)證
5.6.4 代碼控制
5.6.5 自動(dòng)化發(fā)布
5.6.6 灰度發(fā)布
5.7 網(wǎng)站運(yùn)行監(jiān)控
5.7.1 監(jiān)控?cái)?shù)據(jù)采集
5.7.2 監(jiān)控管理
5.8 小結(jié)
6 永無(wú)止境:網(wǎng)站的伸縮性架構(gòu)
6.1 網(wǎng)站架構(gòu)的伸縮性設(shè)計(jì)
6.1.1 不同功能進(jìn)行物理分離實(shí)現(xiàn)伸縮
6.1.2 單一功能通過集群規(guī)模實(shí)現(xiàn)伸縮
6.2 應(yīng)用服務(wù)器集群的伸縮性設(shè)計(jì)
6.2.1 HTTP重定向負(fù)載均衡
6.2.2 DNS域名解析負(fù)載均衡
6.2.3 反向代理負(fù)載均衡
6.2.4 IP負(fù)載均衡
6.2.5 數(shù)據(jù)鏈路層負(fù)載均衡
6.2.6 負(fù)載均衡算法
6.3 分布式緩存集群的伸縮性設(shè)計(jì)
6.3.1 Memcached分布式緩存集群的訪問模型
6.3.2 Memcached分布式緩存集群的伸縮性挑戰(zhàn)
6.3.3 分布式緩存的一致性Hash算法
6.4 數(shù)據(jù)存儲(chǔ)服務(wù)器集群的伸縮性設(shè)計(jì)
6.4.1 關(guān)系數(shù)據(jù)庫(kù)集群的伸縮性設(shè)計(jì)
6.4.2 NoSQL數(shù)據(jù)庫(kù)的伸縮性設(shè)計(jì)
6.5 小結(jié)
7 隨需應(yīng)變:網(wǎng)站的可擴(kuò)展架構(gòu)
7.1 構(gòu)建可擴(kuò)展的網(wǎng)站架構(gòu)
7.2 利用分布式消息隊(duì)列降低系統(tǒng)耦合性
7.2.1 事件驅(qū)動(dòng)架構(gòu)
7.2.2 分布式消息隊(duì)列
7.3 利用分布式服務(wù)打造可復(fù)用的業(yè)務(wù)平臺(tái)
7.3.1 Web Service與企業(yè)級(jí)分布式服務(wù)
7.3.2 大型網(wǎng)站分布式服務(wù)的需求與特點(diǎn)
7.3.3 分布式服務(wù)框架設(shè)計(jì)
7.4 可擴(kuò)展的數(shù)據(jù)結(jié)構(gòu)
7.5 利用開放平臺(tái)建設(shè)網(wǎng)站生態(tài)圈
7.6 小結(jié)
8 固若金湯:網(wǎng)站的安全架構(gòu)
8.1 道高一尺魔高一丈的網(wǎng)站應(yīng)用攻擊與防御
8.1.1 XSS攻擊
8.1.2 注入攻擊
8.1.3 CSRF攻擊
8.1.4 其他攻擊和漏洞
8.1.5 Web應(yīng)用防火墻
8.1.6 網(wǎng)站安全漏洞掃描
8.2 信息加密技術(shù)及密鑰安全管理
8.2.1 單向散列加密
8.2.2 對(duì)稱加密
8.2.3 非對(duì)稱加密
8.2.4 密鑰安全管理
8.3 信息過濾與反垃圾
8.3.1 文本匹配
8.3.2 分類算法
8.3.3 黑名單
8.4 電子商務(wù)風(fēng)險(xiǎn)控制
8.4.1 風(fēng)險(xiǎn)
8.4.2 風(fēng)控
8.5 小結(jié)
第3篇 案例
9 淘寶網(wǎng)的架構(gòu)演化案例分析
9.1 淘寶網(wǎng)的業(yè)務(wù)發(fā)展歷程
9.2 淘寶網(wǎng)技術(shù)架構(gòu)演化
9.3 小結(jié)
10 維基百科的高性能架構(gòu)設(shè)計(jì)分析
10.1 Wikipedia網(wǎng)站整體架構(gòu)
10.2 Wikipedia性能優(yōu)化策略
10.2.1 Wikipedia前端性能優(yōu)化
10.2.2 Wikipedia服務(wù)端性能優(yōu)化
10.2.3 Wikipedia后端性能優(yōu)化
11 海量分布式存儲(chǔ)系統(tǒng)Doris的高可用架構(gòu)設(shè)計(jì)分析
11.1 分布式存儲(chǔ)系統(tǒng)的高可用架構(gòu)
11.2 不同故障情況下的高可用解決方案
11.2.1 分布式存儲(chǔ)系統(tǒng)的故障分類
11.2.2 正常情況下系統(tǒng)訪問結(jié)構(gòu)
11.2.3 瞬時(shí)故障的高可用解決方案
11.2.4 臨時(shí)故障的高可用解決方案
11.2.5 永久故障的高可用解決方案
12 網(wǎng)購(gòu)秒殺系統(tǒng)架構(gòu)設(shè)計(jì)案例分析
12.1 秒殺活動(dòng)的技術(shù)挑戰(zhàn)
12.2 秒殺系統(tǒng)的應(yīng)對(duì)策略
12.3 秒殺系統(tǒng)架構(gòu)設(shè)計(jì)
12.4 小結(jié)
13 大型網(wǎng)站典型故障案例分析
13.1 寫日志也會(huì)引發(fā)故障
13.2 高并發(fā)訪問數(shù)據(jù)庫(kù)引發(fā)的故障
13.3 高并發(fā)情況下鎖引發(fā)的故障
13.4 緩存引發(fā)的故障
13.5 應(yīng)用啟動(dòng)不同步引發(fā)的故障
13.6 大文件讀寫?yīng)氄即疟P引發(fā)的故障
13.7 濫用生產(chǎn)環(huán)境引發(fā)的故障
13.8 不規(guī)范的流程引發(fā)的故障
13.9 不好的編程習(xí)慣引發(fā)的故障
13.10 小結(jié)
第4篇 架構(gòu)師
14 架構(gòu)師領(lǐng)導(dǎo)藝術(shù)
14.1 關(guān)注人而不是產(chǎn)品
14.2 發(fā)掘人的優(yōu)秀
14.3 共享美好藍(lán)圖
14.4 共同參與架構(gòu)
14.5 學(xué)會(huì)妥協(xié)
14.6 成就他人
15 網(wǎng)站架構(gòu)師職場(chǎng)攻略
15.1 發(fā)現(xiàn)問題,尋找突破
15.2 提出問題,尋求支持
15.3 解決問題,達(dá)成績(jī)效
16 漫話網(wǎng)站架構(gòu)師
16.1 按作用劃分架構(gòu)師
16.2 按效果劃分架構(gòu)師
16.3 按職責(zé)角色劃分架構(gòu)師
16.4 按關(guān)注層次劃分架構(gòu)師
16.5 按口碑劃分架構(gòu)師
16.6 非主流方式劃分架構(gòu)師
附錄A 大型網(wǎng)站架構(gòu)技術(shù)一覽
附錄B Web開發(fā)技術(shù)發(fā)展歷程
后記