架构模式:单体架构
上下文
您正在开发服务器端企业应用程序。它必须支持各种不同的客户端,包括桌面浏览器,移动浏览器和本机移动应用程序。该应用程序还可能会公开供第三方使用的API。它还可以通过Web服务或消息代理与其他应用程序集成。应用程序通过执行业务逻辑来处理请求(HTTP请求和消息);访问数据库;与其他系统交换消息;并返回HTML / JSON / XML响应。存在与应用程序的不同功能区域相对应的逻辑组件。
问题
应用程序的部署架构是什么?
关注点
- 有一组开发人员在开发应用程序
- 新团队成员必须快速提高工作效率
- 应用程序必须易于理解和修改
- 您希望实践应用程序的持续部署
- 您必须在多台计算机上运行多个应用程序实例才能满足可伸缩性和可用性要求
- 您希望利用新兴技术(框架,编程语言等)
结论
使用单片架构构建应用程序。例如:
- 单个Java WAR文件。
- Rails或NodeJS代码的单个目录层次结构
例子
让我们假设您正在构建一个电子商务应用程序,该应用程序接收来自客户的订单,验证库存和可用信用,并运送它们。该应用程序包含几个组件,包括实现用户界面的StoreFrontUI,以及用于检查信用,维护库存和装运订单的一些后端服务。
该应用程序部署为单个整体应用程序。例如,Java Web应用程序由单个WAR文件组成,该文件在Web容器(如Tomcat)上运行。Rails应用程序包含使用例如Apache / Nginx上的Phusion Passenger或Tomcat上的JRuby部署的单个目录层次结构。您可以在负载均衡器后面运行应用程序的多个实例&