随着也业务的不断发展,原来可行的应用,逐渐演变成了单体地狱(泥球模式:随意的架构、庞大的、草率的、布满了胶带和线路,如同意大利面条一般的代码丛林),软件的交付速度已经放缓,敏捷开发和部署已经不可能。
逃离单体地狱的途径必将是选择微服务架构(拯救之道)。
微服务架构作为模块化的一种形式。每个微服务有其独特的独立性,且都拥有自己的数据库。微服务架构的一个关键特性是每一个微服务之间都是松耦合的,它们仅仅通过API进行通信。
微服务架构的好处:
- 使大型的复杂应用程序可以持续交付和持续部署
- 每个微服务相对较小并容易维护
- 服务可以独立部署
- 服务可以独立扩展
- 微服务架构可以实现团队的自治
- 更容易实验和采纳新的技术
- 更好的容错性
微服务架构的弊端:
- 微服务的拆分和定义是一项挑战
- 分布式系统带来的复杂性,使开发、测试和部署变得更困难(运维复杂度化解开发复杂度的痛点)
- 当部署跨多个服务的功能时需要谨慎地协调更多开发团队
- 开发者需要思考到底应该在应用的什么阶段使用微服务架构