我正在评估ArangoDb+Foxx的多租户应用程序。
目前,我在_system
中有一个协调器服务,它创建新的数据库,并将一个服务安装到该数据库中,该服务引导该数据库并充当API层。
使用一个Foxx服务来处理整个API堆栈是否会带来优化问题?还是将其拆分为多个较小的服务以便将请求分散到不同的V8环境中更好?
最后,如果每个数据库/租户有一个服务甚至多个服务,那么当您需要更新时,是否需要更新每个租户的每个服务?当您尝试应用滚动或蓝/绿色部署时,这听起来似乎有很大的错误和bug空间。有没有更好的方法来处理集群中的Foxx多租户应用程序?也许是_system
级别的单个服务?
谢谢你!
1条答案
按热度按时间nkoocmlb1#
Foxx服务可以为单个租户托管整个层/堆栈。对我来说,这是否是个好主意的问题不是每个租户本身的考虑,而是功能的统一性。话虽如此,你的身份验证计划,只要它们托管在arangodb中,也可能发挥作用。单点登录和相反的模型也可能把你推向人为的分离。
你对复杂性和由此产生的错误倾向的担心听起来是不可控的,如果通过复杂应用程序的既定方法来推广的话。好的测试覆盖率应该很容易检测到这些错误。我还认为同样的错误可能发生在广泛分布的应用程序和更集中的应用程序中,或者像你所说的那样是单一的。但是升级策略绝对应该是计划的一部分。如果您认为不同的部分可以保持不变,而其他部分需要更频繁地升级,那么将它们分开可能是有意义的。
TLDR:没有任何主要的潜在机制会迫使你这样或那样。作为指导,我认为你应该能够向第三方解释你的决定。