书籍作者:范钢 | ISBN:9787111685029 |
书籍语言:简体中文 | 连载状态:全集 |
电子书格式:pdf,txt,epub,mobi,azw3 | 下载次数:3275 |
创建日期:2021-10-07 | 发布日期:2021-10-07 |
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板 |
这是一部尝试从架构本质的角度对传统的企业级应用架构方法进行优化的著作,不仅提供了一套更优化的企业级应用架构方法论,能指导读者构建高质量的应用;而且对当下热门的分布式系统和大数据平台的架构方法进行了详细讲解,通过大量案例提供了可直接复用的经验。
两位作者在大型上市科技公司和大型互联网企业从事研发和架构工作多年,本书融合了他们在不同领域的架构经验。全书一共11章,分为三个部分:
第①部分(第 1~6 章)架构设计方法论
总结了一套切实可行、操作性强的高质量架构方法——“5视图架构设计法”,并引入了领域驱动设计、规模化敏捷等先进的设计思想。
第②部分(第 7~9章) 分布式架构设计与实践
从实战的角度讲解了分布式系统的架构与设计,包括分布式的核心技术、微服务的架构设计,以及基于云端的分布式部署,旨在帮助读者构建支持高并发、高可用的系统架构。
第③部分(第 10、11 章) 大数据架构设计
从更宏大的视角介绍了大数据平台的架构与设计,包括数据中台以及大数据技术中台建设思路、路线图和实践经验。
●范钢
资深架构专家,前航天信息(大型上市公司)首席架构师,有超过15年的Java开发经验和近20年软件研发与架构设计经验。
擅长软件架构、软件重构、分布式系统、微服务、大数据,先后参与了数十个大型软件项目,涉及国家财政、军工、税务、医疗等领域的大数据建设、风险防控与人工智能应用。
独立咨询顾问,服务的客户包括中国银行、华为、中兴、贝尔、西门子等知名企业;资深培训讲师,曾多次受邀担任案例100、Tid、SDCC、DDD、DevOps等业界知名技术峰会的分享嘉宾。畅销书作者,著有《大话重构》。
●孙玄
奈学教育创始人兼CEO。
资深架构专家,在国内软件开发和架构领域有一定的知名度和影响力。
前转转集团技术委员会主席、首席架构师,前58集团技术委员会主席、高级系统架构师,前百度资深研发工程师。
阿里云MVP、腾讯云TVP,微信公众号“架构之美”作者。曾受邀在CIO峰会、A2M、QCon、ArchSummit、SACC、SDCC、DTCC、案例100、GITC、GIAC、TID行业技术大会上发表架构相关的演讲。
(1)作者资深:作者范钢、孙玄都是资深架构专家,在行业内有一定影响力,目前孙玄专注于架构师培养领域,其创办的奈学教育累计培养了大量高薪架构师。
(2)内容新颖:本书提供了一套方法更优的企业级应用架构设计方法论,助你领悟架构的本质,构建高质量的企业级应用。
(3)实操性强:详细阐述当下热门的分布式系统和大数据平台的架构方法,提供可复用的经验,可操作性极强。
(4)专家力荐:本书获得了来自腾讯、阿里、百度、京东、滴滴、谷歌、IBM等企业的资深技术专家一致推荐。
●关注“华章计算机”回复“68502”,获取书中代码。
【为什么要写这本书】
近几年,国内软件行业发展迅猛,软件规模与复杂度不断提高,对架构设计的需求因而越来越强烈。
虽然各个软件公司或多或少都在进行架构设计这项工作,但没有一个简单易行、切实落地的架构设计方法论来指导大家按照某种规范做事。正因如此,很多人不知道怎样高效、高质量地设计架构,只能东一榔头西一棒槌,有些人甚至对什么是架构设计都不甚了解,这样只会导致架构杂乱无章、随意或者不全面。这种低质量的架构既不能有效地规避项目进行过程中的各种风险,也不能指导大规模开发团队有效协作,进而导致在软件开发及日后运维过程中出现各种问题。在这种状况下,软件企业也无法更好地应对微服务转型、大数据转型、物联网转型等诸多技术挑战。
笔者从事架构设计及相关教学工作多年,总结出了一套操作性强的架构设计方法论,希望能够帮助更多读者成为顶级架构师。这就是笔者写这本书的初衷。
【读者对象】
本书适合以下读者:
□积极参与系统架构设计,期望今后成为架构师的开发人员;
□希望进一步提升自己、成为顶级架构师的架构师;
□希望规范架构设计的企业高管;
□希望解决互联网转型、大数据转型过程中的架构难题的架构师。
【本书特色】
本书的特色可归纳为如下三个方面:
□落地、实践,为架构师提供切实可行、操作性强的架构设计方法;
□难题、方案,为架构师解决项目实践中的设计难题提供思路与方案;
□前瞻、全局,为架构师展现未来技术发展趋势。
【关于书名】
陶渊明在《饮酒·其五》写道:
“结庐在人境,而无车马喧。
问君何能尔?心远地自偏。
采菊东篱下,悠然见南山。
山气日夕佳,飞鸟相与还。
此中有真意,欲辨已忘言。”
这里的“真意”就是指从大自然里领悟到人生的真谛。
此外,在这几年一些爆红的国漫中,“真意”被用来给一些顶尖的功法或招数命名。比如,《雪鹰领主》中有“水之真意”“火之真意”“风之真意”等,意思是修行者在领悟了水、火、风等的本原和法则后,就能将它们的威力发挥到极致。
本书旨在讲清楚架构的本质和底层逻辑,让读者能真正明白架构的真谛,这便是书名中“架构真意”的由来。
【如何阅读本书】
本书分为三部分。
第一部分(第1~6章)为架构设计方法论,介绍了一套切实可行、操作性强的高质量架构方法—5视图架构设计法,并引入了领域驱动设计、规模化敏捷等先进的设计思想。
第二部分(第7~9章)站在实战的角度,讲解了互联网分布式架构的设计与实践,包括分布式架构的演进,如何构建高并发、高可用的系统架构,以及向微服务转型、分布式云端部署的过程。
第三部分(第10、11章)站在更宏大的视角,介绍了大数据技术架构的设计与实践,其中谈到了数据中台的建设以及它所基于的大数据技术中台,详述了建设思路、路线图以及技术实践。
【第一部分 架构设计方法论】
第1章 架构师的修炼5
1.1 何为软件架构5
1.1.1 常见研发场景6
1.1.2 准确理解软件架构7
1.2 如何成为合格的架构师9
1.2.1 架构师的职责9
1.2.2 架构师的思维模式10
1.3 如何成为顶级的架构师12
1.3.1 能够将业务转换为技术13
1.3.2 能合理利用技术支撑业务13
1.3.3 具备前瞻思维和战略思维15
1.4 “5视图法”架构设计16
第2章 逻辑架构设计18
2.1 用例模型分析19
2.1.1 用例模型20
2.1.2 由粗到细的用例分析21
2.1.3 用例描述23
2.1.4 事件流25
2.1.5 业务需求列表29
2.1.6 需求规格说明书30
2.2 界面原型分析32
2.3 领域模型分析34
2.3.1 软件退化的根源34
2.3.2 两顶帽子的设计方式38
2.3.3 领域驱动的设计思想41
2.3.4 领域驱动的变更设计42
2.3.5 领域驱动设计总结48
2.4 技术可行性分析50
第3章 数据架构设计52
3.1 数据架构的设计过程52
3.2 基于领域的数据库设计54
3.2.1 传统的4种关系55
3.2.2 继承关系59
3.2.3 NoSQL数据库的设计61
3.3 基于领域的程序设计63
3.3.1 服务、实体与值对象64
3.3.2 贫血模型与充血模型64
3.3.3 聚合70
3.3.4 仓库与工厂71
3.3.5 问题域和限界上下文75
第4章 开发架构设计78
4.1 系统规划与接口定义78
4.1.1 系统规划79
4.1.2 接口定义80
4.2 系统分层与整洁架构82
4.2.1 系统分层82
4.2.2 底层技术更迭84
4.2.3 整洁架构设计86
4.2.4 易于维护的架构88
4.3 技术中台建设90
4.3.1 增删改的架构设计91
4.3.2 查询功能的架构设计94
4.3.3 支持领域驱动的架构设计99
4.3.4 支持微服务的架构设计107
4.4 技术选型与技术规划109
4.4.1 软件正确决策的过程109
4.4.2 商用软件与开源框架110
4.5 模块划分与代码规范111
第5章 运行架构设计114
5.1 属性→场景→决策115
5.2 非功能性需求117
5.3 恰如其分的架构设计117
5.4 技术架构演化118
5.4.1 意图架构119
5.4.2 使能故事120
5.4.3 架构跑道122
5.4.4 我们的实践122
5.5 技术改造与软件重构124
5.5.1 架构师的十年奋斗125
5.5.2 演化式的技术改造思路126
5.5.3 一个遗留系统改造的故事127
第6章 物理架构设计131
6.1 集中式与分布式132
6.2 网络架构图134
6.3 系统架构与应用架构135
【第二部分 分布式架构设计与实践】
第7章 分布式架构设计141
7.1 互联网架构演进141
7.1.1 All-in-One架构142
7.1.2 流量在1000万以内的架构设计143
7.1.3 流量在1000万以上的架构设计147
7.1.4 流量在5000万以上的架构设计155
7.1.5 亿级流量的架构设计160
7.2 分布式技术165
7.2.1 分布式缓存165
7.2.2 内存数据库169
7.2.3 分布式事务173
7.2.4 分布式队列179
7.2.5 分布式数据库182
第8章 微服务架构设计192
8.1 为什么要采用微服务架构192
8.1.1 快速变化需要快速交付192
8.1.2 打造高效的团队组织193
8.1.3 大前端+技术中台196
8.1.4 小而专的微服务197
8.1.5 微服务中的去中心化概念199
8.1.6 互联网转型利器202
8.2 微服务的关键技术204
8.2.1 注册中心205
8.2.2 服务网关219
8.2.3 熔断机制227
8.3 微服务的系统设计235
8.3.1 6种设计模式235
8.3.2 微服务设计实践244
8.3.3 微服务测试调优262
8.4 微服务项目实战过程276
8.4.1 在线订餐系统项目实战278
8.4.2 统一语言与事件风暴278
8.4.3 子域划分与限界上下文282
8.4.4 微服务拆分与设计实现284
第9章 基于云端的分布式部署290
9.1 DevOps与快速交付290
9.2 Docker容器技术292
9.2.1 虚拟技术与容器技术292
9.2.2 对Docker容器的操作294
9.2.3 用Dockerfile制作镜像296
9.2.4 微服务的Docker容器部署297
9.2.5 Docker容器的应用298
9.2.6 搭建Docker本地私服299
9.3 Kubernetes分布式容器管理299
9.3.1 微服务发布的难题299
9.3.2 Kubernetes的运行原理300
9.3.3 Kubernetes的应用场景303
9.3.4 Kubernetes的虚拟网络304
9.3.5 用Kubernetes部署微服务305
9.3.6 用有状态集部署组件308
9.3.7 Kubernetes应用实践310
9.4 自动化运维平台实践312
【第三部分 大数据架构设计】
第10章 大数据时代变革319
10.1 从IT时代向DT时代转变319
10.2 数据分析与应用319
10.2.1 数据应用的发展历程320
10.2.2 数据应用的成熟度321
10.3 数据中台建设325
10.3.1 对数据中台的正确理解325
10.3.2 数据中台建设的核心326
10.3.3 数据中台的建设思路332
10.3.4 数据中台的技术架构333
第11章 大数据技术中台335
11.1 大数据技术335
11.1.1 Hadoop技术框架336
11.1.2 Spark技术框架339
11.2 大数据采集345
11.2.1 结构化数据采集346
11.2.2 非结构化数据采集347
11.3 大数据治理350
11.3.1 SparkSQL大数据开发中台351
11.3.2 ETL过程的设计实践353
11.3.3 数据仓库建设357
11.3.4 数据标签设计360
11.4 大数据展示362
11.4.1 大数据索引363
11.4.2 多维模型分析367
11.4.3 HBase数据库369