SL251 9787121341779 9787121315169 9787121321092
Python雲原生 構建應對海量用戶數據的高可擴展Web應用
《Python雲原生:構建應對海量用戶數據的高可擴展Web應用》以一個應用開發貫穿始終,從雲原生和微服務的概念原理講起,使用Python構建雲原生應用,並使用React構建Web視圖。為瞭應對大規模的互聯網流量,使用瞭Flux構建UI和事件溯源及CQRS模式。考慮到Web應用的安全性,《Python雲原生:構建應對海量用戶數據的高可擴展Web應用》對此也給齣瞭解決方案。書中對於關鍵步驟進行瞭詳細講解並給齣運行結果。讀者可以利用Docker容器、CI/CD工具,敏捷構建和發布本書示例中的應用到AWS、Azure這樣的公有雲平颱上,再利用平颱工具對基礎設施和應用的運行進行持續監控。
前言 XIII
1 雲原生應用和微服務簡介 1
雲計算簡介 2
軟件即服務 3
平颱即服務 4
基礎設施即服務 4
雲原生概念 5
雲原生為何物?為何重要 5
雲原生運行時環境 6
雲原生架構 6
理解十二要素應用 9
設置Python環境 11
安裝Git 11
安裝和配置Python 19
熟悉GitHub和Git命令 26
本章小結 27
2 使用Python構建微服務 29
Python概念解析 29
模塊 29
函數 30
微服務模型 31
構建微服務 32
構建user資源的方法 38
構建tweet資源的方法 47
測試RESTful API 52
單元測試 53
本章小結 56
3 使用Python構建Web應用 57
應用入門 58
創建應用程序用戶 59
使用Observable和AJAX 61
綁定數據到adduser模闆 63
用戶發送推文 65
在推文模闆上使用Observable和AJAX 67
綁定數據到addtweet模版 69
CORS——跨源資源共享 71
Session管理 72
Cookies 75
本章小結 76
4 與數據服務交互 77
MongoDB有什麼優勢,為什麼要使用它 77
MongoDB中的術語 78
安裝MongoDB 79
初始化MongoDB數據庫 80
在微服務中集成MongoDB 82
處理user資源 83
處理推文資源 90
本章小結 93
5 使用React構建Web視圖 95
理解React 95
配置React環境 96
安裝node 96
創建package.json 97
使用React構建webViews 98
在微服務中集成Web視圖 106
用戶驗證 109
用戶登錄 109
用戶注冊 111
用戶資料 114
用戶注銷 117
測試React webViews 117
Jest 118
Selenium 118
本章小結 118
6 使用Flux來構建UI以應對大規模流量 119
Flux介紹 119
Flux概念 120
在UI中添加日期 121
使用Flux創建UI 121
動作和分派器 122
數據源 125
本章小結 134
7 事件溯源與CQRS 135
簡介 136
理解事件溯源 138
事件溯源定律 140
CQRS介紹 142
CQRS架構的優點 144
事件溯源與CQRS麵臨的挑戰 145
應對挑戰 146
解決問題 146
使用Kafka作為事件存儲 151
使用Kafka做事件溯源 152
工作原理 154
本章小結 154
8 Web應用的安全性 155
網絡安全性和應用安全性 155
網絡應用棧 155
開發安全的Web應用程序建議 176
本章小結 176
9 持續交付 177
持續集成與持續交付的變遷 177
理解SDLC 177
敏捷開發流程 178
持續集成 180
Jenkins持續集成工具 182
安裝Jenkins 182
配置Jenkins 185
Jenkins自動化配置 188
Jenkins安全配置 189
插件管理 190
版本控製係統 191
設置Jenkins job 191
理解持續交付 198
持續交付的訴求 198
持續交付與持續部署 199
本章小結 199
10 應用容器化 201
Docker介紹 201
關於Docker和虛擬化的一些事實 202
Docker Engine——Docker的骨乾 202
配置Docker環境 203
Docker Swarm 206
在Docker中部署應用 210
構建和運行MongoDB Docker服務 211
Docker Hub是用來乾什麼的 214
Docker Compose 221
本章小結 223
11 部署到AWS雲平颱 225
AWS入門 225
在AWS上構建應用程序基礎架構 227
生成認證密鑰 229
Terraform——基礎設施即代碼構建工具 233
CloudFormation——構建基礎設施即代碼的AWS工具 244
雲原生應用的持續部署 251
工作原理 252
本章小結 259
12 部署到Azure雲平颱 261
Microsoft Azure入門 261
Microsoft Azure基本知識 263
在Azure中創建虛擬機 265
在Azure中使用Jenkins CI/CD流水綫 280
本章小結 285
13 監控雲應用 287
雲平颱上的監控 287
基於AWS的服務 288
CloudWatch 288
CloudTrail 293
AWS Config service 294
Microsoft Azure服務 296
Application Insights 296
ELK技術棧介紹 299
開源監控工具 305
Prometheus 305
本章小結 308
雲原生應用架構實踐
針對企業如何采用雲原生架構實現的産品迭代能力、支持互聯網業務健康發展,《雲原生應用架構實踐》總結瞭一套可行的方法論。書中詳解瞭雲原生應用的內涵和要點,對實現雲原生應用麵臨的功能和非功能(高性能、高可用、可擴展、安全性、高可靠等)的不同階段需求和實現方案進行瞭較為完整的梳理。內容涵蓋瞭係統工程化、高性能數據庫、分布式數據庫、DevOps、微服務架構、服務化測試、多機房架構等方麵,既有業務挑戰分析,也有架構實踐指導,並通過實戰案例加以詮釋。
本書適閤希望采用雲計算幫助企業實現業務提升的 CTO、CIO、架構師等群體。
第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
本書旨在嚮開發人員展示如何構建適用於大流量、高並發場景下的雲原生Web應用。本書從搭建開發測試環境開始,逐步介紹使用Go語言構建微服務的方法,通過引入CI/CD流程和Wercker、Docker等工具將應用推送到雲中。結閤微服務構建中的後端服務、數據服務、事件溯源和CQRS模式、基於React和Flux的UI設計等,本書構建瞭一個基於Web的RPG遊戲WorldofFluxCraft,可以作為使用Go構建雲原生Web應用的參考,適閤於雲計算與Go語言編程從業者們閱讀。
1 雲之道 1
雲之道的優點 2
為什麼使用Go 8
本章小結 9
2 開始 11
正確的工具 11
配置Git 12
創建Go環境 14
-- 配置Go工作區 14
檢查環境 15
本章小結 16
3 Go入門 17
建立Hello cloud 18
使用基本函數 19
使用結構體 22
介紹Go接口 25
嚮結構體添加方法 25
使用第三方包 28
創建自有包 30
本章小結 34
4 持續交付 35
Docker介紹 36
與Wercker的持續集成 39
讀者練習:創建完整的開發管道 51
本章小結 53
5 在Go中構建微服務 55
設計API First的服務 55
架設微服務 59
構建Test First的服務 62
在雲端部署和運行 70
本章小結 72
6 運用後端服務 75
設計服務係統 75
測試優先構建依賴服務 77
在服務之間共享結構化數據 87
使用服務捆綁來外部化地址與元數據 90
服務發現 93
讀者練習 97
本章小結 98
7 構建數據服務 99
構建MongoDB存儲庫 100
集成測試一個Mongo-Backed服務 107
在雲中運行 115
本章小結 117
8 事件溯源和CQRS 119
現實源自事件 120
擁抱最終一緻性 123
CQRS簡介 124
事件溯源案例 126
代碼示例:管理無人機艦隊 128
構建命令處理程序服務 129
構建事件處理器 135
構建查詢處理程序服務 140
本章小結 141
9 使用Go構建Web應用程序 143
處理靜態文件和asset 143
支持客戶端 145
使用服務端模闆 148
處理錶單 150
使用cookie和會話狀態 151
使用Wercker構建和部署 153
本章小結 155
10 雲安全 157
保護Web應用程序 157
保護微服務 166
隱私和數據安全 170
讀者練習 172
本章小結 173
11 使用WebSockets 175
WebSockets解析 175
WebSockets的雲原生適應性 178
使用消息服務創建WebSockets應用 180
本章小結 184
12 使用React構建Web視圖 185
的形勢? 186
為什麼選擇React 186
React應用程序剖析 189
構建簡單的React應用程序 192
測試React應用程序 200
進一步閱讀 200
本章小結? 201
13 使用Flux構建可擴展的UI 203
Flux介紹 203
創建Flux應用程序 206
本章小結 215
14 創建完整應用World of FluxCraft 217
World of FluxCraft介紹 218
架構概覽 219
Flux GUI 222
命令處理 225
事件處理 226
維持現實服務的狀態 227
地圖管理 227
自動驗收測試 228
本章小結 230
15 結論 231
我們學到瞭什麼 231
下一步 233
附錄A 雲應用的故障排查 235
评分
评分
评分
评分
评分
评分
评分
评分
本站所有內容均為互聯網搜索引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度,google,bing,sogou 等
© 2025 tushu.tinynews.org All Rights Reserved. 求知書站 版权所有