注冊(cè) | 登錄讀書(shū)好,好讀書(shū),讀好書(shū)!
讀書(shū)網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書(shū)科學(xué)技術(shù)工業(yè)技術(shù)建筑科學(xué)建筑設(shè)計(jì)Python微服務(wù)開(kāi)發(fā)

Python微服務(wù)開(kāi)發(fā)

Python微服務(wù)開(kāi)發(fā)

定 價(jià):¥59.00

作 者: (法)塔里克·齊亞德
出版社: 清華大學(xué)出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

購(gòu)買(mǎi)這本書(shū)可以去


ISBN: 9787302524120 出版時(shí)間: 2019-03-01 包裝: 平裝
開(kāi)本: 16開(kāi) 頁(yè)數(shù): 284 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  使用Python工具生態(tài)系統(tǒng)降低微服務(wù)復(fù)雜性的實(shí)用方法 Web應(yīng)用經(jīng)常部署到云服務(wù)器,應(yīng)用代碼需要與諸多第三方服務(wù)交互。從理論上講,可使用微服務(wù)架構(gòu)來(lái)高效地構(gòu)建此類應(yīng)用,但在實(shí)際中,考慮到各部分間的交互難度,構(gòu)建微服務(wù)架構(gòu)并非易事。 《Python微服務(wù)開(kāi)發(fā)》將指導(dǎo)你采用1佳的、成熟的構(gòu)建方式,避開(kāi)常見(jiàn)陷阱,克服問(wèn)題,1終開(kāi)發(fā)出多個(gè)較小的標(biāo)準(zhǔn)單元,將其組合成Web應(yīng)用。本書(shū)緊貼實(shí)用,將指導(dǎo)你理解和運(yùn)用TDD原則,使用Python 3及其卓越的工具生態(tài)系統(tǒng)來(lái)構(gòu)建一切。通過(guò)學(xué)習(xí)本書(shū),你將遵循1佳策略,使用Flask和Tox等工具來(lái)構(gòu)建服務(wù),實(shí)現(xiàn)服務(wù)之間的安全連接,在nginx中編寫(xiě)Lua腳本來(lái)構(gòu)建Web應(yīng)用防火墻功能(如速率限制),熟悉Docker在微服務(wù)中扮演的角色,并用Docker容器和AWS來(lái)部署服務(wù)。 1終,你將開(kāi)發(fā)出一個(gè)基于微服務(wù)的完整Python應(yīng)用,并精通掌握構(gòu)建、設(shè)計(jì)、測(cè)試和部署Python微服務(wù)的基本原理?!?探討微服務(wù)的含義和設(shè)計(jì)方式 ● 合理使用Python 3、Flask和Tox等工具來(lái)構(gòu)建服務(wù) ● 使用TDD方法 ● 探討編寫(xiě)微服務(wù)文檔的方式 ● 配置和打包代碼的1佳方式 ● 與其他服務(wù)交互的方式以及相關(guān)挑戰(zhàn) ● 服務(wù)的安全性,以及服務(wù)的監(jiān)控和擴(kuò)展 ● 用Docker容器和AWS部署服務(wù)

作者簡(jiǎn)介

  Tarek Ziade,是一位Python 開(kāi)發(fā)人員,在Mozilla的服務(wù)團(tuán)隊(duì)工作,已使用法語(yǔ)和英語(yǔ)撰寫(xiě)多本Python書(shū)籍。Tarek創(chuàng)建了一個(gè)名為Afpy的法國(guó)Python用戶組,現(xiàn)居住在法國(guó)第戎市郊區(qū)。在工作之余,Tarek不忘陪伴家人。他另有兩個(gè)愛(ài)好:跑步和吹小號(hào)。可訪問(wèn)Tarek的個(gè)人博客(Fetchez le Python),并在Twitter上關(guān)注他(@tarek_ziade)。還可在亞馬上找到他撰寫(xiě)的另一本書(shū)Expert Python Programming,該書(shū)已由Packt出版。 感謝Packt團(tuán)隊(duì),以及幫助過(guò)我的以下技術(shù)精英:Stéfane Fermigier、William Kahn-Greene、Chris Kolosiwsky、Julien Vehent和Ryan Kelly。 感謝Amina、Milo、Suki和Freya給予我的愛(ài)和耐心支持。 希望在閱讀時(shí),你能享受到和我寫(xiě)本書(shū)時(shí)同樣的樂(lè)趣!

圖書(shū)目錄

目    錄
第 1 章   理解微服務(wù)   1
1.1  SOA的起源   2
1.2  單體架構(gòu)   2
1.3  微服務(wù)架構(gòu)   5
1.4  微服務(wù)的益處   7
1.4.1  分離團(tuán)隊(duì)的關(guān)注點(diǎn)   7
1.4.2  更小的項(xiàng)目   8
1.4.3  擴(kuò)展和部署   8
1.5  微服務(wù)的缺陷   9
1.5.1  不合理的拆分   9
1.5.2  更多的網(wǎng)絡(luò)交互   9
1.5.3  數(shù)據(jù)的存儲(chǔ)和分享   10
1.5.4  兼容性問(wèn)題   10
1.5.5  測(cè)試   10
1.6  使用Python實(shí)現(xiàn)微服務(wù)   11
1.6.1  WSGI標(biāo)準(zhǔn)   12
1.6.2  greenlet和gevent模塊   13
1.6.3  Twisted和Tornado模塊   15
1.6.4  asyncio模塊   16
1.6.5  語(yǔ)言性能   18
1.7  本章小結(jié)   20
第 2 章   Flask框架   21
2.1  選擇Python版本   22
2.2  Flask如何處理請(qǐng)求   23
2.2.1  路由匹配   26
2.2.2  請(qǐng)求   30
2.2.3  響應(yīng)   32
2.3  Flask的內(nèi)置特性   33
2.3.1  Session對(duì)象   34
2.3.2  全局值   34
2.3.3  信號(hào)   35
2.3.4  擴(kuò)展和中間件   37
2.3.5  模板   38
2.3.6  配置   40
2.3.7  Blueprint   42
2.3.8  錯(cuò)誤處理和調(diào)試   43
2.4  微服務(wù)應(yīng)用的骨架   47
2.5  本章小結(jié)   49
第 3 章   良性循環(huán):編碼、測(cè)試和寫(xiě)文檔   51
3.1  各種測(cè)試類型的差異   52
3.1.1  單元測(cè)試   53
3.1.2  功能測(cè)試   56
3.1.3  集成測(cè)試   58
3.1.4  負(fù)載測(cè)試   59
3.1.5  端到端測(cè)試   61
3.2  使用WebTest   62
3.3  使用pytest和Tox   64
3.4  開(kāi)發(fā)者文檔   67
3.5  持續(xù)集成   71
3.5.1  Travis-CI   72
3.5.2  ReadTheDocs   73
3.5.3  Coveralls   73
3.6  本章小結(jié)   75
第 4 章   設(shè)計(jì)Runnerly   77
4.1  Runnerly應(yīng)用   77
4.2  單體設(shè)計(jì)   79
4.2.1  模型   80
4.2.2  視圖與模板   80
4.2.3  后臺(tái)任務(wù)   84
4.2.4  身份驗(yàn)證和授權(quán)   88
4.2.5  單體設(shè)計(jì)匯總   92
4.3  拆分單體   93
4.4  數(shù)據(jù)服務(wù)   94
4.5  使用Open API 2.0   95
4.6  進(jìn)一步拆分   97
4.7  本章小結(jié)   98
第 5 章   與其他服務(wù)交互   101
5.1  同步調(diào)用   102
5.1.1  在Flask應(yīng)用中使用Session   103
5.1.2  連接池   107
5.1.3  HTTP緩存頭   108
5.1.4  改進(jìn)數(shù)據(jù)傳輸   111
5.1.5  同步總結(jié)   115
5.2  異步調(diào)用   116
5.2.1  任務(wù)隊(duì)列   116
5.2.2  主題隊(duì)列   117
5.2.3  發(fā)布/訂閱模式   122
5.2.4  AMQP上的RPC   122
5.2.5  異步總結(jié)   122
5.3  測(cè)試服務(wù)間交互   123
5.3.1  模擬同步調(diào)用   123
5.3.2  模擬異步調(diào)用   124
5.4  本章小結(jié)   127
第 6 章   監(jiān)控服務(wù)   129
6.1  集中化日志   129
6.1.1  設(shè)置Graylog   131
6.1.2  向Graylog發(fā)送日志   134
6.1.3  添加擴(kuò)展字段   136
6.2  性能指標(biāo)   137
6.2.1  系統(tǒng)指標(biāo)   138
6.2.2  代碼指標(biāo)   140
6.2.3  Web服務(wù)器指標(biāo)   142
6.3  本章小結(jié)   143
第 7 章   保護(hù)服務(wù)   145
7.1  OAuth2協(xié)議   146
7.2  基于令牌的身份驗(yàn)證   147
7.2.1  JWT標(biāo)準(zhǔn)   148
7.2.2  PyJWT   150
7.2.3  基于證書(shū)的X.509身份驗(yàn)證   151
7.2.4  TokenDealer微服務(wù)   154
7.2.5  使用TokenDealer   157
7.3  Web應(yīng)用防火墻   160
7.4  保護(hù)代碼   166
7.4.1  斷言傳入的數(shù)據(jù)   166
7.4.2  限制應(yīng)用的范圍   170
7.4.3  使用Bandit linter   171
7.5  本章小結(jié)   174
第 8 章   綜合運(yùn)用   175
8.1  構(gòu)建ReactJS儀表盤(pán)   176
8.1.1  JSX語(yǔ)法   176
8.1.2  React組件   177
8.2  ReactJS與Flask   181
8.2.1  使用 bower、npm和babel   182
8.2.2  跨域資源共享   185
8.3  身份驗(yàn)證與授權(quán)   188
8.3.1  與數(shù)據(jù)服務(wù)交互   188
8.3.2  獲取Strava令牌   189
8.3.3  JavaScript身份驗(yàn)證   191
8.4  本章小結(jié)   192
第 9 章   打包和運(yùn)行Runnerly   195
9.1  打包工具鏈   196
9.1.1  一些定義   196
9.1.2  打包   197
9.1.3  版本控制   204
9.1.4  發(fā)布   206
9.1.5  分發(fā)   208
9.2  運(yùn)行所有微服務(wù)   210
9.3  進(jìn)程管理   213
9.4  本章小結(jié)   216
第 10 章    容器化服務(wù)   217
10.1  何為Docker?   218
10.2  Docker簡(jiǎn)介   219
10.3  在Docker中運(yùn)行Flask   221
10.4  完整的?!狾penResty、Circus和Flask   223
10.4.1  OpenResty   224
10.4.2  Circus   226
10.5  基于Docker的部署   228
10.5.1  Docker Compose   230
10.5.2  集群和初始化簡(jiǎn)介   231
10.6  本章小結(jié)   233
第 11 章   在AWS上部署   235
11.1  AWS總覽   236
11.2  路由:Route53、ELB和AutoScaling   237
11.3  執(zhí)行:EC2和Lambda   237
11.4  存儲(chǔ):EBS、S3、RDS、ElasticCache和CloudFront   238
11.4.1  消息:SES、SQS和SNS   240
11.4.2  初始化資源和部署:CloudFormation和ECS   241
11.5  在AWS上部署簡(jiǎn)介   242
11.5.1  創(chuàng)建AWS賬號(hào)   242
11.5.2  使用CoreOS在EC2上部署   244
11.6  使用ECS 部署   247
11.7  Route53   251
11.8  本章小結(jié)   253
第 12 章  接下來(lái)做什么?   255
12.1  迭代器和生成器   256
12.2  協(xié)同程序   259
12.3  asyncio庫(kù)   260
12.4  aiohttp框架   262
12.5  Sanic   262
12.6  異步和同步   264
12.7  本章小結(jié)   265

本目錄推薦

掃描二維碼
Copyright ? 讀書(shū)網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)