微服务与云原生应用开发:架构、方法与迁移策略
1. 微服务架构的特性
微服务方法能有效解决小批量交付和可扩展性问题。Martin Fowler 定义了微服务的关键特性:
- 通过服务进行组件化 :微服务允许开发和交付具有明确定义 API 的组件化服务,这些服务可以组合在一起提供复杂服务。
- 围绕业务能力组织 :将单体架构按业务功能分解为更小的服务。每个业务能力被架构为独立的服务,可独立开发和交付。这也解决了可扩展性挑战,可根据需求对特定业务能力的微服务进行水平扩展,而不影响其他微服务的部署。
- 产品而非项目 :同一团队应在微服务的整个生命周期内负责,而不是由不同团队执行一系列项目,且项目团队在组件生命周期内缺乏所有权。
- 智能端点和简单管道 :使用简单的 REST API 或轻量级消息总线作为架构接口,使微服务能够以轻量级方式与其他微服务、外部服务和应用程序进行通信,便于编排和管理。
- 去中心化治理 :开发和交付微服务的团队可以为所需技术选择最佳的平台和工具。微服务相互独立,通过明确定义的 API 进行通信,无需标准化的开发语言或技术栈。
- 去中心化数据管理 :如果应用层被架构为小组件,那么持久层的数据模式需要与这种架构模型的要求相匹配,不再需要支持单个单体访问数据的数据存储。
- 基础设施自动化 :编排大量微服务的持续交付需要工具来支持其规模、交付和生命周期管理。利用 PaaS
超级会员免费看
订阅专栏 解锁全文
171万+

被折叠的 条评论
为什么被折叠?



