我正在开发我的第一个 SaaS 应用程序,它将托管在 Google Cloud 或任何其他类似的云中。让我们了解一下项目的性质:它是一个有点简单的 SaaS,基于多租户,客户创建一个帐户并获取一个系统来使用。最初,计算量很低,没有主要的数据处理。客户可以保存提醒、创建某些分层列表、管理其内部数据的某些方面等。该服务将从免费层开始,非常有限(或试用),然后最终我将启动付费订阅层。要弄清楚所有这些细节还有很长的路要走。尽管如此,我确实需要在非常合理的性能范围内尽可能地保持这种设计的成本效益。我没有任何具体的使用估计,但可能会从 50-100 个客户开始,并可能增长到数万个。
所以最初,我将有两个组件:Web UI (React) 和 REST 后端 (Spring + MySQL)。我可以用两种不同的方式设计它:
A. 作为单独的微服务: - 基于 Spring 的 REST API 后端 + MySQL(两个容器) - Nodejs Express + React Web UI 前端(单独的服务) - 总共运行三个容器
或者
B. Spring REST API 后端 + React Web UI 前端在一项服务中 + MySQL - 总共运行两个容器
我的想法……从设计和扩展的角度来看,我个人更喜欢 A。通过这种情况,我得到了服务的清晰分离和真正面向微服务的架构。我可以相应地扩展每项服务。缺点是有点复杂,有点响应时间下降和可能更高的运行成本。
使用 BI 显然可以获得更简单的系统,很可能会减少维护并降低成本。
我正在寻找的是有经验的人对此的一些想法。对于上述情况,我应该考虑什么最重要,哪个似乎是更好的选择?