mongodb - 生产非 Azure IIS 服务器上的 Windows Azure TDS 模拟

标签 mongodb azure azure-table-storage azure-worker-roles nosql

我正在开发一个 C# Web 应用程序,该应用程序将托管在 Windows Azure 中并使用表数据存储 (TDS)。

我想构建我的应用程序,以便我还可以(作为选项)将应用程序部署到具有其他 NoSql 后端的传统 IIS 服务器。基本上,我想让我的客户可以选择以软件即服务模式向我付款,或者购买我的应用程序的许可证,他们可以将其安装在自己的(非 azure )生产服务器上。

如何最好地构建我的数据层和中间层以实现这两个目标?

我可能需要一个 Windows Azure 辅助角色和一个 Azure 队列。复制这些有多复杂?我可以替换自定义 Windows 服务和其他一些排队技术吗?

如何编写数据模型中的实体,以便在不部署到 Azure 时可以部署到 Azure TDS 或其他存储? MongoDB 或类似的工具对此有用吗?

当然有一种方法可以在不依赖 Azure 的情况下进行架构设计。

最佳答案

I will likely need a Windows Azure Worker Role and an Azure Queue. How complicated is to replicate these? Can I substitue a custom Windows Service and some other queuing technology?

是的 - 具有其他一些排队技术的 Windows 服务可以很好地适应这一点 - 并且辅助角色有一个主/运行循环,很容易在 Windows 服务中使用。

How I can the entities in my data model be written such that I can deploy to Azure TDS or some other storage when not deploying to Azure? Would MongoDB or similar be useful for this?

NoSql 是一个通用术语,封装了许多不同的技术。我认为 Azure TDS 目前属于 NoSql 的键值存储系列,而 MongoDB 更像是一个文档数据库,提供比 TDS 更丰富的功能 - 请参阅 http://en.wikipedia.org/wiki/NoSQL_(concept )。对于模仿 Azure TDS,我认为像 Redis 这样的变体可能会起作用(尽管我相信 Redis 本身比目前的 TDS 具有更广泛的功能)

一般来说,这取决于数据的形状,但我怀疑如果您可以将其放入 Azure TDS,那么您也可以将其放入您选择的其他存储中。

Surely there is a way to architect for Azure without being married to it.

是的 - 正如您在问题中所建议的,您可以构建您的应用程序,以便它可以在其他技术上运行。事实上,这与传统的 SQL 数据抽象方法非常相似。不过,我认为在某些地方您会发现 TDS 会插入您进行某些特定的工作 与其他商店不太相符的方向 - 例如Azure 更加插入您进行数据复制;对按键有非常具体的规则;使用非常具体的机制提供高性能;并在非常特定的情况下提供有限的交易完整性。这些因素可能意味着您确实必须更改一些中间层以及一些数据层,以便在 Azure 和非 Azure 变体中充分利用您的应用程序。

另一个想法 - 为客户提供 Azure 上的 Multi-Tenancy SaaS 版本和 Azure 上托管的单租户版本可能会更容易 - 但这确实取决于客户!

关于mongodb - 生产非 Azure IIS 服务器上的 Windows Azure TDS 模拟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5767963/

相关文章:

mongodb - 分组数据的聚合计数

ruby - mongoid 中的嵌入式文档与哈希数据类型

node.js - 遍历整个 mongo 数据库的方法太大而无法加载?

c# - 当字符串长度超过 32768 个字符时,Azure 存储异常

MongoDB 模式设计(嵌套数组与分离集合)

服务主体的 Azure Databricks Git 凭据

azure - 如何通过 Kudu Api 动态运行手动部署在门户上的 azure 函数?

function - Azure Functions - WindowsAzure.Storage 库在 VS 2017 中不起作用

azure - 在 Azure 表存储中使用时间戳作为修改日期

c# - Microsoft.WindowsAzure.Storage.StorageException - 服务器正忙