what are we talking about when we talk about architecture
- 设计是否可以拓展性:业务变化的时候是否代码变化可以更少
- 模块是否可以松耦合,故障是否是隔离
- 性能
- 监控
- 足够简单,agile,而非为了“新技术名词”而引入复杂的技术栈
- 是否具有规划性、可实施性:有可实施的架构规划,而非漂亮但不落地的ppt
best practise
- N+1 设计
- 回滚设计
- 禁用
- 监控
- 设计多活中心
- 成熟的技术
- 异步设计
- 无状态系统
- 考虑拓展前,再想下一步拓展计划
- 水平拓展而非垂直升级
- 非核心则购买
- 小构建、小发布、快试错
- 故障隔离
- 自动化