单体架构和微服务之间有何区别?

开始研究谎言前,我们先来定义一下术语。后端软件架构可以分为单体和微服务两种。单体架构指的是由一台或多台服务器运行单个应用程序,其通常从单个存储库中部署。使用多台服务器时,这些服务器将运行相同的代码。从90年代到2000年代,多数情况下这都是默认的架构。

随着互联网的发展,大型公司开始面临单体架构的局限。为解决这一问题,公司开始将其代码分割成在不同服务器上运行的多个组件。例如,一家公司可能会有运行日志记录的服务、调用外部API的服务以及管理数据库的服务。亚马逊AWS在这一风潮中扮演了重要角色,因为它让部署服务器和管理基础设施的工作变得非常容易。

随着时间流逝,中小型公司也开始接受这种新的发展范式。很快,一个围绕微服务的产业发展壮大起来,它逐渐成为寻求扩展的企业默认架构。不幸的是,现在有许多公司由于这种选择而掉进了各种之前想不到的坑里。