单体应用将多个功能的用户界面和数据访问层整合到一个应用中。通常情况下,单体应用将作为单个代码库存在,由企业内的多个团队进行修改,并部署为一个单元(包含这些团队维护的所有功能)。
得益于其组件的紧密集成,单体应用通常更易于开发和部署。然而,随着应用范围的扩大和性能需求的增加,单体应用可能会变得难以维护和扩展。
单体系统非常适合不太复杂的小型应用,这些应用无需快速扩展或定期维护。下面是一些通常采用单体系统的应用示例(尽管其新功能可能基于更加容器的基础架构)。
虽然单体架构的某些方面已经过时,但仍有许多用途和优势。
单体架构的一些优势包括:
虽然单体架构具有其独特优势,但也可能引发一系列问题。
单体架构的一些缺点包括:
与单体架构相对的是微服务架构。微服务是一种软件架构方法,可利用多个小组件构建大型复杂应用。每个组件均可执行单个功能(例如身份验证、通知或支付流程),也可以作为单体架构中的捆绑组件。“微服务”(或“服务 [service]”)亦指小组件本身。
单体应用是紧密耦合型(意味着其组件互连),而微服务应用则为分布式(意味着其组件可以独立工作)。随着应用变得越来越大、越来越复杂,许多企业正探索如何摒弃单体架构或以微服务形式整合新应用。
NGINX 很高兴能为正在探究单体架构和微服务架构的用户提供更多的免费学习资源: