大型網站技術架構 核心原理與案例分析pdf

2018年7月8日16:33:09 發表評論 157
摘要

《大型網站技術架構:核心原理與案例分析》作者是擁有核心技術部門的一線工作經驗,直接體驗了大型網站構建與發展過程中的種種生與死,蛻與變,見證了一個網站架構從幼稚走向成熟穩定的歷程。
沒有晦澀難懂的術語,沒有詰屈聱牙的文句,沒有故弄玄虛的觀點……
明明白白的語句,清清楚楚的文法,干凈利落的建議——讓讀者直接體會網站架構的緊要處,不容馬虎的關鍵點——這恰好是一個優秀的網站架構所必備的要素。
如果說“水不在深,有龍則靈”,那么對于想了解網站架構的讀者而言,這本書恰好是“書不在多,有它則行!”
還猶豫什么呢?

大型網站技術架構 核心原理與案例分析 內容簡介

《大型網站技術架構:核心原理與案例分析》通過梳理大型網站技術發展歷程,剖析大型網站技術架構模式,深入講述大型互聯網架構設計的核心原理,并通過一組典型網站技術架構設計案例,為讀者呈現一幅包括技術選型、架構設計、性能優化、Web安全、系統發布、運維監控等在內的大型網站開發全景視圖。

大型網站技術架構 核心原理與案例分析 目錄

第1篇 概述

1 大型網站架構演化

1.1 大型網站軟件系統的特點

1.2 大型網站架構演化發展歷程

1.2.1 初始階段的網站架構

1.2.2 應用服務和數據服務分離

1.2.3 使用緩存改善網站性能

1.2.4 使用應用服務器集群改善網站的并發處理能力

1.2.5 數據庫讀寫分離

1.2.6 使用反向代理和CDN 加速網站響應

1.2.7 使用分布式文件系統和分布式數據庫系統

1.2.8 使用NoSQL和搜索引擎

1.2.9 業務拆分

1.2.10 分布式服務

1.3 大型網站架構演化的價值觀

1.3.1 大型網站架構技術的核心價值是隨網站所需靈活應對

1.3.2 驅動大型網站技術發展的主要力量是網站的業務發展

1.4 網站架構設計誤區

1.4.1 一味追隨大公司的解決方案

1.4.2 為了技術而技術

1.4.3 企圖用技術解決所有問題

1.5 小結

2 大型網站架構模式

2.1 網站架構模式

2.1.1 分層

2.1.2 分割

2.1.3 分布式

2.1.4 集群

2.1.5 緩存

2.1.6 異步

2.1.7 冗余

2.1.8 自動化

2.1.9 安全

2.2 架構模式在新浪微博的應用

2.3 小結

3 大型網站核心架構要素

3.1 性能

3.2 可用性

3.3 伸縮性

3.4 擴展性

3.5 安全性

3.6 小結

第2篇 架構

4 瞬時響應:網站的高性能架構

4.1 網站性能測試

4.1.1 不同視角下的網站性能

4.1.2 性能測試指標

4.1.3 性能測試方法

4.1.4 性能測試報告

4.1.5 性能優化策略

4.2 Web 前端性能優化

4.2.1 瀏覽器訪問優化

4.2.2 CDN 加速

4.2.3 反向代理

4.3 應用服務器性能優化

4.3.1 分布式緩存

4.3.2 異步操作

4.3.3 使用集群

4.3.4 代碼優化

4.4 存儲性能優化

4.4.1 機械硬盤vs. 固態硬盤

4.4.2 B+樹vs.LSM 樹

4.4.3 RAIDvs.HDFS

4.5 小結

5 萬無一失:網站的高可用架構

5.1 網站可用性的度量與考核

5.1.1 網站可用性度量

5.1.2 網站可用性考核

5.2 高可用的網站架構

5.3 高可用的應用

5.3.1 通過負載均衡進行無狀態服務的失效轉移

5.3.2 應用服務器集群的Session 管理

5.4 高可用的服務

5.5 高可用的數據

5.5.1 CAP 原理

5.5.2 數據備份

5.5.3 失效轉移

5.6 高可用網站的軟件質量保證

5.6.1 網站發布

5.6.2 自動化測試

5.6.3 預發布驗證

5.6.4 代碼控制

5.6.5 自動化發布

5.6.6 灰度發布

5.7 網站運行監控

5.7.1 監控數據采集

5.7.2 監控管理

5.8 小結

6 永無止境:網站的伸縮性架構

6.1 網站架構的伸縮性設計

6.1.1 不同功能進行物理分離實現伸縮

6.1.2 單一功能通過集群規模實現伸縮

6.2 應用服務器集群的伸縮性設計

6.2.1 HTTP 重定向負載均衡

6.2.2 DNS 域名解析負載均衡

6.2.3 反向代理負載均衡

6.2.4 IP 負載均衡

6.2.5 數據鏈路層負載均衡

6.2.6 負載均衡算法

6.3 分布式緩存集群的伸縮性設計

6.3.1 Memcached 分布式緩存集群的訪問模型

6.3.2 Memcached 分布式緩存集群的伸縮性挑戰

6.3.3 分布式緩存的一致性Hash 算法

6.4 數據存儲服務器集群的伸縮性設計

6.4.1 關系數據庫集群的伸縮性設計

6.4.2 NoSQL 數據庫的伸縮性設計

6.5 小結

7 隨需應變:網站的可擴展架構

7.1 構建可擴展的網站架構

7.2 利用分布式消息隊列降低系統耦合性

7.2.1 事件驅動架構

7.2.2 分布式消息隊列

7.3 利用分布式服務打造可復用的業務平臺

7.3.1 Web Service 與企業級分布式服務

7.3.2 大型網站分布式服務的需求與特點

7.3.3 分布式服務框架設計

7.4 可擴展的數據結構

7.5 利用開放平臺建設網站生態圈

7.6 小結

8 固若金湯:網站的安全架構

8.1 道高一尺魔高一丈的網站應用攻擊與防御

8.1.1 XSS 攻擊

8.1.2 注入攻擊

8.1.3 CSRF 攻擊

8.1.4 其他攻擊和漏洞

8.1.5 Web 應用防火墻

8.1.6 網站安全漏洞掃描

8.2 信息加密技術及密鑰安全管理

8.2.1 單向散列加密

8.2.2 對稱加密

8.2.3 非對稱加密

8.2.4 密鑰安全管理

8.3 信息過濾與反垃圾

8.3.1 文本匹配

8.3.2 分類算法

8.3.3 黑名單

8.4 電子商務風險控制

8.4.1 風險

8.4.2 風控

8.5 小結

第3篇 案例

9 淘寶網的架構演化案例分析

9.1 淘寶網的業務發展歷程

9.2 淘寶網技術架構演化

9.3 小結

10 維基百科的高性能架構設計分析

10.1 Wikipedia 網站整體架構

10.2 Wikipedia 性能優化策略

10.2.1 Wikipedia 前端性能優化

10.2.2 Wikipedia 服務端性能優化

10.2.3 Wikipedia 后端性能優化

11 海量分布式存儲系統Doris 的高可用架構設計分析

11.1 分布式存儲系統的高可用架構

11.2 不同故障情況下的高可用解決方案

11.2.1 分布式存儲系統的故障分類

11.2.2 正常情況下系統訪問結構

11.2.3 瞬時故障的高可用解決方案

11.2.4 臨時故障的高可用解決方案

11.2.5 永久故障的高可用解決方案

12 網購秒殺系統架構設計案例分析

12.1 秒殺活動的技術挑戰

12.2 秒殺系統的應對策略

12.3 秒殺系統架構設計

12.4 小結

13 大型網站典型故障案例分析

13.1 寫日志也會引發故障

13.2 高并發訪問數據庫引發的故障

13.3 高并發情況下鎖引發的故障

13.4 緩存引發的故障

13.5 應用啟動不同步引發的故障

13.6 大文件讀寫獨占磁盤引發的故障

13.7 濫用生產環境引發的故障

13.8 不規范的流程引發的故障

13.9 不好的編程習慣引發的故障

13.10 小結

第4篇 架構師

14 架構師領導藝術

14.1 關注人而不是產

14.2 發掘人的優秀

14.3 共享美好藍圖

14.4 共同參與架構

14.5 學會妥協

14.6 成就他人

15 網站架構師職場攻略

15.1 發現問題,尋找突破

15.2 提出問題,尋求支持

15.3 解決問題,達成績效

16 漫話網站架構師

16.1 按作用劃分架構師

16.2 按效果劃分架構師

16.3 按職責角色劃分架構師

16.4 按關注層次劃分架構師

16.5 按口碑劃分架構師 206

16.6 非主流方式劃分架構師

附錄A 大型網站架構技術一覽

附錄B Web開發技術發展歷程

后記

大型網站技術架構 核心原理與案例分析 精彩文摘

1.4 網站架構設計誤區

在大型網站架構發展過程中有如下幾個容易出現的誤區。

1.4.1 一味追隨大公司的解決方案

由于大公司巨大成功的光環效應,再加上從大公司挖來的技術高手的影響,網站在討論架構決策時,最有說服力的一句話就成了“淘寶就是這么搞的”或者“Facebook就是這么搞的”。

大公司的經驗和成功模式固然重要,值得學習借鑒,但如果因此而變得盲從,就失去了堅持自我的勇氣,在架構演化的道路上遲早會迷路。

1.4.2 為了技術而技術

網站技術是為業務而存在的,除此毫無意義。在技術選型和架構設計中,脫離網站業務發展的實際,一味追求時髦的新技術,可能會將網站技術發展引入崎嶇小道,架構之路越走越難。

1.4.3 企圖用技術解決所有問題

最典型的例子就是2012年年初12306故障事件后,軟件開發技術界的反應。

各路專業和非專業人士眾說紛紜地幫12306的技術架構出謀劃策,甚至有人提議幫12306寫一個開源的網站,解決其大規模并發訪問的問題。

12306真正的問題其實不在于它的技術架構,而在于它的業務架構:12306根本就不應該在幾億中國人一票難求的情況下以窗口售票的模式在網上售票(零點開始出售若干天后的車票)。12306需要重構的不僅是它的技術架構,更重要的是它的業務架構:調整業務需求,換一種方式賣票,而不要去搞促銷秒殺這種噱頭式的游戲。

后來證明12306確實是朝這個方向發展的:在售票方式上引入了排隊機制、整點售票調整為分時段售票。其實如果能控制住并發訪問的量,很多棘手的技術問題也就不是什么問題了。

技術是用來解決業務問題的,而業務的問題,也可以通過業務的手段去解決。

1.5 小結

時至今日,大型網站的架構演化方案已經非常成熟,各種技術方案也逐漸產品化。許多小型網站已經慢慢不需要再經歷大型網站經歷過的架構演化之路就可以逐步發展壯大,因為現在越來越多的網站從建立之初就是搭建在大型網站提供的云計算服務基礎之上,所需要的一切技術資源:計算、存儲、網絡都可以按需購買,線性伸縮,不需要自己一點一點地拼湊各種資源,綜合使用各種技術方案逐步去完善自己的網站架構了。

所以能親身經歷一個網站從小到太的架構演化過程的網站架構師越來越少,雖然過去有這種經歷的架構師也很少(從小型網站發展成大型網站的機會本來就極少),但是將來可能真就沒有了。

圖書網:大型網站技術架構 核心原理與案例分析pdf

此資源下載價格為2圖書幣,請先
  • 我的微信
  • 掃一掃加好友
  • weinxin
  • 微信公眾號
  • 掃一掃關注
  • weinxin

發表評論

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: