体系结构:微服务,多种需求和共享数据

时间:2019-01-16 23:31:01

标签: architecture microservices

场景:

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

我们探索过的特定解决方案:

  • 单个部署,特定于客户端的IF语句:

    • 我们目前正在使用它,这需要手动处理哪个客户端得到了什么
    • 很难重新测试整个功能矩阵,以了解更改是否会对任何客户产生不利影响
  • 多个部署:这里的问题是8个以上的微服务,它们彼此之间具有高度依赖性;这将需要:

    • 设置新的源存储库,并为每个客户端进行部署
    • 对特定客户端的代码库进行特定于客户端的更改,然后部署到其群集中
    • 代码,并且每个客户之间的数据注入都需要查看所有数据和代码更改,以免产生不利影响

在这里,我转向一个很好的Stack溢出社区:您将如何解决这一问题,以便我们保持变更管理的简便性,同时又避免一个客户对另一个客户的不利影响?

1 个答案:

答案 0 :(得分:-1)

您可以使用基于容器的架构,例如docker和openshift。容器将为您提供每个客户端的服务级别隔离。如果要使用企业级体系结构,则可以使用Red Hat支持的openshift。为了在不同客户端和微服务之间共享数据访问,可以使用gcp和aws提供的网络文件系统。这样可以轻松实现可伸缩性和网络安全性。