21 | 分布式架构的冰与火
使用分布式架构的2个原因:
- 增大系统容量
- 加强系统可用性
分布式系统发展过程:
- 70年代模块化编程
- 80年代面向模块编程
- 90年代基于接口/构件设计
- 2000年左右出现SOA
- 2010年左右出现微服务
22 | 从亚马逊的实践,谈分布式系统的难点
亚马逊是最早提出并实践分布式服务化架构的公司。
亚马逊架构规定:
- 所有团队的程序模块都要通过Service Interface方式将其数据和功能开放出来。
- 团队之间程序通信,都要通过这些接口。
- 除此之外,没有其他通信方式。
- 任何技术都可用。
- 所有的Service Interface,都必须从骨子里到表面设计成对外开放的。
- 不这样做的人会被炒鱿鱼。
亚马逊的最佳实践:
- 分布式服务的架构需要分布式的团队架构
- 分布式服务差错不容易。
- 没有专职的测试人员,开发人员做所有的事情。
- 运维优先。
- 内部服务和外部服务保持一致。
分布式系统中需要注意的问题:
- 异构系统的不标准问题
- 软件和应用不标准
- 通信协议不标准
- 数据格式不标准
- 开发和运维的过程和方法不标准
- 系统架构中的服务依赖性问题
- 故障发生的概率更大
- 多层架构的运维复杂度更大
- 我们把系统分成基础层、平台层、应用层和接入层