SL251 9787121341779 9787121315169 9787121321092
Python云原生 构建应对海量用户数据的高可扩展Web应用
《Python云原生:构建应对海量用户数据的高可扩展Web应用》以一个应用开发贯穿始终,从云原生和微服务的概念原理讲起,使用Python构建云原生应用,并使用React构建Web视图。为了应对大规模的互联网流量,使用了Flux构建UI和事件溯源及CQRS模式。考虑到Web应用的安全性,《Python云原生:构建应对海量用户数据的高可扩展Web应用》对此也给出了解决方案。书中对于关键步骤进行了详细讲解并给出运行结果。读者可以利用Docker容器、CI/CD工具,敏捷构建和发布本书示例中的应用到AWS、Azure这样的公有云平台上,再利用平台工具对基础设施和应用的运行进行持续监控。
前言 XIII
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
云原生应用架构实践
针对企业如何采用云原生架构实现的产品迭代能力、支持互联网业务健康发展,《云原生应用架构实践》总结了一套可行的方法论。书中详解了云原生应用的内涵和要点,对实现云原生应用面临的功能和非功能(高性能、高可用、可扩展、安全性、高可靠等)的不同阶段需求和实现方案进行了较为完整的梳理。内容涵盖了系统工程化、高性能数据库、分布式数据库、DevOps、微服务架构、服务化测试、多机房架构等方面,既有业务挑战分析,也有架构实践指导,并通过实战案例加以诠释。
本书适合希望采用云计算帮助企业实现业务提升的 CTO、CIO、架构师等群体。
第1章 互联网系统架构的挑战 2
1.1 云应用架构技术发展 4
1.2 云平台下架构的不同点 5
1.2.1 开发模式的区别 6
1.2.2 交付模式的区别 7
1.2.3 架构设计的区别 8
1.3 云原生应用架构 10
1.4 架构演化发展历程 21
1.4.1 初创期架构 22
1.4.2 快速成长期架构 24
1.4.3 分布式服务架构 26
1.5 云计算服务介绍 29
1.6 云计算解决方案 31
1.7 案例概述 34
1.7.1 背景介绍 34
1.7.2 环境要求 36
1.7.3 项目构建 36
1.7.4 项目运行 36
1.7.5 相关技术介绍 37
小结 40
第2章 从0到1工程实践 41
2.1 工程化 41
2.1.1 工程模板 41
2.1.2 模块化 45
2.1.3 工程化构建 50
2.1.4 代码规范及检查 53
2.1.5 代码版本管理 54
2.1.6 环境划分 61
2.2 基于容器工程化 62
2.2.1 Docker及作用 63
2.2.2 Docker镜像及操作 66
2.2.3 Docker容器及操作 73
2.2.4 基于容器工程化 77
2.3 实战示例 78
小结 84
第3章 初创期应用架构实践 85
3.1 技术选型 85
3.1.1 业务框架选型 85
3.1.2 结构化数据存储 92
3.1.3 缓存选型 102
3.1.4 静态资源存储 106
3.2 架构实践 109
3.2.1 快速迭代 109
3.2.2 高可用与负载均衡 111
3.2.3 交付与部署 117
3.2.4 Web应用安全 119
3.3 应用监控 127
3.3.1 应用监控指标 127
3.3.2 应用进程监控 128
3.3.3 操作系统监控 129
小结 136
第4章 快速成长期应用架构实践 137
4.1 关键业务需求 137
4.1.1 计数与排序 137
4.1.2 秒杀 146
4.1.3 全文检索 149
4.1.4 日志收集 154
4.2 架构实践 156
4.2.1 前端系统扩展 157
4.2.2 无状态服务设计 157
4.2.3 在线水平扩展 160
4.2.4 后端系统扩展 163
4.2.5 系统通信 173
4.2.6 消息中间件 176
4.3 系统优化 181
4.3.1 静态资源分离 182
4.3.2 数据库调优 185
4.3.3 系统高可用 193
4.4 应用诊断 200
4.4.1 应用健康检查 200
4.4.2 性能问题诊断 204
4.4.3 基于日志的故障诊断 210
4.5 数据库诊断 214
4.6 DevOps 223
4.6.1 持续集成 224
4.6.2 持续交付 227
4.6.3 灰度发布 229
4.6.4 大应用编排 231
4.7 安全设计 246
4.7.1 入侵检测 247
4.7.2 防劫持攻击 249
小结 255
第5章 稳定期服务化应用架构实践 256
5.1 业务拆分 256
5.2 统一配置中心 259
5.3 分布式定时任务 261
5.3.1 分布式定时任务设计 262
5.3.2 业界流行的开源框架 264
5.4 分布式锁系统 274
5.5 微服务化架构 277
5.5.1 服务发现 279
5.5.2 服务治理 302
5.5.3 微服务框架 307
5.5.4 服务编排 313
5.5.5 微服务测试 321
5.6 分布式数据一致性 333
5.6.1 CAP和BASE理论 333
5.6.2 一致性模型 336
5.6.3 典型的解决方案 337
5.7 同城多活 344
5.7.1 应用同城多活 345
5.7.2 跨AZ负载均衡 347
5.8 故障诊断 348
小结 353
参考文献 354
技术术语 356
本书旨在向开发人员展示如何构建适用于大流量、高并发场景下的云原生Web应用。本书从搭建开发测试环境开始,逐步介绍使用Go语言构建微服务的方法,通过引入CI/CD流程和Wercker、Docker等工具将应用推送到云中。结合微服务构建中的后端服务、数据服务、事件溯源和CQRS模式、基于React和Flux的UI设计等,本书构建了一个基于Web的RPG游戏WorldofFluxCraft,可以作为使用Go构建云原生Web应用的参考,适合于云计算与Go语言编程从业者们阅读。
1 云之道 1
云之道的优点 2
为什么使用Go 8
本章小结 9
2 开始 11
正确的工具 11
配置Git 12
创建Go环境 14
-- 配置Go工作区 14
检查环境 15
本章小结 16
3 Go入门 17
建立Hello cloud 18
使用基本函数 19
使用结构体 22
介绍Go接口 25
向结构体添加方法 25
使用第三方包 28
创建自有包 30
本章小结 34
4 持续交付 35
Docker介绍 36
与Wercker的持续集成 39
读者练习:创建完整的开发管道 51
本章小结 53
5 在Go中构建微服务 55
设计API First的服务 55
架设微服务 59
构建Test First的服务 62
在云端部署和运行 70
本章小结 72
6 运用后端服务 75
设计服务系统 75
测试优先构建依赖服务 77
在服务之间共享结构化数据 87
使用服务捆绑来外部化地址与元数据 90
服务发现 93
读者练习 97
本章小结 98
7 构建数据服务 99
构建MongoDB存储库 100
集成测试一个Mongo-Backed服务 107
在云中运行 115
本章小结 117
8 事件溯源和CQRS 119
现实源自事件 120
拥抱最终一致性 123
CQRS简介 124
事件溯源案例 126
代码示例:管理无人机舰队 128
构建命令处理程序服务 129
构建事件处理器 135
构建查询处理程序服务 140
本章小结 141
9 使用Go构建Web应用程序 143
处理静态文件和asset 143
支持客户端 145
使用服务端模板 148
处理表单 150
使用cookie和会话状态 151
使用Wercker构建和部署 153
本章小结 155
10 云安全 157
保护Web应用程序 157
保护微服务 166
隐私和数据安全 170
读者练习 172
本章小结 173
11 使用WebSockets 175
WebSockets解析 175
WebSockets的云原生适应性 178
使用消息服务创建WebSockets应用 180
本章小结 184
12 使用React构建Web视图 185
的形势? 186
为什么选择React 186
React应用程序剖析 189
构建简单的React应用程序 192
测试React应用程序 200
进一步阅读 200
本章小结? 201
13 使用Flux构建可扩展的UI 203
Flux介绍 203
创建Flux应用程序 206
本章小结 215
14 创建完整应用World of FluxCraft 217
World of FluxCraft介绍 218
架构概览 219
Flux GUI 222
命令处理 225
事件处理 226
维持现实服务的状态 227
地图管理 227
自动验收测试 228
本章小结 230
15 结论 231
我们学到了什么 231
下一步 233
附录A 云应用的故障排查 235
评分
评分
评分
评分
评分
评分
评分
评分
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.idnshop.cc All Rights Reserved. 静思书屋 版权所有