首先对比一下单体应用的问题:
1、单体应用过于复杂,超过了单个开发人员的理解能力
2、缓慢的开发速度。
3、应用扩展变得越来越困难。
4、新版本更新上线速度变的缓慢
5、整个应用的稳定性变差
6、技术栈和选型和更新变的困难。
准对单体应用的问题,微服务架构提供了相应的解决方案:
微服务的核心思想:把应用按照功能划分成多个独立的服务,每个服务都是可以独立运行的应用。
微服务的特征:
1、微服务架构使用服务作为组件化的单元
2、微服务架构的开发团队围绕业务能力来组织
3、微服务架构使用去中心化的管理模式
4、微服务架构使用去中心的数据存储
5、微服务架构强调基础设施的自动化
微服务对于不同的角色人员有不同的意义:
1、从架构的角度说,他是由多个独立服务组成的分布式系统。
2、从人员管理的角度来说,他要求员工组成小而完备的自主团队
3、从项目管理的角度来说,他推荐使用敏捷软件开发流程。
4、从开发的角度来说,每个服务都有独立的开发团队开发,对外提供API
5、从测试团队来说,需要对服务的API契约进行测试
6、对于运维的角度来说,持续集成和持续部署