Python雲原生:構建應對海量用戶數據的高可擴展Web應用

Python雲原生:構建應對海量用戶數據的高可擴展Web應用

作者: 馬尼什·塞西 (Manish Sethi)
出版社: 電子工業
出版在: 2018-06-01
ISBN-13: 9787121341779
ISBN-10: 7121341778
裝訂格式: 平裝
總頁數: 324 頁





內容描述


本書以一個應用開發貫穿始終,從雲原生和微服務的概念原理講起,使用Python構建雲原生應用,並使用React構建Web視圖。為了應對大規模的因特網流量,使用了Flux構建UI和事件溯源及CQRS模式。考慮到Web應用的安全性,本書對此也給出瞭解決方案。書中對於關鍵步驟進行了詳細講解並給出運行結果。讀者可以利用Docker容器、CI/CD工具,敏捷構建和發布本書示例中的應用到AWS、Azure這樣的公有雲平臺上,再利用平臺工具對基礎設施和應用的運行進行持續監控。


目錄大綱


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


作者介紹


Manish Sethi是一名在印度班加羅爾工作的工程師。在他的職業生涯中,曾為初創公司和財富10強公司工作,幫助企業採用雲原生方法來構建大規模可擴展產品。他經常花時間學習和使用新技術,並積極地使用無服務器架構、機器學習和深度學習等方法解決實際問題。他還撰寫博客,在聚會上發表演講,從而為班加羅爾DevOps和Docker社區貢獻自己的所學。
譯者簡介
宋淨超,就職於螞蟻雲金融信息服務有限公司,Kubernetes與雲原生應用佈道者,Service Mesh社區聯合發起人。擁有多年的Hadoop大數據平台的運維管理經驗,熟悉Hadoop和Docker生態系統和PaaS平台,關注開源軟件及Docker 、Kubernetes的前沿發展,關注Kubernetes和TensorFlow的實踐。




相關書籍

Cloud Computing in Ocean and Atmospheric Sciences

作者 Tiffany C Vance (Editor) Nazila Merati (Editor) Chaowei Yang (Editor) May Yuan (Editor

2018-06-01

Identity, Authentication, and Access Management in OpenStack: Implementing and Deploying Keystone(Paperback)

作者 Steve Martinelli Henry Nash Brad Topol

2018-06-01

Azure DevOps 顧問實戰

作者 董大偉

2018-06-01