雲原生是雲計算時代的發展趨勢和必然結果,將持續領航雲時代架構理念
用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章 監控雲應用,介紹不同的基礎設施和應用的監控工具。
我是一名對技術充滿好奇心的學習者,尤其對那些能夠解決實際問題的技術領域情有獨鍾。最近,我一直在關注Web應用的性能優化和可擴展性問題,因為我所在的公司業務發展迅速,用戶量增長麯綫相當陡峭。在瀏覽技術書籍時,這本書的標題《Python雲原生:構建應對海量用戶數據的高可擴展Web應用》立刻吸引瞭我的眼球。它精準地抓住瞭我目前麵臨的挑戰,即如何在有限的資源和不斷增長的需求之間找到平衡。我特彆想瞭解書中是如何將Python這門靈活且功能強大的語言與雲原生架構相結閤的。我想象中的這本書,應該不僅僅是理論的堆砌,更需要有實際操作的指導。比如,書中是否會介紹如何利用Kubernetes進行容器編排,如何實現服務的自動化部署和伸縮,以及如何在雲平颱上有效地管理數據庫和緩存。我希望這本書能夠為我提供一套清晰的路綫圖,讓我能夠從零開始,逐步掌握構建高可用、高性能Web應用的秘訣,並最終能夠自信地應對海量用戶數據的並發訪問。
評分我是一名對編程充滿熱情,並且希望不斷提升自己技能的開發者。最近,我發現周圍的同事和行業內的技術文章都在頻繁提及“雲原生”這個概念,我對此産生瞭濃厚的興趣,並渴望深入瞭解它。同時,我目前在Web應用開發方麵,尤其是在處理用戶量激增和數據爆發的場景時,經常會遇到性能瓶頸和擴展性難題。這本書的名字《Python雲原生:構建應對海量用戶數據的高可擴展Web應用》,簡直就像是為我量身定做的一樣。我非常期待書中能夠為我揭示Python語言在雲原生環境下的強大潛力和應用方法。我希望這本書不僅僅停留在理論層麵,而是能夠提供一套切實可行的解決方案,指導我如何利用Python來構建能夠輕鬆應對海量用戶訪問和數據的Web應用。比如,書中是否會介紹如何利用Python的異步編程能力來提升並發處理效率,如何結閤雲原生服務(如雲數據庫、消息隊列、對象存儲)來構建健壯的應用,以及如何通過自動化部署和監控來保障係統的穩定運行。
評分作為一個在編程領域摸爬滾打瞭多年的開發者,我對那些能夠真正改變我工作方式和思維模式的書籍有著極高的追求。這本書的標題,特彆是“雲原生”和“高可擴展Web應用”這些關鍵詞,讓我瞬間感覺它可能蘊含著我一直在尋找的答案。我接觸過很多Web應用的開發,也經曆過係統在流量高峰期崩潰的窘境,那種感覺無疑是令人沮喪的。因此,我對這本書寄予厚望,希望它能提供一種全新的視角來思考和解決這類問題。我期待書中能夠深入剖析雲原生架構的核心理念,例如微服務、容器化、聲明式API、服務網格等等,並詳細闡述如何利用Python語言的優勢,將這些理念落地。我特彆關注書中是否會分享一些“套路”或者“範式”,能夠指導我如何設計齣優雅且易於維護的係統架構,並且在應對海量數據時,能夠保持齣色的性能和穩定性。如果書中能夠提供一些來自真實項目經驗的案例,那就更棒瞭,因為真實場景下的挑戰和解決方案往往比純粹的理論更能啓發人。
評分這本書的封麵設計倒是挺吸引人的,一種科技感與海洋的蔚藍交織在一起,仿佛預示著在廣闊的雲端之上,用Python構建起一座座堅實的“島嶼”來承載數據洪流。我對“雲原生”這個概念一直很感興趣,但總覺得它有些縹緲,好像是架構師們纔能觸及的領域。我平時主要做一些後端開發,也接觸過一些Web應用,但當用戶量逐漸增長,尤其是在節假日促銷或者一些熱門事件爆發的時候,係統的穩定性就開始齣現各種問題,響應速度也慢得讓人抓狂。我嘗試過一些優化手段,比如數據庫索引、緩存層,但總感覺治標不治本。這本書的書名直接點齣瞭“高可擴展Web應用”,這正是我目前最迫切需要解決的痛點。我希望它能像一本“武林秘籍”一樣,詳細講解如何在雲原生環境下,利用Python的特性,一步步地構建齣能夠輕鬆應對海量用戶訪問和數據的強大係統。我對書中的案例非常期待,希望能看到一些具體的代碼示例,甚至是部署到雲平颱上的完整流程,這樣我纔能真正學到“怎麼做”而不是“為什麼這麼做”。
評分我對技術趨勢的洞察力嚮來比較敏銳,近幾年來,“雲原生”這個詞幾乎滲透到瞭IT行業的每一個角落,從基礎設施到應用開發,似乎都在往這個方嚮靠攏。我一直對這個概念感到好奇,尤其是它如何賦能Web應用的開發,使其能夠應對日益增長的用戶群體和海量數據的挑戰。這本書的標題,《Python雲原生:構建應對海量用戶數據的高可擴展Web應用》,正是我一直在尋找的能夠將Python這門流行語言與前沿的雲原生技術相結閤的實踐指南。我希望這本書能夠提供一個清晰的框架,讓我理解雲原生架構的組件和原理,例如容器化技術(Docker)、容器編排(Kubernetes)、無服務器計算(Serverless)等,並且能夠展示如何利用Python來開發、部署和管理這些雲原生應用。我特彆期待書中能有詳細的案例分析,演示如何利用Python及其生態係統中的各種工具,構建齣具有高可用性、彈性伸縮能力,並且能夠高效處理海量用戶數據的Web應用程序。
本站所有內容均為互聯網搜尋引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度,google,bing,sogou 等
© 2025 book.coffeedeals.club All Rights Reserved. 靜流書站 版權所有