第一章:单体架构时代(1960s-1990s)
早期特征
-
集中式大型机
-
IBM System/360(1964)
-
单一计算中心
-
终端-主机模式
-
-
单体应用架构
-
所有功能打包在一个应用内
-
紧耦合
-
垂直扩展(Scale Up)
-
典型架构
┌─────────────────────┐ │ 用户界面层 │ ├─────────────────────┤ │ 业务逻辑层 │ ├─────────────────────┤ │ 数据访问层 │ ├─────────────────────┤ │ 数据库 │ └─────────────────────┘
优势与局限
优势:
-
开发简单
-
部署容易
-
测试方便
局限:
-
维护困难
-
扩展性差
-
技术栈单一
-
发布周期长
第二章:客户端-服务器架构(1990s)
两层架构(C/S)
┌─────────┐ ┌─────────┐ │ 客户端 │──────│ 服务器 │ └─────────┘ └─────────┘
-
客户端:用户界面 + 业务逻辑
-
服务器:数据库
-
代表:PowerBuilder、Delphi应用
三层架构(B/S)
┌─────────┐ ┌─────────┐ ┌─────────┐ │ 表现层 │──│ 逻辑层 │──│ 数据层 │ └─────────┘ └─────────┘ └─────────┘
-
表现层:浏览器/客户端
-
逻辑层:应用服务器
-
数据层:数据库服务器
-
代表:J2EE、.NET Web应用
技术栈
-
客户端:HTML、JavaScript、Flash
-
服务器端:Java EE、ASP.NET、PHP
-
通信协议:HTTP、RPC
-
服务器:WebLogic、WebSphere、Tomcat
第三章:面向服务架构(2000s)
SOA核心理念
-
服务为中心
-
松耦合
-
可重用
-
标准化接口
关键技术组件
-
ESB(企业服务总线)
-
服务路由
-
协议转换
-
消息转换
-
-
服务治理
-
服务注册与发现
-
监控与管理
-
安全控制
-
-
标准协议
-
SOAP
-
WSDL
-
UDDI
-
架构模式
┌─────────────────────────────────┐ │ 企业服务总线 │ │ ┌─────┐ ┌─────┐ ┌─────┐ │ │ │服务A│ │服务B│ │服务C│ │ │ └─────┘ └─────┘ └─────┘ │ └─────────────────────────────────┘
挑战
-
实施复杂
-
ESB成为单点故障
-
性能开销大
-
敏捷性不足
第四章:微服务架构(2010s)
微服务定义
-
单一职责的小型服务
-
独立部署
-
围绕业务能力构建
-
去中心化治理
技术演进驱动力
-
云计算普及
-
容器技术(Docker,2013)
-
DevOps文化
-
敏捷开发需求
核心技术栈
┌─────────────────────────────────┐ │ 服务网格 │ API网关 │ ├─────────────────────────────────┤ │ 服务注册发现 │ 配置中心 │ 熔断器 │ ├─────────────────────────────────┤ │ 服务A │ 服务B │ 服务C │ 服务D │ ├─────────────────────────────────┤ │ 容器编排(Kubernetes) │ └─────────────────────────────────┘
代表技术
-
通信:REST、gRPC
-
容器:Docker
-
编排:Kubernetes(2014)
-
服务网格:Istio、Linkerd
-
监控:Prometheus、Grafana
优势
-
独立部署
-
技术栈灵活
-
可扩展性强
-
容错性好
挑战
-
分布式系统复杂度
-
数据一致性
-
运维复杂度
-
测试困难
第五章:云原生架构(2018-至今)
云原生定义
-
容器化
-
动态编排
-
微服务
-
声明式API
CNCF技术图谱
应用定义与开发层 ↓ 编排与管理层 ↓ 运行时层 ↓ 供应与安全保障层 ↓ 平台层
核心模式
-
服务网格
-
通信可观测性
-
流量管理
-
安全策略
-
-
Serverless
-
函数即服务(FaaS)
-
后端即服务(BaaS)
-
按需计费
-
-
事件驱动
-
异步通信
-
事件溯源
-
CQRS
-
十二要素应用
-
基准代码
-
依赖
-
配置
-
后端服务
-
构建、发布、运行
-
进程
-
端口绑定
-
并发
-
易处理
-
开发与生产环境等价
-
日志
-
管理进程
第六章:现代架构模式(2020s)
混合架构模式
-
单体+微服务混合
-
新功能用微服务
-
旧功能逐步迁移
-
-
多运行时架构
-
Dapr(分布式应用运行时)
-
分离业务与基础设施
-
-
可观测性驱动
-
链路追踪
-
指标收集
-
日志聚合
-
架构演进趋势
单体 → 微服务 → 服务网格 → 多运行时
第七章:行业特定架构
大数据架构
┌─────────────────────────────────┐ │ 服务网格 │ API网关 │ ├─────────────────────────────────┤ │ 服务注册发现 │ 配置中心 │ 熔断器 │ ├─────────────────────────────────┤ │ 服务A │ 服务B │ 服务C │ 服务D │ ├─────────────────────────────────┤ │ 容器编排(Kubernetes) │ └─────────────────────────────────┘
AI/ML架构
数据准备 → 特征工程 → 模型训练 → 模型部署 → 推理服务 ↓ ↓ ↓ ↓ ↓ DataOps Feature MLFlow TensorFlow Kubeflow Store Serving
边缘计算架构
云中心 → 区域中心 → 边缘节点 → 终端设备 ↓ ↓ ↓ ↓ 集中计算 边缘云 轻量计算 数据采集
第八章:架构设计原则演进
设计原则变迁
|
时期 |
核心原则 |
技术体现 |
|---|---|---|
|
1990s |
分层 |
MVC、三层架构 |
|
2000s |
解耦 |
SOA、EJB |
|
2010s |
独立 |
微服务、容器 |
|
2020s |
自治 |
服务网格、Dapr |
质量属性关注点变化
-
早期:功能正确性、性能
-
中期:可扩展性、可用性
-
现代:可观测性、韧性、成本
第九章:未来架构趋势
技术方向
-
AI增强架构
-
AI辅助架构设计
-
智能运维
-
自适应系统
-
-
可持续架构
-
能效优化
-
碳足迹追踪
-
绿色计算
-
-
量子计算准备
-
量子算法适配
-
经典-量子混合架构
-
-
隐私计算架构
-
联邦学习
-
安全多方计算
-
同态加密
-
架构范式预测
-
无服务器优先
-
事件驱动主流化
-
状态管理标准化
-
-
平台工程
-
内部开发者平台
-
自助服务门户
-
-
API经济
-
API产品化
-
API市场
-
-
可组合架构
-
模块化业务
-
快速组装
-
第十章:架构师能力演进
技能栈变化
过去:深度技术专家
现在:广度+深度+T型人才
未来:技术+业务+领导力
核心能力维度
-
技术深度
-
多语言/框架
-
云原生技术栈
-
架构模式
-
-
业务理解
-
领域驱动设计
-
产品思维
-
商业敏感度
-
-
领导力
-
技术愿景
-
团队赋能
-
决策能力
-
-
软技能
-
沟通协调
-
风险管理
-
成本控制
-
总结:架构演进规律
演进驱动因素
-
业务需求
-
规模增长
-
复杂度增加
-
变化加速
-
-
技术进步
-
硬件发展
-
软件创新
-
工具完善
-
-
组织演进
-
团队结构
-
研发流程
-
文化变革
-
永恒挑战
-
复杂度管理
-
变更与稳定平衡
-
技术债务控制
-
成本效益优化
成功架构特征
-
适应性:应对变化
-
简单性:易于理解
-
演进性:支持渐进改进
-
经济性:合理成本效益
软件架构60年的发展,是不断应对复杂度、追求质量属性的过程,从“如何实现功能”到“如何优雅地扩展、演进和适应”,体现了软件工程从“技艺”到“科学”的升华。
4051

被折叠的 条评论
为什么被折叠?



