文章目录

  • 前言
  • 6 条核心准则
  • 5大关键架构主题
  • 本书结构
  • 本书适用范围广
  • 作译者介绍
  • 5位全球知名专家联袂推荐
  • 本书亮点
  • 目录

前言

软件架构领域正在爆发一场新的革命。Gartner权威发布2023年十大科技趋势之一 “可持续IT架构” ,可持续架构得到越来越多从业人员认同。创建和维护可持续的软件架构对于架构师和工程师而言也是一项巨大的挑战。

“持续架构”之父新作《持续架构实践》,全球多位知名专家联袂推荐_中间件

随着互联网兴起和企业数字化转型的蓬勃开展,国内技术界对于架构设计的探讨如火如荼,很多不错的架构书籍也涌现了出来。有些书籍高屋建瓴,从原理和心法方面告诉你基础知识,另外一些书籍则着重于方法论,告诉你不同的系统应该用什么样的架构。“持续架构”之父的 《Continuous Architecture in Practice》则兼而有之,它采用自上而下的原则,通过一个贯穿全书的金融系统的架构实践,将原理“揉碎”了告诉读者,并从方法论层面告诉读者为什么要选择这样的技术,好处和坏处分别是什么。
中文版《持续架构实践》已由机械工业出版社出版重磅上市。

6 条核心准则

这本书通过具体分析系统架构的数据、性能、安全性、可伸缩性、可修复性等子系统, 出了贯穿架构设计的 6 条核心准则。这 6 条核心准则不仅可以作为个人设计系统的指导意见, 也可以作为架构师和开发团队合作的准则。架构设计从来就不是一个人的事情,开发团队的成员也需要按照架构准则去设计数据结构,编码,选择合适的技术栈和中间件。只有保持一致的设计标准,整个系统才能最终成功。

“持续架构”之父新作《持续架构实践》,全球多位知名专家联袂推荐_中间件_02

5大关键架构主题

“持续架构”之父新作《持续架构实践》,全球多位知名专家联袂推荐_java_03

本书结构

第 1 章提供场景,定义术语,并概述在每章都会使用的案例研究(附录A包含了有关 案例研究的详细信息)。
第 2 章列出我们的主要思想,希望读者了解如何在当今的软件开发环境中开展架构工作。
从第3 ~ 7 章探讨对现代应用程序开发来说至关重要的相关架构主题:数据、安全性、 可伸缩性、性能和弹性。我们解释软件架构方法,尤其是持续架构方法,探讨如何在解决各个架构问题的同时保持敏捷的工作方式,以持续地向生产环境交付变更。
第8章和第9章主要着眼于未来,讨论架构在处理新兴技术方面的作用,并总结当今敏捷和DevOps 时代下架构实践遇到的挑战以及应对这些挑战的一些潜在方法。

本书适用范围广

**对于软件开发团队:**讲述了开发团队日常面临尤其是某些功能开始运行之后遇到的实际问题。软件架构要团队成员提供有弹性、高性能且安全的应用程序,该书阐述六大准则和实践案例弥合了重构微服务代码在地球轨道视图与路面视图之间的重大差距。
**对于软件架构师:**讲述了架构师在开发团队中的角色,即如何满足软件涉众的质量属性需求;架构在实现如安全性、可伸缩性、性能和弹性等关键交叉需求方面的重要性。
**对于软件开发读者:**讲述了如何利用持续架构方法,并涵盖了有关安全性、性能、可伸缩性、弹性、数据和新兴技术等主题的深入且最新的内容。

作译者介绍

“持续架构”之父新作《持续架构实践》,全球多位知名专家联袂推荐_架构_04

“持续架构”之父新作《持续架构实践》,全球多位知名专家联袂推荐_架构_05

5位全球知名专家联袂推荐

“持续架构”之父新作《持续架构实践》,全球多位知名专家联袂推荐_数据_06

本书亮点

“持续架构”之父新作《持续架构实践》,全球多位知名专家联袂推荐_中间件_07

目录

赞誉
推荐序
译者序
前言
致谢
第1章 软件架构的重要性更胜往昔  1
1.1 我们所说的架构到底是什么  1
1.2 当今的软件行业  2
1.3 当前软件架构的挑战  4
1.3.1 关注技术细节而不是业务
场景  4
1.3.2 认为“架构不能增加价值”  4
1.3.3 架构实践也许太慢了  5
1.3.4 一些架构师可能并不适应
云平台  6
1.4 敏捷化世界里的软件架构  6
1.4.1 一切的开始:软件架构与
极限编程  6
1.4.2 我们究竟在哪一步:架构、
敏捷性还是持续交付  7
1.4.3 未来的方向  7
1.5 持续架构的引入  8
1.5.1 持续架构的定义  8
1.5.2 持续架构的收益  10
1.6 应用持续架构  11
1.7 案例研究介绍  12
1.8 本章小结  14
第2章 架构实践:基本活动  15
2.1 基本活动概述  16
2.2 架构决策  17
2.2.1 架构决策的制定和治理  18
2.2.2 敏捷项目中的架构决策  19
2.3 质量属性  21
2.3.1 质量属性和架构策略  22
2.3.2 使用质量属性  22
2.3.3 构建质量属性效用树  23
2.4 技术债务  23
2.4.1 捕获技术债务  25
2.4.2 如何管理技术债务  26
2.5 反馈循环:架构演进  27
2.5.1 适应度函数  28
2.5.2 持续测试  29
2.6 当今软件架构实践中的共同
主题  30
2.6.1 以准则为架构指南  30
2.6.2 由团队负责的架构  31
2.6.3 模型与符号  32
2.6.4 模式和风格  33
2.6.5 架构作为决策流  33
2.7 本章小结  34
第3章 数据架构  36
3.1 数据即架构的考虑  37
3.1.1 什么是数据  37
3.1.2 通用语言  38
3.2 关键技术趋势  39
3.2.1 SQL统治地位的消亡:NoSQL和多种持久化  40
3.2.2 可伸缩性和可用性:终
一致性  43
3.2.3 事件与状态:事件溯源  45
3.2.4 数据分析:来自信息的智慧
和知识  47
3.3 其他架构考虑事项  51
3.3.1 数据所有权和元数据  51
3.3.2 数据集成  53
3.3.3 数据(模式)演进  55
3.4 本章小结  56
3.5 拓展阅读  57
第4章 架构之安全性  59
4.1 架构场景中的安全性  59
4.1.1 当今的安全形势正在变化  60
4.1.2 我们所说的安全性到底是
什么  61
4.1.3 从无到有建立安全性  61
4.1.4 安全性左移  62
4.2 面向安全性设计架构  62
4.2.1 什么是安全风险  62
4.2.2 持续的风险建模和缓解
风险  63
4.2.3 风险识别技术  64
4.2.4 划分风险等级  67
4.2.5 其他方法  68
4.3 缓解风险的架构策略  68
4.3.1 身份验证、授权和审计  68
4.3.2 信息的隐私和完整性  69
4.3.3 拒绝抵赖  70
4.3.4 系统可用性  70
4.3.5 安全监控  71
4.3.6 密钥管理  72
4.3.7 缓解社会工程学攻击  74
4.3.8 零信任网络  75
4.3.9 实现TFX的安全性  75
4.4 维持安全性  78
4.4.1 安全性的实施  78
4.4.2 人员、流程和技术  79
4.4.3 薄弱的一环  79
4.4.4 持续提供安全性  79
4.4.5 为不可避免的失败做好
准备  80
4.4.6 安全舞台与安全实现  81
4.5 本章小结  81
4.6 拓展阅读  82
第5章 架构之可伸缩性  84
5.1 架构场景中的可伸缩性  85
5.1.1 什么改变了:可伸缩性的
假设  86
5.1.2 影响可伸缩性的因素  87
5.1.3 可伸缩性的类型和误解  88
5.1.4 云计算的影响  91
5.2 可伸缩性架构:架构策略  92
5.2.1 TFX可伸缩性需求  93
5.2.2 数据库可伸缩性  94
5.2.3 数据分发、复制和分区  96
5.2.4 面向可伸缩性的缓存  97
5.2.5 使用异步通信实现可伸
缩性  99
5.2.6 其他应用程序架构的注意
事项  101
5.2.7 实现TFX的可伸缩性  105
5.3 本章小结  107
5.4 拓展阅读  109
第6章 架构之性能  111
6.1 架构场景中的性能  111
6.1.1 影响性能的因素  112
6.1.2 架构关注点  112
6.2 性能架构  114
6.2.1 新兴趋势对性能的影响  114
6.2.2 围绕性能建模和测试构建
应用程序  116
6.2.3 现代应用程序的性能策略  118
6.2.4 现代数据库的性能策略  121
6.2.5 实现TFX的性能  124
6.3 本章小结  128
6.4 拓展阅读  128
第7章 架构之弹性  131
7.1 架构场景中的弹性  132
7.1.1 变化:失败的必然性  133
7.1.2 直面系统失败的可靠性  133
7.1.3 业务场景  134
7.1.4 MTTR,不仅是MTBF  134
7.1.5 MTBF和MTTR与RPO
和RTO的对比  135
7.1.6 逐渐好转  136
7.1.7 弹性组织  137
7.2 面向弹性的架构设计  137
7.2.1 允许失败  137
7.2.2 测量与学习  139
7.3 面向弹性的架构策略  140
7.3.1 故障识别策略  141
7.3.2 隔离策略  142
7.3.3 保护策略  145
7.3.4 缓解策略  148
7.3.5 实现TFX的弹性  151
7.4 维护弹性  152
7.4.1 运营的可见性  153
7.4.2 面向弹性的测试  153
7.4.3 DevOps的角色  154
7.4.4 检测与恢复、预测与缓解  155
7.4.5 事故处理  155
7.4.6 灾难恢复  156
7.5 本章小结  157
7.6 拓展阅读  157
第8章 软件架构与新兴技术  159
8.1 使用架构处理新技术引入的
技术风险  160
8.2 人工智能、机器学习和深度
学习简介  160
8.2.1 机器学习的类型  161
8.2.2 什么是深度学习  162
8.3 在TFX中使用机器学习  163
8.3.1 机器学习解决的问题类型、
先决条件和架构考虑  163
8.3.2 在TFX中使用文档分类  164
8.3.3 在TFX中实现一个聊天
机器人  169
8.4 在TFX中使用共享分类账  174
8.4.1 共享分类账、区块链和分布
式分类账技术简介  174
8.4.2 共享分类账解决的问题类型、
先决条件和架构考虑  175
8.4.3 共享分类账的能力  176
8.4.4 在TFX中实现一个共享
分类账  178
8.4.5 架构导向方法的好处  182
8.5 本章小结  183
8.6 拓展阅读  183
第9章 持续架构实践的结论  185
9.1 变与不变  185
9.2 更新架构实践  186
9.3 数据  187
9.4 关键的质量属性  188
9.4.1 安全性  189
9.4.2 可伸缩性  189
9.4.3 性能  190
9.4.4 弹性  190
9.5 当今时代的架构  190
9.6 实践中的持续架构  191
附录A 案例研究  192
附录B 共享分类账技术实现对比  212
术语表  214