网易云平台开发一线的主力,为你讲述云原生的技术体系,展示从单体到服务化架构的演进。
针对企业如何采用云原生架构实现高效的产品迭代能力、支持互联网业务健康发展,《云原生应用架构实践》总结了一套可行的方法论。书中详解了云原生应用的内涵和要点,对实现云原生应用面临的功能和非功能(高性能、高可用、可扩展、安全性、高可靠等)的不同阶段需求和实现方案进行了较为完整的梳理。内容涵盖了系统工程化、高性能数据库、分布式数据库、DevOps、微服务架构、服务化测试、多机房架构等方面,既有业务挑战分析,也有架构实践指导,并通过实战案例加以诠释。
本书适合希望采用云计算帮助企业实现业务提升的 CTO、CIO、架构师等群体。
网易云基础服务架构团队,负责网易云基础服务平台建设,包括计算、网络、存储、CDN、数据库等服务,以及自动化平台的架构和实践,该平台支撑了网易内部95%的互联网产品。团队在互联网产品开发和规范化的系统建设上有丰富的经验,对互联网业务需求、系统设计、开发、测试、运维和调优等方面有独到的经验和理解。
祝一切顺利!
引子 1
第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
历时三年终到稿,还未读完初稿,就知道《架构解密:从分布式到微服务》将是一本畅销书。
作者:(美)Lee Atchison(李 艾奇逊) 译者:张若飞
Lee Atchison 是New Relic 公司的席云架构师和布道师。他已经在New Relic 工作了4年,负责设计并领导建立了New Relic 的基础设施产品,帮助New Relic 搭建了健壮的服务化系统架构,支撑起公司从一个很小的SaaS 创业公司成长为一个高流量的公众企业。他非常擅长构建高可用的系统。Lee 拥有28 年的行业工作背景,之前在Amazon.com 担任7 年高级经理的时候,了解到如何搭建基于云的、可伸缩的系统架构。在Amazon,他领导并建立了公司个软件下载商店,搭建了AWS Elastic Beanstalk 服务,并带领团队将Amazon 的零售平台从一个单体架构成功迁移到了基于服务的架构。
本书译者的中英文水平都极高,且工作在系统管理的一线,具有丰富的理论知识和实践经验,相信会为读者带来一本质量上乘的图书。
目录
序. .......................... xv
前言. ......................xvii
第 1章 什么是可用性... 2
可用性与可靠性 ............................................... 3
什么导致了低可用性 ....................................... 4
第 2章 提高应用程序可用性的五个要点......................................... 6
要点 1:时刻考虑应对故障 ............................. 7
要点 2:时刻考虑如何伸缩 ............................. 8
要点 3:缓和风险 ............................................ 9
要点 4:监控可用性 ...................................... 10
要点 5:以预测和确定的方式来应对可用性问题 ...................................................... 11
做好准备 ........................................................ 12
第 3章 测量可用性... 13
N个 9 14
什么样的可用性是合理的 ...................... 14
不要上当 ........................................................ 14
通过数字来体现可用性.................................. 15
测试并跟踪当前的可用性 .............................. 17
将手动流程自动化 ......................................... 17
自动化部署............................................. 18
配置管理 ................................................ 18
更改实验和高频次更改 .......................... 19
自动化的变更完备性测试 ...................... 20
改进你的系统 ................................................ 20
不断变化和发展中的应用程序 ...................... 20
时刻关注可用性 ............................................. 21
第 5章 什么是风险管理. .......................................................... 24
管理风险 ........................................................ 25
识别风险 ........................................................ 25
消除严重的风险 ......................................... 26
风险缓和 ........................................................ 26
定期检查 ........................................................ 27
对风险管理的总结 ......................................... 27
第 6章 可能性与严重性. .......................................................... 28
10佳列表:低可能性,低严重性 .................. 29
订单数据库:低可能性,高严重性 ............... 29
自定义字体:高可能性,低严重性 ............... 30
T恤图片:高可能性,高严重性 ................... 31
第 7章 风险模型...... 32
风险模型的作用域 ......................................... 34
创建风险模型 ................................................ 34
通过头脑风暴建立风险列表 .................. 35
填写可能性和严重性字段 ...................... 36
风险项详情............................................. 37
触发计划 ................................................ 37
使用风险模型来制订计划 .............................. 37
维护风险模型 ................................................ 38
第 8章 风险缓和...... 40
恢复计划 ........................................................ 41
容灾计划 ........................................................ 42
改进我们的风险状况 ..................................... 43
第 9章 比赛日......... 44
预发布环境和生产环境.................................. 44
在生产环境中举行比赛日的担心 ................... 46
比赛日测试 .................................................... 47
第 10章 构建低风险系统......................................................... 48
冗余 .. 48
幂等接口示例 ................................................ 49
增加了复杂性的冗余改进 .............................. 49
独立性 ............................................................ 50
安全 .. 51
简单性 ............................................................ 51
自修复 ............................................................ 52
运维流程 ........................................................ 53
第 11章 为什么使用服务. ......................................................... 56
单体应用程序 ................................................ 56
基于服务的应用程序 ..................................... 57
所有权收益 .................................................... 58
规模收益 ........................................................ 60
如何定义服务 ................................................ 63
深入了解服务 ......................................... 63
指导原则 1:特定的业务需求 ................ 63
指导原则 2:清晰和独立的团队所有权 . 64
指导原则 3:天然隔离的数据 ................ 65
指导原则 4:共享的能力 /数据 ............. 67
多种原因 ................................................ 67
过犹不及 ........................................................ 68
适当的平衡 .................................................... 69
第 13章 处理服务故障............................................................ 70
级联式的服务故障 ......................................... 70
如何响应服务故障 ......................................... 71
可预测的响应 ......................................... 72
可理解的响应 ......................................... 73
合理的响应............................................. 73
如何确定故障 ................................................ 74
适当的行为 .................................................... 76
优雅降级 ................................................ 76
优雅补偿 ................................................ 77
尽早失败 ................................................ 77
用户导致的问题 ..................................... 78
第Ⅳ部分 如何让应用程序具有伸缩性
第 14章 两次失误的高度......................................................... 82
什么是“两次失误的高度” ............................ 83
实践中的“两次失误的高度” ........................ 83
丢失一个节点 ......................................... 83
升级过程中出现的问题 .......................... 85
数据中心恢复 ......................................... 86
隐蔽的共享故障类型 .............................. 88
管理你的应用程序 ......................................... 90
航天飞机 ........................................................ 90
第 15章 服务所有权.. 92
由独立团队负责的服务架构 .......................... 92
STOSA应用程序和组织的好处 ..................... 94
成为一个服务所有者意味着什么 ................... 94
第 16章 服务分级. .... 97
应用复杂性 .................................................... 97
什么是服务分级 ............................................. 98
为服务分配服务级别标签 .............................. 99
1级服务 ................................................. 99
2级服务 ................................................. 99
3级服务 ............................................... 100
4级服务 ............................................... 100
示例:在线商店 ........................................... 100
接下来呢 ...................................................... 103
第 17章 使用服务分级.......................................................... 104
期望 104
响应性 .......................................................... 104
依赖 106
关键依赖 .............................................. 106
非关键依赖........................................... 107
小结 107
第 18章 服务等级协议.......................................................... 108
什么是服务等级协议 ................................... 108
外部 SLA与内部 SLA的对比 ..................... 110
为什么内部 SLA很重要 .............................. 110
SLA可以作为一种信任的手段 .....................111
SLA可以用于问题诊断 ................................111
限定 SLA .............................................. 113
排名 SLA .............................................. 113
延迟分组 .............................................. 115
究竟应当定义多少内部 SLA,以及定义哪些内部 SLA ........................................... 116
关于 SLA的其他评价 .................................. 116
第 19章 持续改进. ... 117
定期检查你的应用程序................................ 117
微服务 .......................................................... 118
服务所有权 .................................................. 118
无状态服务 .................................................. 118
数据在哪里 .................................................. 118
数据分区 ...................................................... 119
持续改进的重要性 ....................................... 121
第 20章 变化和云服务. ..........................................................124
云服务有哪些变化 ....................................... 124
对基于微服务架构的认可 .................... 124
更小、更专业的服务 ............................ 125
更专注于应用程序 ............................... 125
微型初创公司 ....................................... 125
安全和合规已经成熟 ............................ 125
变化还在继续 .............................................. 125
第 21章 云上的分布.127
AWS的架构 ................................................. 127
AWS区域 ............................................. 127
AWS可用区 ......................................... 128
数据中心 .............................................. 128
总体架构概述 .............................................. 129
第 22章 托管的基础设施....................................................... 134
基于云的服务架构 ....................................... 134
原生资源 .............................................. 135
托管资源(基于服务器) ....................... 136
托管资源(不基于服务器) ................... 137
使用托管资源的影响 ................................... 138
使用非托管资源的影响................................ 138
监控和 CloudWatch ...................................... 138
第 23章 云资源分配. ............................................................ 140
固定额度的资源分配 ................................... 140
调整分配 .............................................. 141
预留容量 .............................................. 142
基于使用量的资源分配................................ 143
基于使用量分配资源的好处 ................ 144
资源分配技术的利与弊................................ 145
第 24章 可伸缩的计算选项.................................................... 146
云服务器 ...................................................... 147
优点 ...................................................... 147
缺点 ...................................................... 147
适用场景 .............................................. 147
计算分片 ...................................................... 147
优点 ...................................................... 147
缺点 ...................................................... 148
适用场景 .............................................. 148
动态容器 ...................................................... 148
优点 ...................................................... 148
缺点 ...................................................... 149
适用场景 .............................................. 149
微计算 .......................................................... 149
优点 ...................................................... 149
缺点 ...................................................... 150
第 25章 AWS.Lambda....................................................... 151
使用 Lambda ................................................ 151
事件处理 .............................................. 151
手机应用后台 ....................................... 152
物联网数据采集 ................................... 153
Lambda的优缺点......................................... 154
第Ⅵ部分 总结
第 26章 融会贯通...156
可用性 .......................................................... 156
风险管理 ...................................................... 157
服务 157
扩展 157
云服务 .......................................................... 158
面向可伸缩的架构 ....................................... 158
这是一本让我大开眼界的技术书籍,它像一位经验丰富的向导,带领我穿梭于错综复杂的分布式系统世界,并最终抵达微服务和云原生应用的壮丽彼岸。作者以一种抽丝剥茧的方式,从最基础的分布式理论讲起,层层深入,逐步剖析了现代应用架构演进的逻辑脉络。我尤其欣赏书中对“解密”二字的深刻诠释,它并非简单罗列概念,而是真正地探究了各种架构模式背后的设计思想、权衡取舍以及它们如何应对现实世界中不断变化的挑战。从CAP定理的清晰讲解,到一致性协议的详细阐述,再到如何构建高可用、可伸缩的分布式系统,每一个章节都充满了智慧的火花。书中对服务拆分、通信机制、数据一致性、容错处理等关键环节的探讨,都给予了我极大的启发。读完这本书,我不再是被动接受技术名词,而是能够从更宏观、更本质的层面去理解为什么需要这些技术,它们解决了什么问题,以及在实际项目中应该如何应用。特别是对于云原生部分,书中不仅仅提到了容器化、服务网格等流行技术,更重要的是阐述了围绕这些技术构建的整个生态系统如何赋能应用的弹性伸缩和持续交付,这对于我理解如何在云环境中构建和管理现代应用至关重要。
评分我必须说,这本书在“云原生应用架构实践”这部分,简直是一部教科书级别的指南。它没有停留在对Kubernetes、Docker等技术的简单介绍,而是深入剖析了云原生背后的理念和哲学,以及如何在实践中落地。作者将云原生应用架构的构建过程,分解为一系列清晰的步骤和原则,从容器化部署、服务编排、声明式配置,到服务发现、分布式跟踪、日志聚合等,都进行了详尽的阐述。我特别喜欢书中对微服务与容器化结合的深入分析,它解释了为什么这种组合能够极大地提升应用的灵活性、弹性和可维护性。书中关于DevOps文化、CI/CD流水线、以及如何构建可观测性系统的内容,也为我提供了宝贵的实践经验。它让我明白了,云原生不仅仅是技术的堆砌,更是一种全新的软件开发和交付模式。通过学习书中关于如何构建弹性、自治、可伸缩的微服务应用的最佳实践,我能够更好地理解如何在云环境下设计、开发、部署和管理现代应用,从而更有效地应对业务的快速变化和不断增长的用户需求。
评分这本书的标题和内容,恰如其分地概括了现代软件架构演进的核心脉络,从分布式系统的复杂性,到微服务带来的灵活性,再到云原生应用的弹性与高效,最后落脚于面向增长的高可用性,每一个环节都紧密相连,环环相扣。作者以一种循序渐进的方式,引导读者深入理解这些概念背后的逻辑。我尤其欣赏书中对于“架构解密”的深入探讨,它不仅仅是介绍了各种架构模式,更是揭示了这些模式诞生的原因、解决的问题以及在实际应用中所面临的挑战。从分布式一致性到服务治理,从容器编排到平台建设,本书都提供了非常详实和有价值的见解。它让我明白,构建一个健壮、可扩展且能够持续应对业务增长的系统,需要对技术有全面的理解,同时也要具备前瞻性的战略眼光。书中所倡导的“面向增长”的理念,更是让我认识到,架构设计不应仅仅是技术堆砌,更应以业务的成功为最终目标,不断适应变化,驱动发展。这是一本值得反复阅读、深入思考的宝藏。
评分读完这本书,我感觉自己对“可伸缩架构”的理解上升到了一个新的高度。作者在这一部分的论述,不仅仅停留在理论层面,而是通过大量的案例和实战经验,揭示了如何构建能够应对海量用户和数据增长的系统。书中对水平扩展、垂直扩展的优劣分析,以及如何通过负载均衡、数据库分片、缓存策略等手段来实现高效的可伸缩性,都让我印象深刻。我特别欣赏作者在阐述如何应对“增长”时,那种系统性的思考方式。它不仅仅是如何让系统“跑得动”,更是如何让系统在“增长”的过程中,依然保持高性能、高可用和低成本。书中关于无状态设计、异步通信、事件驱动架构等关键原则的探讨,为我提供了构建可伸缩系统的理论基础。同时,作者也分享了在实际项目中如何通过持续的监控和调优来不断优化系统的伸缩性,这对于我未来的工作实践具有极大的指导意义。这本书让我明白,一个真正可伸缩的架构,不仅仅是技术上的巧思,更是对业务发展趋势的深刻洞察和前瞻性的规划。
评分这本书给我带来的,不仅仅是知识的积累,更是一种思维方式的重塑。作者在介绍“面向增长应用的高可用”时,那种将业务需求与技术实现紧密结合的视角,让我耳目一新。过去,我可能更多地关注技术的实现细节,而这本书则引导我思考,技术的最终目的是为了支撑业务的增长和用户体验的提升。书中对如何设计具备弹性和容错能力的系统,以应对突发流量、服务降级等极端情况的阐述,都非常具有实操价值。它不仅仅是告诉我们“怎么做”,更重要的是解释了“为什么这样做”,以及这样做背后的风险和收益。例如,在讨论限流、熔断、降级等策略时,作者都结合了实际的业务场景,让我们能够更清晰地理解这些技术在保障应用可用性方面所扮演的角色。此外,书中关于系统容量规划、性能调优以及故障排查的经验分享,也让我受益匪浅。它让我明白,高可用并非一蹴而就,而是需要持续的投入和精细化的运营。尤其是对“增长”这个关键词的强调,让我开始重新审视架构设计,思考如何让架构本身具备“生长”的潜力,能够更好地适应业务的快速迭代和市场变化。
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.coffeedeals.club All Rights Reserved. 静流书站 版权所有