微服务:架构新趋势的深度剖析
一、微服务的诞生背景与优势
多年来,我们一直在探寻构建系统的更优方法。从过往经验中学习,采用新技术,观察新兴科技公司的独特运营模式,这些都促使我们创造出能让客户和开发者都更满意的 IT 系统。
Eric Evans 的《领域驱动设计》让我们明白在代码中呈现现实世界的重要性,也为系统建模提供了更好的思路。持续交付的概念让我们能更高效地将软件投入生产,让我们把每次代码提交都视为潜在的发布版本。对 Web 工作原理的理解推动了机器间通信方式的改进。Alistair Cockburn 的六边形架构使我们摆脱了业务逻辑易隐藏的分层架构。虚拟化平台让我们能按需配置和调整机器,基础设施自动化则使大规模管理机器成为可能。像亚马逊、谷歌等大型成功企业倡导小团队负责服务全生命周期的理念,而 Netflix 更是分享了构建具有强大抗脆弱性系统的方法。
在这样的背景下,微服务应运而生。它并非事先被发明或定义,而是从实际应用中逐渐发展成一种趋势和模式。许多组织发现,采用细粒度的微服务架构能更快地交付软件,更轻松地接纳新技术。微服务给予我们更大的决策自由度,让我们能更迅速地应对不可避免的变化。
二、微服务的定义与特点
微服务是小型、自主且协同工作的服务。下面我们详细剖析其特点。
(一)专注单一功能
随着代码量的增加和新功能的添加,代码库会不断膨胀。在大型代码库中,很难确定更改代码的具体位置,即使是追求清晰模块化的单体代码库,也常常会出现内部边界模糊的问题,相关功能的代码分散在各处,导致调试和实现功能变得困难。
在单体系统中,我们通常通过创建抽象或模块来提高代码的内聚性。内
超级会员免费看
订阅专栏 解锁全文
65

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



