单体应用将多个功能的用户界面和数据访问层整合到一个应用中。通常,单体应用以单个代码库的形式存在,由组织内的多个团队进行修改,并作为包含这些团队维护的所有功能的单个单元进行部署。
由于组件之间紧密集成,因此单体应用通常更易开发和部署。然而,随着应用范围和性能需求的增加,单体应用可能会变得难以维护和扩展。
对于规模较小、复杂程度较低、不需要快速扩展或日常维护的应用而言,单体系统可能是不错的选择。以下是一些通常采用单体基础设施的应用示例(尽管其新功能可能基于更容器化的基础设施)。
单体架构的单一性固然有其优点,但也会导致一些问题。
单体架构的一些劣势包括:
与单体架构形成鲜明对比的是微服务架构。微服务是一种软件架构方法,使用小型组件构建大型复杂应用。这些组件可以各自执行单一功能(如身份验证、通知或支付处理),也可以在单体中作为组合共同工作。“微服务”(或“服务”)也可以指小型组件本身。
单体应用紧密耦合(这表示其组件相互连接),而微服务应用分布式应用(这表示其组件可以独立行动)。随着应用变得更大、更复杂,许多组织都在探索从单体应用迁移到微服务应用,或者以微服务的形式整合新的应用。
NGINX 很荣幸能为探索单体和微服务的用户提供以下免费的教育资源