Architecture 如何正确设计应用程序结构和分离应用程序组件?

Architecture 如何正确设计应用程序结构和分离应用程序组件?,architecture,scalability,Architecture,Scalability,我在应用程序中有以下主要组件: 站点和客户端面板 控制面板(仪表板) 后台服务(计费任务和消息) 原料药 我的问题是如何在应用程序结构中分离这些组件,这样它就可以随着流量的增加而扩展,而且在初始部署后还可以维护并易于继续开发 目前,我正试图使它成为一个单一的应用程序,并在运行时根据启动配置和路径和域的路由将逻辑分离 我认为的另一个选择是为每个组件制作单独的应用程序,但是维护四个应用程序而不是一个,配置、版本、共享源(模型等),继续开发将是一个地狱 另一个问题是像facebook这样的大型服务

我在应用程序中有以下主要组件:

  • 站点和客户端面板
  • 控制面板(仪表板)
  • 后台服务(计费任务和消息)
  • 原料药
我的问题是如何在应用程序结构中分离这些组件,这样它就可以随着流量的增加而扩展,而且在初始部署后还可以维护并易于继续开发

目前,我正试图使它成为一个单一的应用程序,并在运行时根据启动配置和路径和域的路由将逻辑分离

我认为的另一个选择是为每个组件制作单独的应用程序,但是维护四个应用程序而不是一个,配置、版本、共享源(模型等),继续开发将是一个地狱

另一个问题是像facebook这样的大型服务如何设计其服务仪表盘、控制面板或应用程序的管理部分

应用程序在RoR上,但问题不依赖于语言和框架


我知道这个主题非常大,但任何帮助都是非常感谢的,至少-可能是一些关于我从哪里开始阅读的参考资料)

而不是4个不同的应用程序这听起来像是多个由明确定义的接口分隔的模块,即使在运行时也可以互换

每一个这样分离的部分都成为模块化架构的一个元素。每个部分都应该被隔离,并且应该导出和导入定义良好的接口

从这里


有点老了,但仍然相关。

这实际上取决于您使用的框架和语言。试着寻找“单一责任”。这是一个设计原则,基本上说“类应该只负责一件事”。例如,控制器只负责返回视图,而不负责处理表单中的postdata。这是另一个班级的责任。每种语言/框架都有许多实现。@Nick我认为你有一个很好的观点。是的,每种语言都有各自的实现方式。但是,OP似乎提出了更高层次的问题。