具有微应用程序的完全可扩展的网站
Fully scalable website with micro-applications
我正在为我公司希望提供的新解决方案设计一个云部署网站。我一直在尝试回答几个问题,但一直没有成功,所以在罗马的时候。
首先,我不希望网站受制于任何一个特定的框架。我知道没有办法让一个网站完全面向未来,但我宁愿不要把所有的鸡蛋都放在一个篮子里。
其次,我想完全分离前后端。我有一份我想要这样做的原因清单,不一定要讨论它们是什么。大部分服务器端渲染是不可能的。
那我会怎样呢?
我最初的设计想法是有一个 REST API 可以被任何 API 调用访问(这可能在未来转向 GraphQL)。
我最纠结的设计决策是针对前端的。该网站将是一个仪表板类型的系统,租户可以在其中登录并查看屏幕。
我想我会有一种 shell,它与 index.html 挂钩。这将有它自己的路由,这将呈现完全独立于 shell 逻辑的微应用程序。
例如,如果我加载 index.html,路径为“/”
它负责一些路线,比方说
“/待办事项”
“/账户”
如果我访问 /todos 路由,我的 shell 应用程序将呈现该微型应用程序。此应用程序将完全独立于 shell,除了一些可能通过 window 加载的数据。通过 shell 应用程序呈现此应用程序后。
因此,例如,我的 todos 路由可以是一个独立的 redux 应用程序。它可以有自己的路由等
这是一个常见的架构吗?有这方面的例子吗?有更好的方法吗?
感谢您的任何见解!
听起来你确实过度设计了这个野兽。
您可能会采用这样的架构来构建一个巨大的构建,其中有许多开发团队都各自独立工作。小型敏捷团队,以上内容会在每个 "app"
之间的上下文切换中产生大量样板文件和脑痛
微服务架构真的很棒。只是不要把它分解得太小,仔细阅读你的用例并相应地分解你的服务。
例如:我们是一个 3 人团队。我们设计了一个相当大的应用程序:
- Php API
- 后台管理界面(redux)
- 前端网站(html、反应、php)
- 搜索服务(弹性搜索)
- 缓存(redis)
- 数据存储(mysql)
所有 运行 都在多个 docker 容器中跨多个主机。拉下后端..好吧,前端网站还在,运行!
我正在为我公司希望提供的新解决方案设计一个云部署网站。我一直在尝试回答几个问题,但一直没有成功,所以在罗马的时候。
首先,我不希望网站受制于任何一个特定的框架。我知道没有办法让一个网站完全面向未来,但我宁愿不要把所有的鸡蛋都放在一个篮子里。
其次,我想完全分离前后端。我有一份我想要这样做的原因清单,不一定要讨论它们是什么。大部分服务器端渲染是不可能的。
那我会怎样呢?
我最初的设计想法是有一个 REST API 可以被任何 API 调用访问(这可能在未来转向 GraphQL)。
我最纠结的设计决策是针对前端的。该网站将是一个仪表板类型的系统,租户可以在其中登录并查看屏幕。
我想我会有一种 shell,它与 index.html 挂钩。这将有它自己的路由,这将呈现完全独立于 shell 逻辑的微应用程序。
例如,如果我加载 index.html,路径为“/”
它负责一些路线,比方说 “/待办事项” “/账户”
如果我访问 /todos 路由,我的 shell 应用程序将呈现该微型应用程序。此应用程序将完全独立于 shell,除了一些可能通过 window 加载的数据。通过 shell 应用程序呈现此应用程序后。
因此,例如,我的 todos 路由可以是一个独立的 redux 应用程序。它可以有自己的路由等
这是一个常见的架构吗?有这方面的例子吗?有更好的方法吗?
感谢您的任何见解!
听起来你确实过度设计了这个野兽。
您可能会采用这样的架构来构建一个巨大的构建,其中有许多开发团队都各自独立工作。小型敏捷团队,以上内容会在每个 "app"
之间的上下文切换中产生大量样板文件和脑痛微服务架构真的很棒。只是不要把它分解得太小,仔细阅读你的用例并相应地分解你的服务。
例如:我们是一个 3 人团队。我们设计了一个相当大的应用程序:
- Php API
- 后台管理界面(redux)
- 前端网站(html、反应、php)
- 搜索服务(弹性搜索)
- 缓存(redis)
- 数据存储(mysql)
所有 运行 都在多个 docker 容器中跨多个主机。拉下后端..好吧,前端网站还在,运行!