發表於2024-12-21
雲原生是雲計算時代的發展趨勢和必然結果,將持續領航雲時代架構理念
用Python語言進行開發,易如門,易掌握,集現今諸多熱點技術之大成
流程完整,示例具體詳細,一個實際開發案例貫穿始終,全麵開放代碼
《Python雲原生:構建應對海量用戶數據的高可擴展Web應用》以一個應用開發貫穿始終,從雲原生和微服務的概念原理講起,使用Python構建雲原生應用,並使用React構建Web視圖。為瞭應對大規模的互聯網流量,使用瞭Flux構建UI和事件溯源及CQRS模式。考慮到Web應用的安全性,《Python雲原生:構建應對海量用戶數據的高可擴展Web應用》對此也給齣瞭解決方案。書中對於關鍵步驟進行瞭詳細講解並給齣運行結果。讀者可以利用Docker容器、CI/CD工具,敏捷構建和發布本書示例中的應用到AWS、Azure這樣的公有雲平颱上,再利用平颱工具對基礎設施和應用的運行進行持續監控。
Manish Sethi是一名在印度班加羅爾工作的工程師。在他的職業生涯中,曾為初創公司和財富10強公司工作,幫助企業采用雲原生方法來構建大規模可擴展産品。他經常花時間學習和使用新技術,並積極地使用無服務器架構、機器學習和深度學習等方法解決實際問題。他還撰寫博客,在聚會上發錶演講,從而為班加羅爾DevOps和Docker社區貢獻自己的所學。
譯者簡介
宋淨超,就職於螞蟻金服,Kubernetes及雲原生應用布道師,Service Mesh愛好者社區聯閤發起人。樂於分享,擁抱開源,活躍於Kubernetes及微服務開發者社區。經常作為講師在Qcon、ArchSummit等技術會議上進行分享,也常參與雲棲大會等行業會議和綫下Meetup。喜歡在個人博客(https://jimmysong.io)上發錶見解,發布開源教程。業餘時間喜歡攝影和旅遊。
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
譯者序
本書主要講解如何使用Python來構建雲原生應用,其中包含瞭對雲原生應用架構和微服務概念的解析,還包括瞭使用React來構建Web UI,使用MongoDB來存儲數據,使用Kafka消息隊列、CQRS和事件溯源的方式來支持分布式處理等內容。然後詳細演示瞭如何使用Jenkins來做CI/CD,將應用部署到AWS或Azure雲平颱上。
整本書一氣嗬成,一個示例貫穿始終,即構建一個“微博”應用。記得當年我還在讀大學的時候,還使用Java構建過類似微博的Web應用,那也是我第一次構建Web應用,但是那時隻是為瞭學習JSP和Java Web應用,也沒有用到什麼開發框架,而且隻是在本地運行。我在看到本書時有種相見恨晚的感覺,如果當初我就讀瞭這本書,那麼使用Python構建一個可擴展的Web應用不是輕而易舉嗎?還可以將應用程序部署到雲平颱上,讓自己的成果公之於眾,這對於自己的技術生涯也是不小的激勵。本書給齣瞭構建應用的詳細步驟和代碼示例,甚至每一步的輸齣結果和頁麵截圖都給齣瞭,所以本書十分適閤全棧工程師和想要使用Python構建雲原生應用的開發者學習。
Python也是我最喜歡的語言之一,它簡單,優美,容易使用,而且是很多操作係統都內置支持的編程語言。Python有著眾多第三方包和框架,使用它不僅可以快速開發Web應用,還可以進行數據分析、機器學習,甚至調用其他語言,所以有人將Python稱為“膠水”語言。現在使用Python構建雲原生應用又成瞭廣大Python愛好者的新方嚮。
在翻譯本書前,我已經翻譯過Cloud Native Go這本書,同時在很多會議和網站上分享過有關雲原生的話題。還創建瞭“雲原生應用架構”公眾號(CloudNativeGo),歡迎讀者朋友關注。也歡迎大傢通過我的Twitter(@jimmysongio)、GitHub(https://github.com/rootsongjc)和博客(https://jimmysong.io)與我交流。由於譯者的精力和時間有限,書中難免會齣現一些紕漏,歡迎廣大讀者指正。
Kubernetes與雲原生應用布道者 宋淨超
2018年5月於北京
前言
隨著當今商業的迅速發展,企業為瞭支撐自身的迅速擴張,僅僅依靠自有的基礎設施是遠遠不夠的。因此,他們一直在追求利用雲的彈性來構建支持高度可擴展應用程序的平颱。
本書是你一站式地瞭解使用Python構建雲原生應用架構的理想讀本。本書首先介紹瞭什麼是雲原生應用架構以及它們能夠幫助你解決哪些問題。然後介紹瞭如何使用REST API和Python構建微服務,並通過事件驅動的方式構建Web層。接下來,探討瞭如何與數據服務進行交互,並使用React構建Web視圖。之後詳細介紹瞭應用程序的安全性和性能,以及如何在Docker中容器化你的服務。最後,討論瞭如何在AWS和Azure平颱上部署你的應用程序。在部署瞭應用程序後,圍繞應用程序故障排查的一係列概念和技術結束瞭這本書。
本書內容
第1章 雲原生應用和微服務簡介,討論雲原生架構的基本概念和構建應用程序開發環境的方法。
第2章 使用Python構建微服務,構建自己的微服務知識體係並根據用例進行擴展。
第3章 使用Python構建Web應用,構建一個初始的Web應用程序並與微服務集成。
第4章 與數據服務交互,教你如何將應用程序遷移到不同的數據庫服務。
第5章 使用React構建Web視圖,討論如何使用React構建用戶界麵。
第6章 使用Flux來構建UI以應對大規模流量,幫助你理解如何使用Flux創建可擴展的應用程序。
第7章 事件溯源與CQRS,討論如何以事件形式存儲閤約(transaction)。
第8章 Web應用的安全性,討論如何讓你的應用程序免受外部威脅。
第9章 持續交付,介紹應用程序頻繁發布的相關知識。
第10章 應用容器化,討論容器服務和在Docker中運行應用程序的方法。
第11章 部署到AWS雲平颱,教你如何在AWS上構建基礎設施並建立應用程序的生産環境。
第12章 部署到Azure雲平颱,討論如何在Azure上構建基礎設施並建立應用程序的生産環境。
第13章 監控雲應用,介紹不同的基礎設施和應用的監控工具。
Python雲原生:構建應對海量用戶數據的高可擴展Web應用 下載 mobi pdf epub txt 電子書 格式 2024
Python雲原生:構建應對海量用戶數據的高可擴展Web應用 下載 mobi epub pdf 電子書Python雲原生:構建應對海量用戶數據的高可擴展Web應用 mobi epub pdf txt 電子書 格式下載 2024