【问题标题】:Architecture: Microservices, multiple requirements, and shared data架构:微服务、多重需求和共享数据
【发布时间】:2019-06-11 02:56:57
【问题描述】:

场景:

  • 我们有一个中等规模 (100K++ loc)、基于微服务的项目,内容庞大且发展迅速
  • 我们将此(数据和内容)出售给多个客户,每个客户的要求每次都略有不同,无论是对数据还是内容;他们需要非常高的可用性。
  • 我们希望避免为一个客户端所做的(代码或数据)更改可能会对其他客户端的部署产生不利影响的问题。
  • 同时,我们需要在客户端之间共享一些数据(以及对该数据的进一步更改)

我们探索过的具体解决方案:

  • 单一部署、特定于客户端的 IF 语句:

    • 我们目前使用这个,这需要手动调整哪个客户端得到什么
    • 要重新测试整个功能矩阵以了解更改是否会对任何客户产生不利影响
  • 多重部署:这里的问题是 8+ 微服务相互高度依赖;这需要:

    • 设置新的源代码库并为每个客户端进行部署
    • 对特定客户端的代码库进行特定于客户端的更改,然后部署到他们的集群中
    • 每个客户之间的代码和数据注入都需要审查所有数据和代码更改是否有不利影响

在这里,我求助于 Stack Overflow 社区:您将如何解决这个问题,让我们保持易于变更管理,同时避免一个客户对另一个客户的不利影响?

【问题讨论】:

  • 没有真正了解您的问题与 Node 有何关系?
  • 项目在node.js中;但你是对的,这个问题与语言无关。删除标签。

标签: architecture microservices


【解决方案1】:

您可以使用基于容器的架构,例如 docker 和 openshift。 Container 将为您提供每个客户端的服务级别隔离。如果你想要企业级架构,你可以使用红帽支持的 openshift。对于跨不同客户端和微服务的数据共享访问,可以使用 gcp 和 aws 提供的网络文件系统。这提供了简单的可扩展性和网络安全性。

【讨论】:

    猜你喜欢
    • 2015-06-10
    • 2019-05-10
    • 1970-01-01
    • 2021-11-26
    • 2019-11-19
    • 2016-05-22
    • 1970-01-01
    • 2019-08-19
    • 2020-01-26
    相关资源
    最近更新 更多