Мы использовали гибридную архитектуру в Windows Azure, сохраняя большинство объектов в базе данных SQL Azure, но бросая все, что может потребовать значительных объемов пространства для хранения в Azure Table Storage.Альтернативы для хранения лазурных таблиц
С этой архитектурой мы сталкиваемся с множеством проблем с Azure Table Storage, которая в лучшем случае поражает меня как незрелого и неполного продукта. Самое большое ограничение заключается в том, что для всех практических целей это хранилище данных только для записи. Консенсус в том, что возможности его записи очень хорошо масштабируются, но его возможности запросов и индексирования настолько удивительно ограничены (несмотря на годы users complaining and Microsoft promising), что я пришел к выводу, что вы должны в основном пытаться извлечь данные из ATS в чрезвычайная ситуация. Получение данных из него для сложного, реального времени, транзакционного приложения для производства намного сложнее, чем должно быть. Конечно, есть обходные пути, например, сохранение нескольких копий данных с разными стратегиями индексирования для каждой копии или разделение ваших запросов и их параллельное выполнение, но это добавляет сложности, когда вся точка облачного сервиса заключается в ее минимизации.
Это говорит о том, что мы привержены Azure, и я хотел бы иметь хорошее представление о том, какие альтернативы и подводные камни есть, предпочтительно от людей, которые фактически были на этой дороге в производстве.
Я вполне хорошо знаю, что есть много вариантов NoSQL (например, все перечисленные в этом вопросе: What NoSQL solutions are out there for .NET?), которые я могу запускать либо на виртуальной машине, либо в каком-либо другом облаке. Но мне особенно интересно узнать, есть ли что-то, что хорошо вписывается в модель PAAS от Azure. Другими словами, если я нахожусь на Azure и не хочу управлять своими собственными виртуальными машинами и хочу как можно ближе к почти автоматической и почти бесконечной масштабируемости, обещанной (хотя и не доставляемой) ATS, какие варианты имеют люди нашли ценный? Является ли MongoDB/Azure wrapper простой и жизнеспособной альтернативой? Или я должен просто укусить пулю и развернуть свои собственные ВМ? Или переключиться на AWS? Или придерживаться Azure SQL?
(Чтобы дать вам чувство наших требований к размеру:.. Мы думаем, что мы будем нуждаться для хранения свыше миллиарда строк не огромный, но не пренебрежимо мало либо)
Я точно понимаю, о чем вы говорите, с запросом ATS. К сожалению, у меня нет ответа, но это именно то, что мне нужно будет рассмотреть в ближайшее время, и надеюсь, что кто-то ответит вам. Я кратко посмотрел на MongoLab, но их цены выглядят довольно высокими. –