【问题标题】:Fully scalable website with micro-applications具有微应用程序的完全可扩展的网站
【发布时间】:2016-10-27 17:04:54
【问题描述】:

我正在为我的公司希望提供的新解决方案设计一个云部署网站。我一直在尝试回答几个问题,但没有任何运气,所以在罗马时。

首先,我不希望网站被束缚在任何一个特定的框架上。我知道没有办法完全证明一个网站的未来,但我宁愿不要把我们所有的鸡蛋放在一个篮子里。

其次,我希望前端和后端完全分离。我有一个我想要这样做的原因列表,不一定想进入关于他们是什么的对话。大多数情况下,服务器端渲染是不可能的。

那我该怎么办?

我最初的设计想法是有一个 REST API 可以访问任何 API 调用(这可能会在未来转向 GraphQL)。

我主要考虑的是前端的设计决策。该网站将是一个仪表板类型的系统,租户可以登录并查看他们的屏幕。

我在想我应该有一种外壳,它可以连接到 index.html。这将有它自己的路由,这将呈现完全独立于外壳逻辑的微应用程序。

例如,如果我加载 index.html,路径为“/”

它有一些自己负责的路线,比如说 “/待办事项” “/帐户”

如果我访问 /todos 路由,我的 shell 应用程序将呈现该微应用程序。这个应用程序将完全独立于外壳程序,除了一些可能通过窗口加载的数据。一旦通过 shell 应用程序呈现此应用程序。

例如,我的 todos 路由可能是一个独立的 redux 应用程序。它可以有自己的路由等。

这是一种通用架构吗?有这方面的例子吗?有没有更好的方法来解决这个问题?

感谢您的任何见解!

【问题讨论】:

    标签: rest reactjs redux react-router scalability


    【解决方案1】:

    听起来你确实过度设计了这只野兽。

    您可以采用这样的架构来构建一个巨大的构建,其中许多开发团队都单独工作。小型敏捷团队,以上内容会在每个“应用程序”之间的上下文切换中产生如此多的样板开销和脑痛

    微服务架构非常棒。只是不要把它分解得太小,仔细阅读你的用例并相应地分解你的服务。

    例如:我们是一个 3 人团队。我们设计了一个相当大的应用程序:

    1. PHP API
    2. 后端管理界面(redux)
    3. 前端网站(html、react、php)
    4. 搜索服务(弹性搜索)
    5. 缓存(redis)
    6. 数据存储 (mysql)

    所有内容都在跨多个主机的多个 docker 容器中运行。拉下后端..很好,前端网站仍在运行!

    【讨论】:

    • 欣赏您的洞察力。我想我在考虑将来在可能不是同一个框架的微应用中羽化时走在了前面。
    • 如果你在未来证明了那么多,未来永远不会到来 ;-)
    猜你喜欢
    • 2012-11-04
    • 1970-01-01
    • 2017-10-29
    • 2011-12-26
    • 2018-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-19
    相关资源
    最近更新 更多