【发布时间】:2014-01-03 23:15:07
【问题描述】:
我开始将一个旧的桌面单租户应用程序移植到云中,想听听您对我的基于云的多租户应用程序的数据库有何建议?
我的基本要求很简单:
- 对于每个租户,其数据与任何其他租户的数据是分开的。我可以轻松备份、恢复、导出单个租户的数据,而不会影响其他租户。
- 我真的不想关心业务逻辑代码中的多租户。它应该看起来像安全层后面的单个租户应用程序,没有租户 ID 传递等。
- 使用 LINQ 等成熟技术轻松查询。
- 可用性和可扩展性,当然,易于设置副本、故障转移和向上和向下扩展等。
我对多租户应用程序开发进行了一些调查。我注意到 Azure 和 AWS 的 SQL 数据库都非常昂贵(仅 SQL 数据库实例的成本接近原始应用程序的许可费用),所以我绝对不能为租户使用单独的 SQL 数据库实例。
现在我正在阅读这本书Developing Multi-tenant Applications for the Cloud, 3rd Edition,它使用 Azure 存储服务来实现多租户。书还没看完,看来还是要自己处理多租户,示例代码已经过时了。
我看到很多 SO 问题将 Azure 表存储与 MongoDB 进行比较。 MongoDB 对我来说很新,不确定它是否可以轻松满足我的要求?
我也见过 RavenDB,它确实支持开箱即用的多租户。但是我没有看到一些关于如何在 Azure 应用开发中使用它的好的示例代码。
希望听到一些很棒的 SO 人的好建议。
【问题讨论】:
标签: asp.net azure architecture multi-tenant