所有分类
  • 所有分类
  • 精品课程
  • 课件资料
  • 标准资料
  • 资料手册
  • 图纸模型
  • 解说文案

Python微服务开发 [法]Tarek Ziade 2019年版

Python微服务开发  

作者:[法]Tarek Ziade  

出版时间:2019年版 

内容简介 

  使用Python工具生态系统降低微服务复杂性的实用方法 Web应用经常部署到云服务器,应用代码需要与诸多第三方服务交互。从理论上讲,可使用微服务架构来高效地构建此类应用,但在实际中,考虑到各部分间的交互难度,构建微服务架构并非易事。 《Python微服务开发》将指导你采用1佳的、成熟的构建方式,避开常见陷阱,克服问题,1终开发出多个较小的标准单元,将其组合成Web应用。本书紧贴实用,将指导你理解和运用TDD原则,使用Python 3及其卓越的工具生态系统来构建一切。通过学习本书,你将遵循1佳策略,使用Flask和Tox等工具来构建服务,实现服务之间的安全连接,在nginx中编写Lua脚本来构建Web应用防火墙功能(如速率限制),熟悉Docker在微服务中扮演的角色,并用Docker容器和AWS来部署服务。 1终,你将开发出一个基于微服务的完整Python应用,并精通掌握构建、设计、测试和部署Python微服务的基本原理。● 探讨微服务的含义和设计方式 ● 合理使用Python 3、Flask和Tox等工具来构建服务 ● 使用TDD方法 ● 探讨编写微服务文档的方式 ● 配置和打包代码的1佳方式 ● 与其他服务交互的方式以及相关挑战 ● 服务的安全性,以及服务的监控和扩展 ● 用Docker容器和AWS部署服务 

目录 

目    录 

第 1 章   理解微服务   1 

1.1  SOA的起源   2 

1.2  单体架构   2 

1.3  微服务架构   5 

1.4  微服务的益处   7 

1.4.1  分离团队的关注点   7 

1.4.2  更小的项目   8 

1.4.3  扩展和部署   8 

1.5  微服务的缺陷   9 

1.5.1  不合理的拆分   9 

1.5.2  更多的网络交互   9 

1.5.3  数据的存储和分享   10 

1.5.4  兼容性问题   10 

1.5.5  测试   10 

1.6  使用Python实现微服务   11 

1.6.1  WSGI标准   12 

1.6.2  greenlet和gevent模块   13 

1.6.3  Twisted和Tornado模块   15 

1.6.4  asyncio模块   16 

1.6.5  语言性能   18 

1.7  本章小结   20 

第 2 章   Flask框架   21 

2.1  选择Python版本   22 

2.2  Flask如何处理请求   23 

2.2.1  路由匹配   26 

2.2.2  请求   30 

2.2.3  响应   32 

2.3  Flask的内置特性   33 

2.3.1  Session对象   34 

2.3.2  全局值   34 

2.3.3  信号   35 

2.3.4  扩展和中间件   37 

2.3.5  模板   38 

2.3.6  配置   40 

2.3.7  Blueprint   42 

2.3.8  错误处理和调试   43 

2.4  微服务应用的骨架   47 

2.5  本章小结   49 

第 3 章   良性循环:编码、测试和写文档   51 

3.1  各种测试类型的差异   52 

3.1.1  单元测试   53 

3.1.2  功能测试   56 

3.1.3  集成测试   58 

3.1.4  负载测试   59 

3.1.5  端到端测试   61 

3.2  使用WebTest   62 

3.3  使用pytest和Tox   64 

3.4  开发者文档   67 

3.5  持续集成   71 

3.5.1  Travis-CI   72 

3.5.2  ReadTheDocs   73 

3.5.3  Coveralls   73 

3.6  本章小结   75 

第 4 章   设计Runnerly   77 

4.1  Runnerly应用   77 

4.2  单体设计   79 

4.2.1  模型   80 

4.2.2  视图与模板   80 

4.2.3  后台任务   84 

4.2.4  身份验证和授权   88 

4.2.5  单体设计汇总   92 

4.3  拆分单体   93 

4.4  数据服务   94 

4.5  使用Open API 2.0   95 

4.6  进一步拆分   97 

4.7  本章小结   98 

第 5 章   与其他服务交互   101 

5.1  同步调用   102 

5.1.1  在Flask应用中使用Session   103 

5.1.2  连接池   107 

5.1.3  HTTP缓存头   108 

5.1.4  改进数据传输   111 

5.1.5  同步总结   115 

5.2  异步调用   116 

5.2.1  任务队列   116 

5.2.2  主题队列   117 

5.2.3  发布/订阅模式   122 

5.2.4  AMQP上的RPC   122 

5.2.5  异步总结   122 

5.3  测试服务间交互   123 

5.3.1  模拟同步调用   123 

5.3.2  模拟异步调用   124 

5.4  本章小结   127 

第 6 章   监控服务   129 

6.1  集中化日志   129 

6.1.1  设置Graylog   131 

6.1.2  向Graylog发送日志   134 

6.1.3  添加扩展字段   136 

6.2  性能指标   137 

6.2.1  系统指标   138 

6.2.2  代码指标   140 

6.2.3  Web服务器指标   142 

6.3  本章小结   143 

第 7 章   保护服务   145 

7.1  OAuth2协议   146 

7.2  基于令牌的身份验证   147 

7.2.1  JWT标准   148 

7.2.2  PyJWT   150 

7.2.3  基于证书的X.509身份验证   151 

7.2.4  TokenDealer微服务   154 

7.2.5  使用TokenDealer   157 

7.3  Web应用防火墙   160 

7.4  保护代码   166 

7.4.1  断言传入的数据   166 

7.4.2  限制应用的范围   170 

7.4.3  使用Bandit linter   171 

7.5  本章小结   174 

第 8 章   综合运用   175 

8.1  构建ReactJS仪表盘   176 

8.1.1  JSX语法   176 

8.1.2  React组件   177 

8.2  ReactJS与Flask   181 

8.2.1  使用 bower、npm和babel   182 

8.2.2  跨域资源共享   185 

8.3  身份验证与授权   188 

8.3.1  与数据服务交互   188 

8.3.2  获取Strava令牌   189 

8.3.3  JavaScript身份验证   191 

8.4  本章小结   192 

第 9 章   打包和运行Runnerly   195 

9.1  打包工具链   196 

9.1.1  一些定义   196 

9.1.2  打包   197 

9.1.3  版本控制   204 

9.1.4  发布   206 

9.1.5  分发   208 

9.2  运行所有微服务   210 

9.3  进程管理   213 

9.4  本章小结   216 

第 10 章    容器化服务   217 

10.1  何为Docker?   218 

10.2  Docker简介   219 

10.3  在Docker中运行Flask   221 

10.4  完整的栈——OpenResty、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  集群和初始化简介   231 

10.6  本章小结   233 

第 11 章   在AWS上部署   235 

11.1  AWS总览   236 

11.2  路由:Route53、ELB和AutoScaling   237 

11.3  执行:EC2和Lambda   237 

11.4  存储:EBS、S3、RDS、ElasticCache和CloudFront   238 

11.4.1  消息:SES、SQS和SNS   240 

11.4.2  初始化资源和部署:CloudFormation和ECS   241 

11.5  在AWS上部署简介   242 

11.5.1  创建AWS账号   242 

11.5.2  使用CoreOS在EC2上部署   244 

11.6  使用ECS 部署   247 

11.7  Route53   251 

11.8  本章小结   253 

第 12 章  接下来做什么?   255 

12.1  迭代器和生成器   256 

12.2  协同程序   259 

12.3  asyncio库   260 

12.4  aiohttp框架   262 

12.5  Sanic   262 

12.6  异步和同步   264 

12.7  本章小结   265 

资源下载
下载价格10 金币
VIP免费
0
没有账号?注册  忘记密码?

社交账号快速登录