第一章 可靠、可扩展与可维护的应用系统
数据系统(data system)的核心设计目标
- 可靠性(Reliability). 当出现意外情况,系统可以继续正常运转
- 可扩展性(Scalability). 随着规模的增长,例如数据量,流量或复杂性,系统应以合理的方式匹配这种增长
- 可维护性(Maintainability).
故障类型
- 硬件错误
- 冗余
- 通过软件容错
- 软件错误
- 全面测试
- 进程隔离
- 监控
- 及时发现差异
- 人为失误
- 以最小出错的方式来设计系统
- 充分测试
- 出现错误,快速恢复
- 监控
- 流程管理
描述负载
描述性能
- 吞吐量(throughput)
- 响应时间(response time)
- 平均
- 百分位数(p50 p95 p99 p999)
可维护性
- 可运维性: 运维更轻松
- 监控
- 自动化
- 良好文档和易于理解的操作模式
- 良好的默认配置,管理员需要时方便修改
- 简单性: 简化复杂度
- 抽象,隐藏细节,(例如使用高级语言,隐藏操作系统等)
- 可演化性: 易于改变