单体架构
- 优点
- 简单
- 测试直观
- 部署简单
- 横向扩展简单,即运行多个实例
- 问题
- 复杂
- 系统大了之后,复杂性很大
- 开发慢
- 改动一个小点,就要打包运行整个项目
- 难扩展
- 有的模块需要简单配置,有的需要高级硬件配置,而整个项目是一个配置
- 没有故障隔离
- 一个模块挂了,连带整个项目挂掉
- 技术升级困难
- 尝试新技术的时候,需要改动所有相关的地方,成本高
- 复杂
在我看来,复杂性的提升导致单体很难
- 复杂性由元素,以及元素之间的关系构成
- 元素多了
- 大家不合
- 有的要求高,有的要求低
- 大家不合
- 元素关系多了
- 你要改动,我受影响了
- 你挂了,我也挂了
- 你要更新,我也相应要更新
- 程序员只想改动你,却不得不把你的兄弟姐妹也了解一遍