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
这本书给我的最大感受就是“实在”。作为一名有一定年头的程序员,我见过太多“讲概念”的书,读完之后感觉脑子里塞满了术语,但落实到代码上却无从下手。这本书却截然不同。它就像一个经验丰富的架构师,在你面前一步一步地搭建一个真实的云原生应用。我特别喜欢书中对“云原生应用架构实践”这部分内容的详细讲解。它没有回避在实际落地过程中会遇到的各种坑,比如如何处理状态管理、如何进行数据一致性保障、如何在分布式环境下进行日志收集和追踪等等。书中提供的解决方案,并不是那种“天上掉下来的”,而是基于大量实际项目经验提炼出来的,充满了实操性的建议。我认真地学习了书中关于CI/CD流水线的设计和实现,包括如何集成自动化测试、如何进行蓝绿部署或者金丝雀发布,这些都是提升开发效率和保障应用稳定性的关键环节。而且,书中并没有仅仅停留在Kubernetes层面,它还延伸到了诸如服务网格(Service Mesh)等更深层次的云原生技术,并解释了它们在解决特定问题时的作用。总的来说,这本书为我提供了一个非常清晰的、可执行的云原生应用开发路线图,让我不再感到迷茫。
评分这本书简直是我近期阅读体验的一股清流!作为一个在互联网行业摸爬滚打多年的开发者,我一直对“云原生”这个概念既熟悉又陌生。熟悉是因为它无处不在,从各大云厂商的宣传语到技术大会的议程,再到团队内部的讨论,总能听到它的身影;陌生则是因为我总觉得它是一个宏大而抽象的概念,涉及的领域太多太广,想要真正理解并将其应用于实际项目,似乎总是隔了一层纱。而这本书,恰恰像是那块能拨开迷雾的丝绸。它没有一开始就陷入那些听起来高大上的理论和术语,而是从非常贴近我们日常开发工作的角度切入。比如,书中关于Kubernetes的介绍,不是简单地罗列API或者概念,而是通过一个个实际的场景,比如如何进行部署、如何实现扩缩容、如何在故障时进行自愈,这些都是我们在实际工作中会遇到的痛点。我尤其喜欢书中对Docker容器化技术的讲解,它把抽象的虚拟化概念变得触手可及,让我对如何在本地快速搭建开发环境、如何构建可移植的应用有了更清晰的认识。书中通过大量的代码示例和图示,让我能够一步一步地跟着实践,而不是仅仅停留在理论层面。读完之后,我感觉我对云原生架构的理解不再是“知道有这么回事”,而是有了更扎实的、可以落地的基础,迫不及待想把书里的知识应用到我的下一个项目中去。
评分我最近对微服务架构产生了浓厚的兴趣,因为我所在的团队正在考虑将现有的单体应用拆分成微服务。然而,在寻找相关资料时,我发现很多书籍要么过于理论化,要么只聚焦于某个单一的技术点,比如Spring Cloud或者Istio,而很少有能够系统性地讲解如何从零开始构建一个完整的云原生Web应用和微服务体系的书。这本书在这方面做得非常出色。它不仅仅是讲解了微服务的优点,更重要的是,它详细地阐述了在实际项目中如何设计、开发、部署和运维微服务。我特别欣赏书中关于服务拆分策略的讨论,不同的拆分方式会带来不同的优劣,书中列举了多种常见的拆分模式,并分析了它们适用的场景,这对于我们团队进行架构决策非常有帮助。另外,书中对API网关、服务发现、配置中心、熔断降级等微服务治理的关键组件都进行了深入浅出的讲解,并且提供了很多实用的代码实现。我甚至发现书中还提到了如何利用GraphQL来优化API的查询效率,这一点也给我带来了很大的启发。读完这本书,我不仅对微服务有了更系统的认识,还学到了很多可以直接在项目落地的技巧和实践,感觉受益匪浅,对未来微服务架构的构建充满了信心。
评分最近我一直在思考如何才能构建一个真正健壮、可扩展的云原生Web应用。市面上关于Web开发的书籍很多,但很多都停留在单体应用的范畴,或者仅仅是讲解一些前端框架的使用。而云原生Web应用,除了前端的技术栈,更重要的是后端的架构设计和部署方式。这本书在这两个方面都给了我很大的启发。它详细讲解了如何使用Docker和Kubernetes来构建和部署Web应用,这使得我能够将应用打包成轻量级的容器,并在云环境中实现弹性伸缩和高可用。书中对微服务架构的讲解更是让我大开眼界,它不仅介绍了微服务的概念,还深入探讨了如何设计RESTful API,如何处理跨服务的通信,以及如何通过API网关来实现统一的请求入口和安全认证。我特别喜欢书中关于状态管理和数据库选型的讨论,在分布式环境下,这些都是需要仔细考虑的问题。此外,书中还提到了如何进行性能优化和监控,这对于保证Web应用的稳定性和用户体验至关重要。读完这本书,我感觉我对如何构建一个现代化的、面向未来的Web应用有了全新的认识,并且掌握了很多实用的技术和方法。
评分这本书的内容,在我看来,不仅仅是理论的堆砌,更是对当前云原生技术生态的一次全面且深入的梳理。作为一名对技术充满好奇心的读者,我一直希望能够理解“云原生”这个概念的本质,以及它如何改变我们构建和部署软件的方式。而这本书,通过将“Python云原生”、“云原生应用架构实践”和“云原生Web应用与微服务”这三个看似独立又相互关联的主题巧妙地融合在一起,为我提供了一个非常完整的视角。我特别喜欢书中对Python在云原生场景下应用的解读,它不仅仅是简单地提及Python可以用于开发微服务,而是具体讲解了如何利用Python的生态系统(如Flask、Django、FastAPI等)来构建高性能、可伸缩的云原生应用。书中对Kubernetes的讲解,也非常细致,从基础概念到高级特性,都能够让读者逐步掌握。我从中学习到了如何使用Helm来管理Kubernetes应用,如何利用Prometheus和Grafana来进行应用监控,以及如何通过Istio来实现更高级的服务治理。这些知识点对我来说都是非常宝贵的,它让我能够更自信地参与到云原生项目的开发和运维中去,并且能够更好地理解和应用云原生技术带来的优势。
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.coffeedeals.club All Rights Reserved. 静流书站 版权所有