我的技术十年(4) - 技术架构
架构是不断思考衡量的产物。好的架构设计需要适应当前环境,并且尽量兼顾可能的未来。
架构设计原则
除了业务需求这个大前提,有些前人总结的原则有助于我们不偏离重点:
- DRY - Don’t Repeat Yourself
- KISS - Keep It Simple, Stupid
- S.O.L.I.D原则 - 面向对象五大原则
- 好莱坞原则
- 高内聚, 低耦合
- 惯例优于配置原则
- 关注点分离
架构设计实践
以下列举我偏向的架构实现方式
开发
- 任何项目依赖都需要能够管理
- 组件化、模块化、服务化
- 前后端分离, 后端无状态
运行
- 支持从单机到分布式、集群化部署的切换
- 支持灾备,热备,内置异常检测
- 提前埋点,监控问题
运维自动化
人工干预越少问题越少
- 开发、测试、正式环境统一化、自动化。可选工具如: docker、fabric、ansible、ci工具(jenkins)
- 尽量保持运行和开发环境一致,提早发现问题。
- app等上线/上市场过程自动化