如何在没有Azure的情况下将Azure应用程序部署到生产中

Oli*_*ock 2 queue azure production-environment

我正在使用队列,blob存储和SQL Azure开发Azure应用程序.我们预计一些客户将不愿意将他们的数据托管在云中(出于偏执或对可以存储数据的管辖区域的法律限制的原因)并且希望在位于他们自己的数据内的服务器上运行系统中心,在一台服务器上.使用SQL Server并构建blob存储的替代方案应该很容易,但Azure队列更复杂.我想使用开发结构是不可取的,因为MS文档说它必须以管理员身份运行.

我该怎么办呢?

san*_*oIT 8

我会在AzureQueues上添加一个抽象层.

就像是:

public interface IQueueService
{
    // will create if not exists
    IQueue GetQueue(string name);
    IQueue GetQueueIfExists(string name);
}


public interface IQueue
{
    string Name { get; set; }

    void AddMessage(SimpleMessage message);
    void DeleteMessage(SimpleMessage message);
    SimpleMessage PeekMessage();

    void Clear();
}
Run Code Online (Sandbox Code Playgroud)

等等...

这应该给你一个想法.然后,您可以提供两个实现,一个使用AzureQueues,另一个使用MS Queues(http://en.wikipedia.org/wiki/Microsoft_Message_Queuing)

您可以根据是否在Azure上运行来选择实现.

我过去做过非常相似的事情.

  • 圣地亚哥有正确的方法.如果您需要能够在环境之间移植相同的代码库,则需要抽象出必要的依赖关系.这使您可以轻松地将这些图层替换为提供相同行为的新图层,即使这种行为如何传递的基础机制显着不同也是如此.通过正确应用存储过程,您应该能够模拟SQL Server中的Azure存储队列行为. (2认同)