我正在评估ArangoDb + Foxx的多租户应用程序。
目前,我在_system
中有一个协调器服务,它创建新数据库并将一个服务安装到该数据库中,然后引导它并充当api层。
是否存在一个优化问题,即使用一个处理整个api堆栈的单片Foxx服务?或者将它分成许多较小的服务更好,以便将请求传播到不同的V8上下文?
最后,对于每个数据库/租户的服务甚至许多服务,您是否需要在需要更新时为每个租户更新每个服务?当您尝试应用滚动或蓝/绿部署时,这听起来有很多错误和错误的空间。有没有更好的方法在群集中使用Foxx处理多租户应用程序?也许是_system
级别的单项服务?
谢谢!
答案 0 :(得分:0)
Foxx服务可以为单个租户托管整个图层/堆栈。问题是否是一个好主意,对我来说,每个租户的考虑本身更少,但更多的是功能统一。话虽如此,您的身份验证计划,只要它们在arangodb中托管,也可能发挥作用。单点登录和相反的模型也可能会促使你进行人工分离。
如果通过已建立的复杂应用程序推出,您对复杂性和由此产生的错误倾向的担忧听起来并不可控。良好的测试覆盖率应该很容易检测到这些错误我也认为同样的错误可能发生在广泛分布的应用程序和更集中的应用程序,或者你所说的单片。但升级策略绝对应该是规划的一部分,如果你认为不同的部分可以保持不变而其他部分预计会更频繁地升级,那么将它们分开可能是有意义的。
TLDR:没有主要的潜在机制,会强迫你这样或那样。作为指导,我认为您应该能够向第三方解释您的决定。