微服务架构与实践
单块架构
功能集中、代码和数据中心化、一个发布包、部署后运行在统一进程的应用程序,我们通常称之为单块架构 yingyc
优点
- 易于开发
- 易于测试
- 易于部署
- 易于水平伸缩
挑战
- 维护成本增加
- 持续交付周期长
- 新人培养周期长
- 技术选型成本高
- 可扩展性差
- 构建全功能团队难
微服务架构
一组小的服务、运行在独立进程、以及用轻量级的通信、独立部署特征、相对较少的集中式管理等等.
优点
- 独立性
- 单一职责
- 技术多样性
挑战
- 分布式系统的复杂性
- 性能
- 可靠性
- 异步
- 数据一致性
- 工具
- 运维成本
- 配置
- 部署
- 监控与告警
- 日志收集
- 部署自动化
- DevOps 与组织结构
- 服务间依赖测试
- 服务建依赖管理
实践
- 持续集成和部署
- 通信框架
- 服务依赖测试
- 单元测试
- 接口(契约)测试
- 集成测试
- 端到端测试