单片应用将多个功能的用户界面和数据访问层组合到一个应用中。 通常,单片应用将作为单个代码库存在,由组织内的多个团队进行修改,并作为包含这些团队维护的所有功能的单个单元进行部署。
由于组件紧密集成,单片应用通常更易于开发和部署。 然而,随着应用程序的范围和性能要求的增加,整体式应用程序会变得难以维护和扩展。
单片系统非常适合规模较小、不太复杂且不需要快速扩展或定期维护的应用。 以下是一些通常具有单一基础的应用示例(尽管它们的新功能可能基于更加容器化的基础设施)。
虽然单片架构的某些方面已经过时,但它仍然有许多用途和积极的属性。
整体式架构的优点包括:
虽然整体的单一性有其积极因素,但也可能引发问题。
整体式架构的一些缺点包括:
与单体架构相对的是微服务架构。 微服务是一种软件架构方法,它由小组件构建大型复杂的应用。 这些组件可以各自执行单一功能(例如,身份验证、通知或付款处理)或作为整体内的捆绑包工作。 “微服务”(或简称“服务”)也是指小组件本身的术语。
虽然单片应用程序紧密耦合(意味着它们的组件是相互连接的),但微服务应用程序是分布式的(意味着它们的组件可以独立运行)。 随着应用变得越来越大、越来越复杂,许多组织正在探索从整体式架构迁移或以微服务格式合并新的应用程序。
NGINX 很荣幸为那些探索单片和微服务的人提供以下免费教育资源