下载
版权声明
1. 本站⽂章和资源均来⾃互联⽹收集和整理,本站不承担任何责任及版权问题。
老版封神榜演员表2. 相关版权归作者及其公司所有,仅供学习研究⽤途,请勿⽤于商业⽬的。
3. 请于下载后24⼩时内删除,如果喜欢此资源,请购买正版。
4. 若侵犯您的版权,请发邮件⾄webmaster@ishare1,我们确认后将⽴即删除。
内容简介 · · · · · ·
本书全⾯介绍了
作者简介 · · · · · ·
作者简介:
Sam Newman
是ThoughtWorks公司的技术专家、ThoughtWorks内部系统架构师,同时还为全球的客户提供咨询服务。他在开发和IT运维⽅⾯与全球多个领域的公司有过合作。
pdf电子书制作译者简介:
崔⼒强
阿⾥巴巴技术专家,⽬前专注于持续交付相关的产品开发。曾在ThoughtWorks任职多年,从事软件定制开发、敏捷软件开发的相关咨询等⼯作,帮助过数个团队和项⽬进⾏精益需求管理、软件设计、⾃动化测试和持续集成等实践。号:blade_1986
张骏
2010年加⼊ThoughtWorks公司。作为开发⼈员、项⽬经理、资深敏捷教练和资深咨询师,在⾦融、电信和能源服务⾏业的⼤型复杂业务系统的设计、开发、管理、咨询等⽅⾯有丰富的经验。曾为国内外诸多客户提供软件设计、开发以及咨询服务。拥有10年⼯作经验,在Scrum、看板、规模化敏捷等⽅法论,以及精益需求管理、⾃动化测试、持续集成、领域驱动设计、微服务等具体实践⽅⾯都有丰富的积累。号:zhangjun695339
⽬录 · · · · · ·
前⾔ xiv
第1章 微服务 1
诺基亚1680c保密码1.1 什么是微服务 2
1.1.1 很⼩,专注于做好⼀件事 2
1.1.2 ⾃治性 3段林希付梦妮
1.2 主要好处 3
1.2.1 技术异构性 3
1.2.2 弹性 4
1.2.3 扩展 5
1.2.4 简化部署 5
1.2.5 与组织结构相匹配 6
1.2.6 可组合性 6
1.2.7 对可替代性的优化 6
1.3 ⾯向服务的架构 7
1.4 其他分解技术 7
1.4.1 共享库 8
1.4.2 模块 8
1.5 没有银弹 9
1.6 ⼩结 10
第2章 演化式架构师 11
2.1 不准确的⽐较 11
2.2 架构师的演化视⾓ 12
2.3 分区 14
2.4 ⼀个原则性的⽅法 15
2.4.1 战略⽬标 15
2.4.2 原则 15
2.4.3 实践 16
2.4.4 将原则和实践相结合 16 2.4.5 真实世界的例⼦ 16
2.5 要求的标准 17
2.5.1 监控 18
2.5.2 接⼝ 18
2.5.3 架构安全性 18
2.6 代码治理 18
2.6.1 范例 19
2.6.2 裁剪服务代码模板 19 2.7 技术债务 20
2.8 例外管理 21
2.9 集中治理和领导 21
2.10 建设团队 22
2.11 ⼩结 23
第3章 如何建模服务 24
3.1 MusicCorp简介 24
3.2 什么样的服务是好服务 25 3.2.1 松耦合 25
3.2.2 ⾼内聚 25
3.3 限界上下⽂ 26
3.3.1 共享的隐藏模型 26
3.3.2 模块和服务 27
3.3.3 过早划分 28
3.4 业务功能 28
3.5 逐步划分上下⽂ 29
3.6 关于业务概念的沟通 30
3.7 技术边界 30
3.8 ⼩结 31
第4章 集成 32
4.1 寻理想的集成技术 32
4.1.1 避免破坏性修改 32
4.1.2 保证API的技术⽆关性 32
4.1.3 使你的服务易于消费⽅使⽤ 33 4.1.4 隐藏内部实现细节 33
4.2 为⽤户创建接⼝ 33
4.3 共享数据库 33
4.4 同步与异步 35
4.5 编排与协同 35
4.6 远程过程调⽤ 38
4.6.1 技术的耦合 38
4.6.2 本地调⽤和远程调⽤并不相同 39 4.6.3 脆弱性 39
4.6.4 RPC很糟糕吗 40
4.7 REST 41
4.7.1 REST和HTTP 41
4.7.2 超媒体作为程序状态的引擎 42 4.7.3 JSON、XML还是其他 44
4.7.4 留⼼过多的约定 44
4.7.5 基于HTTP的REST的缺点 45 4.8 实现基于事件的异步协作⽅式 46 4.8.1 技术选择 46
4.8.2 异步架构的复杂性 47
4.9 服务即状态机 48
4.10 响应式扩展 48
4.11 微服务世界中的DRY和代码重⽤的危险 49 4.12 按引⽤访问 50
4.13 版本管理 51
4.13.1 尽可能推迟 51
4.13.2 及早发现破坏性修改 52
4.13.3 使⽤语义化的版本管理 53
4.13.4 不同的接⼝共存 53
4.13.5 同时使⽤多个版本的服务 54
4.14 ⽤户界⾯ 55
4.14.1 ⾛向数字化 56
4.14.2 约束 56
4.14.3 API组合 57
4.14.4 UI⽚段的组合 57
4.14.5 为前端服务的后端 59
4.14.6 ⼀种混合⽅式 60
4.15 与第三⽅软件集成 61
4.1
5.1 缺乏控制 61斗鱼女主播郭mini
4.1
5.2 定制化 62
4.1
5.3 意⼤利⾯式的集成 62
4.1
5.4 在⾃⼰可控的平台进⾏定制化 62
4.1
5.5 绞杀者模式 64
4.16 ⼩结 65
第5章 分解单块系统 66
5.1 关键是接缝 66
5.2 分解MusicCorp 67
5.3 分解单块系统的原因 68
5.3.1 改变的速度 68
5.3.2 团队结构 68
5.3.3 安全 68
5.3.4 技术 68
5.4 杂乱的依赖 69
5.5 数据库 69
关于桃花最出名的诗句5.6 到问题的关键 69
5.7 例⼦:打破外键关系 70
5.8 例⼦:共享静态数据 71
5.9 例⼦:共享数据 72
5.10 例⼦:共享表 73
5.11 重构数据库 74
5.12 事务边界 75
5.12.1 再试⼀次 76
5.12.2 终⽌整个操作 77
5.12.3 分布式事务 77
5.12.4 应该怎么办呢 78
5.13 报告 78
5.14 报告数据库 78
5.15 通过服务调⽤来获取数据 80 5.16 数据导出 81
5.17 事件数据导出 82
5.18 数据导出的备份 83
5.19 ⾛向实时 84
5.20 修改的代价 84
5.21 理解根本原因 84
5.22 ⼩结 85
第6章 部署 86
6.1 持续集成简介 86
6.2 把持续集成映射到微服务 87 6.3 构建流⽔线和持续交付 90 6.4 平台特定的构建物 91
6.5 操作系统构建物 92
6.6 定制化镜像 93
6.6.1 将镜像作为构建物 94
6.6.2 不可变服务器 95
6.7 环境 95
6.8 服务配置 96
6.9 服务与主机之间的映射 97 6.9.1 单主机多服务 97
发布评论