上QQ阅读APP看书,第一时间看更新
1.1.2 什么是单体架构
许多中小型基于Web的应用程序都是使用单体架构风格构建的。在单体架构中,应用程序作为单个可部署的软件制品交付。所有用户界面、业务和数据库访问逻辑都打包到一个唯一的应用程序中,并部署到应用程序服务器。图1-1显示了这个应用程序的基本架构。
虽然应用程序可能是作为单个工作单元部署的,但经常会有多个开发团队在一个应用程序上工作。每个开发团队负责应用程序的不同部分,并且他们经常用自己的功能部件来服务特定的客户。例如,想象一个场景,我们有一个内部定制的客户关系管理(CRM)应用,它涉及多个团队之间的合作,包括UI/UX团队、客户团队、数据仓库团队以及金融从业者等。
尽管微服务架构的支持者有时会否定单体应用程序,但单体应用程序通常是一个很好的选择。与n层或微服务等更复杂的架构相比,单体应用程序更容易构建/部署。如果用例定义良好并且不太可能改变,那么从单体应用程序开始可能是一个很好的决定。
然而,当应用程序的规模和复杂性开始增加时,单体应用程序可能会变得难以管理。对单体应用程序的每一个更改都可能对应用程序的其他部分产生级联效应,这可能会使应用程序变得耗时且代价高昂,特别是在生产系统中。我们有的第三个选择——微服务架构,提供了更大的灵活性和可维护性。
图1-1 单体应用程序强迫多个开发团队同步他们的交付日期,因为他们的代码需要被
作为一个整体单元进行构建、测试和部署