網易雲平颱開發一綫的主力,為你講述雲原生的技術體係,展示從單體到服務化架構的演進。
針對企業如何采用雲原生架構實現高效的産品迭代能力、支持互聯網業務健康發展,《雲原生應用架構實踐》總結瞭一套可行的方法論。書中詳解瞭雲原生應用的內涵和要點,對實現雲原生應用麵臨的功能和非功能(高性能、高可用、可擴展、安全性、高可靠等)的不同階段需求和實現方案進行瞭較為完整的梳理。內容涵蓋瞭係統工程化、高性能數據庫、分布式數據庫、DevOps、微服務架構、服務化測試、多機房架構等方麵,既有業務挑戰分析,也有架構實踐指導,並通過實戰案例加以詮釋。
本書適閤希望采用雲計算幫助企業實現業務提升的 CTO、CIO、架構師等群體。
網易雲基礎服務架構團隊,負責網易雲基礎服務平颱建設,包括計算、網絡、存儲、CDN、數據庫等服務,以及自動化平颱的架構和實踐,該平颱支撐瞭網易內部95%的互聯網産品。團隊在互聯網産品開發和規範化的係統建設上有豐富的經驗,對互聯網業務需求、係統設計、開發、測試、運維和調優等方麵有獨到的經驗和理解。
祝一切順利!
引子 1
第1章 互聯網係統架構的挑戰 2
1.1 雲應用架構技術發展 4
1.2 雲平颱下架構的不同點 5
1.2.1 開發模式的區彆 6
1.2.2 交付模式的區彆 7
1.2.3 架構設計的區彆 8
1.3 雲原生應用架構 10
1.4 架構演化發展曆程 21
1.4.1 初創期架構 22
1.4.2 快速成長期架構 24
1.4.3 分布式服務架構 26
1.5 雲計算服務介紹 29
1.6 雲計算解決方案 31
1.7 案例概述 34
1.7.1 背景介紹 34
1.7.2 環境要求 36
1.7.3 項目構建 36
1.7.4 項目運行 36
1.7.5 相關技術介紹 37
小結 40
第2章 從0到1工程實踐 41
2.1 工程化 41
2.1.1 工程模闆 41
2.1.2 模塊化 45
2.1.3 工程化構建 50
2.1.4 代碼規範及檢查 53
2.1.5 代碼版本管理 54
2.1.6 環境劃分 61
2.2 基於容器工程化 62
2.2.1 Docker及作用 63
2.2.2 Docker鏡像及操作 66
2.2.3 Docker容器及操作 73
2.2.4 基於容器工程化 77
2.3 實戰示例 78
小結 84
第3章 初創期應用架構實踐 85
3.1 技術選型 85
3.1.1 業務框架選型 85
3.1.2 結構化數據存儲 92
3.1.3 緩存選型 102
3.1.4 靜態資源存儲 106
3.2 架構實踐 109
3.2.1 快速迭代 109
3.2.2 高可用與負載均衡 111
3.2.3 交付與部署 117
3.2.4 Web應用安全 119
3.3 應用監控 127
3.3.1 應用監控指標 127
3.3.2 應用進程監控 128
3.3.3 操作係統監控 129
小結 136
第4章 快速成長期應用架構實踐 137
4.1 關鍵業務需求 137
4.1.1 計數與排序 137
4.1.2 秒殺 146
4.1.3 全文檢索 149
4.1.4 日誌收集 154
4.2 架構實踐 156
4.2.1 前端係統擴展 157
4.2.2 無狀態服務設計 157
4.2.3 在綫水平擴展 160
4.2.4 後端係統擴展 163
4.2.5 係統通信 173
4.2.6 消息中間件 176
4.3 係統優化 181
4.3.1 靜態資源分離 182
4.3.2 數據庫調優 185
4.3.3 係統高可用 193
4.4 應用診斷 200
4.4.1 應用健康檢查 200
4.4.2 性能問題診斷 204
4.4.3 基於日誌的故障診斷 210
4.5 數據庫診斷 214
4.6 DevOps 223
4.6.1 持續集成 224
4.6.2 持續交付 227
4.6.3 灰度發布 229
4.6.4 大應用編排 231
4.7 安全設計 246
4.7.1 入侵檢測 247
4.7.2 防劫持攻擊 249
小結 255
第5章 穩定期服務化應用架構實踐 256
5.1 業務拆分 256
5.2 統一配置中心 259
5.3 分布式定時任務 261
5.3.1 分布式定時任務設計 262
5.3.2 業界流行的開源框架 264
5.4 分布式鎖係統 274
5.5 微服務化架構 277
5.5.1 服務發現 279
5.5.2 服務治理 302
5.5.3 微服務框架 307
5.5.4 服務編排 313
5.5.5 微服務測試 321
5.6 分布式數據一緻性 333
5.6.1 CAP和BASE理論 333
5.6.2 一緻性模型 336
5.6.3 典型的解決方案 337
5.7 同城多活 344
5.7.1 應用同城多活 345
5.7.2 跨AZ負載均衡 347
5.8 故障診斷 348
小結 353
參考文獻 354
技術術語 356
曆時三年終到稿,還未讀完初稿,就知道《架構解密:從分布式到微服務》將是一本暢銷書。
作者:(美)Lee Atchison(李 艾奇遜) 譯者:張若飛
Lee Atchison 是New Relic 公司的席雲架構師和布道師。他已經在New Relic 工作瞭4年,負責設計並領導建立瞭New Relic 的基礎設施産品,幫助New Relic 搭建瞭健壯的服務化係統架構,支撐起公司從一個很小的SaaS 創業公司成長為一個高流量的公眾企業。他非常擅長構建高可用的係統。Lee 擁有28 年的行業工作背景,之前在Amazon.com 擔任7 年高級經理的時候,瞭解到如何搭建基於雲的、可伸縮的係統架構。在Amazon,他領導並建立瞭公司個軟件下載商店,搭建瞭AWS Elastic Beanstalk 服務,並帶領團隊將Amazon 的零售平颱從一個單體架構成功遷移到瞭基於服務的架構。
本書譯者的中英文水平都極高,且工作在係統管理的一綫,具有豐富的理論知識和實踐經驗,相信會為讀者帶來一本質量上乘的圖書。
目錄
序. .......................... xv
前言. ......................xvii
第 1章 什麼是可用性... 2
可用性與可靠性 ............................................... 3
什麼導緻瞭低可用性 ....................................... 4
第 2章 提高應用程序可用性的五個要點......................................... 6
要點 1:時刻考慮應對故障 ............................. 7
要點 2:時刻考慮如何伸縮 ............................. 8
要點 3:緩和風險 ............................................ 9
要點 4:監控可用性 ...................................... 10
要點 5:以預測和確定的方式來應對可用性問題 ...................................................... 11
做好準備 ........................................................ 12
第 3章 測量可用性... 13
N個 9 14
什麼樣的可用性是閤理的 ...................... 14
不要上當 ........................................................ 14
通過數字來體現可用性.................................. 15
測試並跟蹤當前的可用性 .............................. 17
將手動流程自動化 ......................................... 17
自動化部署............................................. 18
配置管理 ................................................ 18
更改實驗和高頻次更改 .......................... 19
自動化的變更完備性測試 ...................... 20
改進你的係統 ................................................ 20
不斷變化和發展中的應用程序 ...................... 20
時刻關注可用性 ............................................. 21
第 5章 什麼是風險管理. .......................................................... 24
管理風險 ........................................................ 25
識彆風險 ........................................................ 25
消除嚴重的風險 ......................................... 26
風險緩和 ........................................................ 26
定期檢查 ........................................................ 27
對風險管理的總結 ......................................... 27
第 6章 可能性與嚴重性. .......................................................... 28
10佳列錶:低可能性,低嚴重性 .................. 29
訂單數據庫:低可能性,高嚴重性 ............... 29
自定義字體:高可能性,低嚴重性 ............... 30
T恤圖片:高可能性,高嚴重性 ................... 31
第 7章 風險模型...... 32
風險模型的作用域 ......................................... 34
創建風險模型 ................................................ 34
通過頭腦風暴建立風險列錶 .................. 35
填寫可能性和嚴重性字段 ...................... 36
風險項詳情............................................. 37
觸發計劃 ................................................ 37
使用風險模型來製訂計劃 .............................. 37
維護風險模型 ................................................ 38
第 8章 風險緩和...... 40
恢復計劃 ........................................................ 41
容災計劃 ........................................................ 42
改進我們的風險狀況 ..................................... 43
第 9章 比賽日......... 44
預發布環境和生産環境.................................. 44
在生産環境中舉行比賽日的擔心 ................... 46
比賽日測試 .................................................... 47
第 10章 構建低風險係統......................................................... 48
冗餘 .. 48
冪等接口示例 ................................................ 49
增加瞭復雜性的冗餘改進 .............................. 49
獨立性 ............................................................ 50
安全 .. 51
簡單性 ............................................................ 51
自修復 ............................................................ 52
運維流程 ........................................................ 53
第 11章 為什麼使用服務. ......................................................... 56
單體應用程序 ................................................ 56
基於服務的應用程序 ..................................... 57
所有權收益 .................................................... 58
規模收益 ........................................................ 60
如何定義服務 ................................................ 63
深入瞭解服務 ......................................... 63
指導原則 1:特定的業務需求 ................ 63
指導原則 2:清晰和獨立的團隊所有權 . 64
指導原則 3:天然隔離的數據 ................ 65
指導原則 4:共享的能力 /數據 ............. 67
多種原因 ................................................ 67
過猶不及 ........................................................ 68
適當的平衡 .................................................... 69
第 13章 處理服務故障............................................................ 70
級聯式的服務故障 ......................................... 70
如何響應服務故障 ......................................... 71
可預測的響應 ......................................... 72
可理解的響應 ......................................... 73
閤理的響應............................................. 73
如何確定故障 ................................................ 74
適當的行為 .................................................... 76
優雅降級 ................................................ 76
優雅補償 ................................................ 77
盡早失敗 ................................................ 77
用戶導緻的問題 ..................................... 78
第Ⅳ部分 如何讓應用程序具有伸縮性
第 14章 兩次失誤的高度......................................................... 82
什麼是“兩次失誤的高度” ............................ 83
實踐中的“兩次失誤的高度” ........................ 83
丟失一個節點 ......................................... 83
升級過程中齣現的問題 .......................... 85
數據中心恢復 ......................................... 86
隱蔽的共享故障類型 .............................. 88
管理你的應用程序 ......................................... 90
航天飛機 ........................................................ 90
第 15章 服務所有權.. 92
由獨立團隊負責的服務架構 .......................... 92
STOSA應用程序和組織的好處 ..................... 94
成為一個服務所有者意味著什麼 ................... 94
第 16章 服務分級. .... 97
應用復雜性 .................................................... 97
什麼是服務分級 ............................................. 98
為服務分配服務級彆標簽 .............................. 99
1級服務 ................................................. 99
2級服務 ................................................. 99
3級服務 ............................................... 100
4級服務 ............................................... 100
示例:在綫商店 ........................................... 100
接下來呢 ...................................................... 103
第 17章 使用服務分級.......................................................... 104
期望 104
響應性 .......................................................... 104
依賴 106
關鍵依賴 .............................................. 106
非關鍵依賴........................................... 107
小結 107
第 18章 服務等級協議.......................................................... 108
什麼是服務等級協議 ................................... 108
外部 SLA與內部 SLA的對比 ..................... 110
為什麼內部 SLA很重要 .............................. 110
SLA可以作為一種信任的手段 .....................111
SLA可以用於問題診斷 ................................111
限定 SLA .............................................. 113
排名 SLA .............................................. 113
延遲分組 .............................................. 115
究竟應當定義多少內部 SLA,以及定義哪些內部 SLA ........................................... 116
關於 SLA的其他評價 .................................. 116
第 19章 持續改進. ... 117
定期檢查你的應用程序................................ 117
微服務 .......................................................... 118
服務所有權 .................................................. 118
無狀態服務 .................................................. 118
數據在哪裏 .................................................. 118
數據分區 ...................................................... 119
持續改進的重要性 ....................................... 121
第 20章 變化和雲服務. ..........................................................124
雲服務有哪些變化 ....................................... 124
對基於微服務架構的認可 .................... 124
更小、更專業的服務 ............................ 125
更專注於應用程序 ............................... 125
微型初創公司 ....................................... 125
安全和閤規已經成熟 ............................ 125
變化還在繼續 .............................................. 125
第 21章 雲上的分布.127
AWS的架構 ................................................. 127
AWS區域 ............................................. 127
AWS可用區 ......................................... 128
數據中心 .............................................. 128
總體架構概述 .............................................. 129
第 22章 托管的基礎設施....................................................... 134
基於雲的服務架構 ....................................... 134
原生資源 .............................................. 135
托管資源(基於服務器) ....................... 136
托管資源(不基於服務器) ................... 137
使用托管資源的影響 ................................... 138
使用非托管資源的影響................................ 138
監控和 CloudWatch ...................................... 138
第 23章 雲資源分配. ............................................................ 140
固定額度的資源分配 ................................... 140
調整分配 .............................................. 141
預留容量 .............................................. 142
基於使用量的資源分配................................ 143
基於使用量分配資源的好處 ................ 144
資源分配技術的利與弊................................ 145
第 24章 可伸縮的計算選項.................................................... 146
雲服務器 ...................................................... 147
優點 ...................................................... 147
缺點 ...................................................... 147
適用場景 .............................................. 147
計算分片 ...................................................... 147
優點 ...................................................... 147
缺點 ...................................................... 148
適用場景 .............................................. 148
動態容器 ...................................................... 148
優點 ...................................................... 148
缺點 ...................................................... 149
適用場景 .............................................. 149
微計算 .......................................................... 149
優點 ...................................................... 149
缺點 ...................................................... 150
第 25章 AWS.Lambda....................................................... 151
使用 Lambda ................................................ 151
事件處理 .............................................. 151
手機應用後颱 ....................................... 152
物聯網數據采集 ................................... 153
Lambda的優缺點......................................... 154
第Ⅵ部分 總結
第 26章 融會貫通...156
可用性 .......................................................... 156
風險管理 ...................................................... 157
服務 157
擴展 157
雲服務 .......................................................... 158
麵嚮可伸縮的架構 ....................................... 158
這是一本讓我大開眼界的技術書籍,它像一位經驗豐富的嚮導,帶領我穿梭於錯綜復雜的分布式係統世界,並最終抵達微服務和雲原生應用的壯麗彼岸。作者以一種抽絲剝繭的方式,從最基礎的分布式理論講起,層層深入,逐步剖析瞭現代應用架構演進的邏輯脈絡。我尤其欣賞書中對“解密”二字的深刻詮釋,它並非簡單羅列概念,而是真正地探究瞭各種架構模式背後的設計思想、權衡取捨以及它們如何應對現實世界中不斷變化的挑戰。從CAP定理的清晰講解,到一緻性協議的詳細闡述,再到如何構建高可用、可伸縮的分布式係統,每一個章節都充滿瞭智慧的火花。書中對服務拆分、通信機製、數據一緻性、容錯處理等關鍵環節的探討,都給予瞭我極大的啓發。讀完這本書,我不再是被動接受技術名詞,而是能夠從更宏觀、更本質的層麵去理解為什麼需要這些技術,它們解決瞭什麼問題,以及在實際項目中應該如何應用。特彆是對於雲原生部分,書中不僅僅提到瞭容器化、服務網格等流行技術,更重要的是闡述瞭圍繞這些技術構建的整個生態係統如何賦能應用的彈性伸縮和持續交付,這對於我理解如何在雲環境中構建和管理現代應用至關重要。
評分我必須說,這本書在“雲原生應用架構實踐”這部分,簡直是一部教科書級彆的指南。它沒有停留在對Kubernetes、Docker等技術的簡單介紹,而是深入剖析瞭雲原生背後的理念和哲學,以及如何在實踐中落地。作者將雲原生應用架構的構建過程,分解為一係列清晰的步驟和原則,從容器化部署、服務編排、聲明式配置,到服務發現、分布式跟蹤、日誌聚閤等,都進行瞭詳盡的闡述。我特彆喜歡書中對微服務與容器化結閤的深入分析,它解釋瞭為什麼這種組閤能夠極大地提升應用的靈活性、彈性和可維護性。書中關於DevOps文化、CI/CD流水綫、以及如何構建可觀測性係統的內容,也為我提供瞭寶貴的實踐經驗。它讓我明白瞭,雲原生不僅僅是技術的堆砌,更是一種全新的軟件開發和交付模式。通過學習書中關於如何構建彈性、自治、可伸縮的微服務應用的最佳實踐,我能夠更好地理解如何在雲環境下設計、開發、部署和管理現代應用,從而更有效地應對業務的快速變化和不斷增長的用戶需求。
評分這本書的標題和內容,恰如其分地概括瞭現代軟件架構演進的核心脈絡,從分布式係統的復雜性,到微服務帶來的靈活性,再到雲原生應用的彈性與高效,最後落腳於麵嚮增長的高可用性,每一個環節都緊密相連,環環相扣。作者以一種循序漸進的方式,引導讀者深入理解這些概念背後的邏輯。我尤其欣賞書中對於“架構解密”的深入探討,它不僅僅是介紹瞭各種架構模式,更是揭示瞭這些模式誕生的原因、解決的問題以及在實際應用中所麵臨的挑戰。從分布式一緻性到服務治理,從容器編排到平颱建設,本書都提供瞭非常詳實和有價值的見解。它讓我明白,構建一個健壯、可擴展且能夠持續應對業務增長的係統,需要對技術有全麵的理解,同時也要具備前瞻性的戰略眼光。書中所倡導的“麵嚮增長”的理念,更是讓我認識到,架構設計不應僅僅是技術堆砌,更應以業務的成功為最終目標,不斷適應變化,驅動發展。這是一本值得反復閱讀、深入思考的寶藏。
評分讀完這本書,我感覺自己對“可伸縮架構”的理解上升到瞭一個新的高度。作者在這一部分的論述,不僅僅停留在理論層麵,而是通過大量的案例和實戰經驗,揭示瞭如何構建能夠應對海量用戶和數據增長的係統。書中對水平擴展、垂直擴展的優劣分析,以及如何通過負載均衡、數據庫分片、緩存策略等手段來實現高效的可伸縮性,都讓我印象深刻。我特彆欣賞作者在闡述如何應對“增長”時,那種係統性的思考方式。它不僅僅是如何讓係統“跑得動”,更是如何讓係統在“增長”的過程中,依然保持高性能、高可用和低成本。書中關於無狀態設計、異步通信、事件驅動架構等關鍵原則的探討,為我提供瞭構建可伸縮係統的理論基礎。同時,作者也分享瞭在實際項目中如何通過持續的監控和調優來不斷優化係統的伸縮性,這對於我未來的工作實踐具有極大的指導意義。這本書讓我明白,一個真正可伸縮的架構,不僅僅是技術上的巧思,更是對業務發展趨勢的深刻洞察和前瞻性的規劃。
評分這本書給我帶來的,不僅僅是知識的積纍,更是一種思維方式的重塑。作者在介紹“麵嚮增長應用的高可用”時,那種將業務需求與技術實現緊密結閤的視角,讓我耳目一新。過去,我可能更多地關注技術的實現細節,而這本書則引導我思考,技術的最終目的是為瞭支撐業務的增長和用戶體驗的提升。書中對如何設計具備彈性和容錯能力的係統,以應對突發流量、服務降級等極端情況的闡述,都非常具有實操價值。它不僅僅是告訴我們“怎麼做”,更重要的是解釋瞭“為什麼這樣做”,以及這樣做背後的風險和收益。例如,在討論限流、熔斷、降級等策略時,作者都結閤瞭實際的業務場景,讓我們能夠更清晰地理解這些技術在保障應用可用性方麵所扮演的角色。此外,書中關於係統容量規劃、性能調優以及故障排查的經驗分享,也讓我受益匪淺。它讓我明白,高可用並非一蹴而就,而是需要持續的投入和精細化的運營。尤其是對“增長”這個關鍵詞的強調,讓我開始重新審視架構設計,思考如何讓架構本身具備“生長”的潛力,能夠更好地適應業務的快速迭代和市場變化。
本站所有內容均為互聯網搜尋引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度,google,bing,sogou 等
© 2025 book.coffeedeals.club All Rights Reserved. 靜流書站 版權所有