编辑推荐

适读人群:"网页制作工具-程序设计"

云原生是云计算时代的发展趋势和必然结果,将持续领航云时代架构理念

用Python语言进行开发,易如门,易掌握,集现今诸多热点技术之大成

流程完整,示例具体详细,一个实际开发案例贯穿始终,全面开放代码

内容简介

《Python云原生:构建应对海量用户数据的高可扩展Web应用》以一个应用开发贯穿始终,从云原生和微服务的概念原理讲起,使用Python构建云原生应用,并使用React构建Web视图。为了应对大规模的互联网流量,使用了Flux构建UI和事件溯源及CQRS模式。考虑到Web应用的安全性,《Python云原生:构建应对海量用户数据的高可扩展Web应用》对此也给出了解决方案。书中对于关键步骤进行了详细讲解并给出运行结果。读者可以利用Docker容器、CI/CD工具,敏捷构建和发布《Python云原生:构建应对海量用户数据的高可扩展Web应用》示例中的应用到AWS、Azure这样的公有云平台上,再利用平台工具对基础设施和应用的运行进行持续监控。

作者简介

ManishSethi是一名在印度班加罗尔工作的工程师。在他的职业生涯中,曾为初创公司和财富10强公司工作,帮助企业采用云原生方法来构建大规模可扩展产品。他经常花时间学习和使用新技术,并积极地使用无服务器架构、机器学习和深度学习等方法解决实际问题。他还撰写博客,在聚会上发表演讲,从而为班加罗尔DevOps和Docker社区贡献自己的所学。


译者简介

宋净超,就职于蚂蚁金服,Kubernetes及云原生应用布道师,ServiceMesh爱好者社区联合发起人。乐于分享,拥抱开源,活跃于Kubernetes及微服务开发者社区。经常作为讲师在Qcon、ArchSummit等技术会议上进行分享,也常参与云栖大会等行业会议和线下Meetup。喜欢在个人博客(https://jimmysong.io)上发表见解,发布开源教程。业余时间喜欢摄影和旅游。

目录

1云原生应用和微服务简介1

云计算简介2

软件即服务3

平台即服务4

基础设施即服务4

云原生概念5

云原生为何物?为何重要5

云原生运行时环境6

云原生架构6

理解十二要素应用9

设置Python环境11

安装Git11

安装和配置Python19

熟悉GitHub和Git命令26

本章小结27

2使用Python构建微服务29

Python概念解析29

模块29

函数30

微服务模型31

构建微服务32

构建user资源的方法38

构建tweet资源的方法47

测试RESTfulAPI52

单元测试53

本章小结56

3使用Python构建Web应用57

应用入门58

创建应用程序用户59

使用Observable和AJAX61

绑定数据到adduser模板63

用户发送推文65

在推文模板上使用Observable和AJAX67

绑定数据到addtweet模版69

CORS——跨源资源共享71

Session管理72

Cookies75

本章小结76

4与数据服务交互77

MongoDB有什么优势,为什么要使用它77

MongoDB中的术语78

安装MongoDB79

初始化MongoDB数据库80

在微服务中集成MongoDB82

处理user资源83

处理推文资源90

本章小结93

5使用React构建Web视图95

理解React95

配置React环境96

安装node96

创建package.json97

使用React构建webViews98

在微服务中集成Web视图106

用户验证109

用户登录109

用户注册111

用户资料114

用户注销117

测试ReactwebViews117

Jest118

Selenium118

本章小结118

6使用Flux来构建UI以应对大规模流量119

Flux介绍119

Flux概念120

在UI中添加日期121

使用Flux创建UI121

动作和分派器122

数据源125

本章小结134

7事件溯源与CQRS135

简介136

理解事件溯源138

事件溯源定律140

CQRS介绍142

CQRS架构的优点144

事件溯源与CQRS面临的挑战145

应对挑战146

解决问题146

使用Kafka作为事件存储151

使用Kafka做事件溯源152

工作原理154

本章小结154

8Web应用的安全性155

网络安全性和应用安全性155

网络应用栈155

开发安全的Web应用程序建议176

本章小结176

9持续交付177

持续集成与持续交付的变迁177

理解SDLC177

敏捷开发流程178

持续集成180

Jenkins持续集成工具182

安装Jenkins182

配置Jenkins185

Jenkins自动化配置188

Jenkins安全配置189

插件管理190

版本控制系统191

设置Jenkinsjob191

理解持续交付198

持续交付的诉求198

持续交付与持续部署199

本章小结199

10应用容器化201

Docker介绍201

关于Docker和虚拟化的一些事实202

DockerEngine——Docker的骨干202

配置Docker环境203

DockerSwarm206

在Docker中部署应用210

构建和运行MongoDBDocker服务211

DockerHub是用来干什么的214

DockerCompose221

本章小结223

11部署到AWS云平台225

AWS入门225

在AWS上构建应用程序基础架构227

生成认证密钥229

Terraform——基础设施即代码构建工具233

CloudFormation——构建基础设施即代码的AWS工具244

云原生应用的持续部署251

工作原理252

本章小结259

12部署到Azure云平台261

MicrosoftAzure入门261

MicrosoftAzure基本知识263

在Azure中创建虚拟机265

在Azure中使用JenkinsCI/CD流水线280

本章小结285

13监控云应用287

云平台上的监控287

基于AWS的服务288

CloudWatch288

CloudTrail293

AWSConfigservice294

MicrosoftAzure服务296

ApplicationInsights296

ELK技术栈介绍299

开源监控工具305

Prometheus305

本章小结308

前言/序言

  译者序
  《Python云原生:构建应对海量用户数据的高可扩展Web应用》主要讲解如何使用Python来构建云原生应用,其中包含了对云原生应用架构和微服务概念的解析,还包括了使用React来构建WebUI,使用MongoDB来存储数据,使用Kafka消息队列、CQRS和事件溯源的方式来支持分布式处理等内容。然后详细演示了如何使用Jenkins来做CI/CD,将应用部署到AWS或Azure云平台上。
  整《Python云原生:构建应对海量用户数据的高可扩展Web应用》一气呵成,一个示例贯穿始终,即构建一个“微博”应用。记得当年我还在读大学的时候,还使用Java构建过类似微博的Web应用,那也是我第一次构建Web应用,但是那时只是为了学习JSP和JavaWeb应用,也没有用到什么开发框架,而且只是在本地运行。我在看到《Python云原生:构建应对海量用户数据的高可扩展Web应用》时有种相见恨晚的感觉,如果当初我就读了这《Python云原生:构建应对海量用户数据的高可扩展Web应用》,那么使用Python构建一个可扩展的Web应用不是轻而易举吗?还可以将应用程序部署到云平台上,让自己的成果公之于众,这对于自己的技术生涯也是不小的激励。《Python云原生:构建应对海量用户数据的高可扩展Web应用》给出了构建应用的详细步骤和代码示例,甚至每一步的输出结果和页面截图都给出了,所以《Python云原生:构建应对海量用户数据的高可扩展Web应用》十分适合全栈工程师和想要使用Python构建云原生应用的开发者学习。
  Python也是我最喜欢的语言之一,它简单,优美,容易使用,而且是很多操作系统都内置支持的编程语言。Python有着众多第三方包和框架,使用它不仅可以快速开发Web应用,还可以进行数据分析、机器学习,甚至调用其他语言,所以有人将Python称为“胶水”语言。现在使用Python构建云原生应用又成了广大Python爱好者的新方向。
  在翻译《Python云原生:构建应对海量用户数据的高可扩展Web应用》前,我已经翻译过CloudNativeGo这《Python云原生:构建应对海量用户数据的高可扩展Web应用》,同时在很多会议和网站上分享过有关云原生的话题。还创建了“云原生应用架构”公众号(CloudNativeGo),欢迎读者朋友关注。也欢迎大家通过我的Twitter(@jimmysongio)、GitHub(https://github.com/rootsongjc)和博客(https://jimmysong.io)与我交流。由于译者的精力和时间有限,书中难免会出现一些纰漏,欢迎广大读者指正。
  Kubernetes与云原生应用布道者宋净超
  2018年5月于北京
  前言
  随着当今商业的迅速发展,企业为了支撑自身的迅速扩张,仅仅依靠自有的基础设施是远远不够的。因此,他们一直在追求利用云的弹性来构建支持高度可扩展应用程序的平台。
  《Python云原生:构建应对海量用户数据的高可扩展Web应用》是你一站式地了解使用Python构建云原生应用架构的理想读本。《Python云原生:构建应对海量用户数据的高可扩展Web应用》首先介绍了什么是云原生应用架构以及它们能够帮助你解决哪些问题。然后介绍了如何使用RESTAPI和Python构建微服务,并通过事件驱动的方式构建Web层。接下来,探讨了如何与数据服务进行交互,并使用React构建Web视图。之后详细介绍了应用程序的安全性和性能,以及如何在Docker中容器化你的服务。最后,讨论了如何在AWS和Azure平台上部署你的应用程序。在部署了应用程序后,围绕应用程序故障排查的一系列概念和技术结束了这《Python云原生:构建应对海量用户数据的高可扩展Web应用》。
  《Python云原生:构建应对海量用户数据的高可扩展Web应用》内容
  第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章监控云应用,介绍不同的基础设施和应用的监控工具。


其他推荐