背景
结构问题
定义、设计软件模块化、模块之间交互,用户界面风格、对外接口方法、高层事务的对象操作、流程
[A]整体问题 系统结构
[B]局部问题 [1]数据结构
[2]算法
[3]编程范式 面向过程、面向对象
[1]元素组成、功能分配 1
[2]通信、同步、数据访问协议 1-n
[3]总体组织结构、全局控制结构 n-n
[4]物理分布
[5]定标性能
名词
集群 同一业务,部署多台服务器 [单位时间执行任务数量 提高 n/t ]
节点 不同业务,部署不同服务器 [单位任务数量执行时间 缩短 t/n ]
概念
架构 Architecture
定义 关于软件整体结构与组件的抽象描述
作用 指导软件系统设计、解决复杂架构问题 [设计决定 = 商业、技术决定]
语言 ADL架构描述语言
内部 系统完整、约束条件、审美需求
外部 用户环境、开发环境
要素 [1]Component 元件
[2]Connector 联接器 描述元件之间通讯路径、通讯机制、通讯效果
[3]Task-Flow 任务流 描述系统使用元件、联接器的完成流程
对象 [1]抽象组件 组件之间的连接、通讯描述
[2]实际组件 实现阶段,具体类、具体对象
[3]组件连接 接口
层次 [1]逻辑架构 软件系统的元件关系 视图层、控制层、业务层、数据持久层
[2]物理架构 硬件系统的元件部署 网络分流器、代理服务器、WEB服务器、应用服务器、数据服务器
[3]系统架构 系统的非功能性特征 可扩展、可靠、强壮、灵活、性能
视图
[1]用例视图 用例、场景 [用例模型子集]
用例图 描述用例、主角、普通设计类
时序图 描述设计对象、协作关系
[2]逻辑视图 系统、子系统、模块、层级、设计包、设计类[设计模型子集]
[3]实施视图 实施模型[模块、包、层]
[4]进程视图 进程、线程的描述:交互、配置
设计对象、类向任务的分配情况
[5]配置视图 物理节点的描述、任务分配 部署模型子集
流程 [1]任务描述
[2]需求分析
[3]设计流程
[4]编码
[5]测试
[6]交付
分类
[1]All In One 单一应用框架
应用 数据访问框架(ORM)
目的 简化CRUD
特性 单一应用
[2]Vertical Application 垂直应用框架
应用 WEB框架(MVC)
目的 加速前端页面开发
特性 多个应用
[3]Distributed Service 分布式应用框架
应用 远程调用(RPC)
目的 业务复用整合 【应用交互】
特性 服务中心
[4]Elastic Computing 流动计算架构
应用 资源调度、治理中心(SOA)
目的 提高机器利用率 【服务调用】
特性 调度中心
对比 部署形式 资源问题 构建交付
[1]单体式 集群部署 共享内存、数据库 同时
[2]分布式 服务部署 分而治之 独立
单体架构
定义
集中式存储
定义
分布式架构
分布式架构 Distributed System
定义
特点
性能 跨进程、跨网络 [网络延迟、带宽限制]
运维 单个系统拆分多个服务,分别配置、部署、监控、日志处理
通信 中间件、异步通信
故障 !!!
选择 CAP[一致性、可用性、分区容错性]
原理
[1]单台计算机,分解问题
[2]多台计算机,分别处理
[3]单台计算机,综合计算结果
应用
[1]分而治之 [1]业务拆分
[2]网站拆分 产品线分别运营
[3]应用拆分 独立部署、超链接建立关系、消息队列分发数据、存储系统共用数据
[2]服务治理 [1]业务服务
[2]公共服务
[3]降低耦合 [1]服务 生成消费模式
[2]消息 发布订阅模式
[4]平台复用 [1]负载均衡
[2]失效转移
[3]版本管理
[4]实时监控
[5]高效远程通信
[6]整合异构系统
[7]入侵应用最小
分布式存储
Distributed Storage System
定义 分散存储
角色
[1]位置服务器 定位存储信息
[2]存储服务器 分散存储数据
一致性 故障、并行存储,数据副本
可用性 部分节点故障,不影响读写请求
容错性 网络故障
微服务架构
定义 云中部署应用和服务的技术
特点 围绕业务领域组件创建应用,独立开发,管理加速