云原生应用与架构实践
  • 推荐0
  • 收藏0
  • 浏览844

云原生应用与架构实践

网易云基础服务架构团队 (作者)  徐津平 (责任编辑)

  • 书  号:978-7-121-31516-9
  • 出版日期:2017-07-01
  • 页  数:368
  • 开  本:16(185*235)
  • 出版状态:图书立项
  • 维护人:符隆美
纸质版 ¥79.00
针对企业如何采用云原生架构实现高效的产品迭代能力、支持互联网业务健康发展,本书总结了一套可行的方法论。书中详解了云原生应用的内涵和要点,对实现云原生应用面临的功能和非功能(高性能、高可用、可扩展、安全性、高可靠等)的不同阶段需求和实现方案进行了较为完整的梳理。内容涵盖了系统工程化、高性能数据库、分布式数据库、DevOps、微服务架构、服务化测试、多机房架构等方面,既有业务挑战分析,也有架构实践指导,并通过实战案例加以诠释。
本书为企业打造先进的应用架构支持互联网/互联网+业务的拓展提供了一套可行的方法论,不管是互联网企业还是传统企业,不管处在互联网业务的哪个发展阶段,都能从书中为IT架构迭代的步骤找到合理的答案。对于CTO/CIO来说,本书为企业未来IT演进的探索和规划指明了方向;对于架构师而言,本书为其解决当前业务问题提供了明确的思路;对于多数程序员来说,本书描述的方法,也让他们能够实现敏捷研发设想的落地。本书对云计算架构及互联网产品研发的学术研究亦有一定的参考价值。
网易云基础服务架构团队,负责网易云基础服务平台建设,包括计算、网络、存储、CDN、数据库等服务,以及自动化平台的架构和实践,该平台支撑了网易内部95%的互联网产品。团队在互联网产品开发和规范化的系统建设上有丰富的经验,对互联网业务需求、系统设计、开发、测试、运维和调优等方面有独到的经验和理解。
前 言
从互联网、移动互联网到云计算、大数据、人工智能,再到虚拟现实/增强现实,十多年来,信息技术的日新月异催生了不断涌现的互联网新业态,也推动了传统行业投身于数字化创新的浪潮。此时此刻,机器取代人类的说法固然夸张,却也真实地反映了新技术应用对产业带来的冲击。
全球顶级商业机构都是能够把握技术创新成果的企业;而对技术运用不当的企业,即便起点与前者一致,或许也曾风光一时,但最终还是步履维艰,甚至烟消云散。决定能否与技术趋势同行的一个核心因素就是技术架构。如果说商业模式是商业组织的灵魂,那么架构就是灵魂的根基。最典型的例子就是电商618、双11大促,流量爆发之下如何保障整个商品交易流程的体验,对系统设计和运维保障都是巨大的考验,这也推动了技术的进步。当前的大促活动依然让电商企业如履如临,然而挑战难度已经不如七八年前,这就是架构演进趋于成熟的表现,充分利用云计算理念的“互联网架构”由此为业界所推崇。
综合考虑IT资产、业务规模、发展阶段、人才储备及投资成本,不同企业需要的互联网架构并不完全一样,譬如初创公司考虑百万级并发可能不合时宜,然而为长远计,想跟上发展迅速、爆发力惊人的互联网业务,架构设计需要既能满足当前业务需求,又具备快速升级支撑下一个发展阶段的能力。企业如何正确驾驭架构的设计和演进?有哪些通用的成熟经验可供借鉴?业界对此不乏零星的讨论,但企业仍缺乏系统的、可指导实践的参考资料。
本书是网易云基础服务架构团队根据网易集团的十余年实践,结合社区优秀案例总结而成的互联网架构演进指南。2006年,怀着储备互联网技术和孵化新业务的初衷,网易杭州研究院扬帆起航,及至今日在两个方向上都有不俗的成绩,一端是分布式、云计算、大数据、人工智能、增强现实,一端是教育、电商、金融、游戏,这一切都是构建在千锤百炼的互联网架构之上的,这就是同时满足功能性需求、非功能性需求和产品快速迭代需求的云原生架构。网易云希望把这些经验分享给业界,与各行各业一起践行中国云计算。
全书共5章,以商业组织的互联网业务成长为主线,着眼于业务需求,清晰地剖析互联网架构的挑战,云原生架构的特征、构成和解决的问题,以及架构演进的路径,并通过案例对设计原则和实践加以诠释。通过阅读本书,架构师能够借鉴网易十余年的经验结晶,无须反复试验,即可快速设计符合互联网业务场景需求的架构,而有一定基础的读者朋友也能更加透彻地理解和规划未来的方向。
全书由尧飘海统筹构思,网易云基础服务架构团队成员参与写作,书中部分图片脱胎于社区文档或官方宣传资料。第1章以宏观视角简明地解析互联网业务挑战及架构演进要点;第2章介绍开始搭建业务系统时需要的项目版本管理工具、以Docker为代表的容器技术,以及常见语言的工程化构建方式,并结合实战示例给予完整展现;第3章针对访问流量不是很大的业务起步阶段,讲述如何做好技术选型,实现一个支持快速迭代、高可用、安全的应用服务端;第4章介绍如何解决业务高速成长阶段的可扩展性、性能、系统集成与交互、数据可靠性等挑战;第5章以分布式定时任务和分布式锁系统的实现为例,介绍分布式服务应用挑战和架构方法,重点解析了微服务架构、分布式数据一致性和同城多活的实践。
全书内容分别由尧飘海、焦智慧、王新勇、张小刚和冯常健主笔,黄庆兵、郭忆、乔安然、何李夫、孙建良、刘发明、沈明星、崔晓晴、易庭、祝剑锋、姜政冬、朱凌墨等网易云架构师和工程师参与了写作,插图由李倩倩和纪桂莲支持完成。
本书的付梓要特别感谢电子工业出版社的符隆美编辑,她帮助我们及时地解决了遇到的各种问题。
限于作者的精力与能力,书中难免出现一些疏漏之处,请广大读者不吝指正,并予以包涵,我们会在再版中修正。

目录

目 录
引子 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

读者评论

  • 第251页,第二行中,有错别字,“出”应为“处”。
    原文: 开通服务,在HTTPDNS服务提供商注册账号,开通HTTPDNS服务。

    浩读书发表于 2021/2/28 11:53:37