架构设计的目的:主要是为了解决软件系统复杂度带来的问题。首先,要根据系统复杂点决策使用何种解决方案;其次,再考虑用优秀的软件框架使得代码实现更牛X。
架构设计也主要服务于:
* 业务架构:是对业务需求的提炼和抽象。
* 业务量级:主要是软件运维期间业务的复杂度。要考虑:
* 存储能力
* 吞吐能力
* 容错能力
架构设计的选择:
* 距离/时间
* 成本
* 性能
软件系统复杂度体现在
* 性能
* 系统被访问的频率,tips/秒。
* 系统的数据存储是否是瓶颈。
* 延迟。秒级要用到流式计算;分钟级用后台计算;小时级直接用数据库。
* 可扩展性
* 高可用性
* 系统宕机时长。可容忍1分钟、1小时?绝大部分内部系统的宕机时间可以是1小时。
* 数据丢失。绝对不能丢,可以丢一部分再用其他方式修复。
* 安全性
* 成本
- 软件工程
- 1. 基础
- 计算
- 网络
- 存储
- 2. 开发/运维
- 微服务
- 容器化(Docker)
- 容器网络
- 持续集成
- 持续发布
- 3. 架构
- 操作系统
- Linux服务器
- windows
- 内存
- 应用软件
- 前端
- 后端
- 数据库
- 协议
- 服务
- 分布式
- LNMP+Vue.js
- web网站架构技术
- 架构演化
- 架构分层
- Layer1. Frontend
- Layer2. Application
- Layer3. Service
- Layer4. Storage
- Layer5. Backend
- Layer6. Operation
- Layer7. Security
- Layer8. DataCenter
- 架构模式
- 架构要素
- 1. Performance
- 2. Availability
- 3. 可伸缩性
- 4. 可扩展性
- 5. 安全
- 6. 成本
- 4. 开发项目
- vue-php