Хранилище Microsoft Azure и база данных SQL Azure - PullRequest
21 голосов
/ 06 августа 2010

Я видел, что подобный вопрос задавался несколько месяцев назад, но он действительно не очень хорошо подходил для моей ситуации.Вот и все ...

Я нахожусь в процессе создания с нуля веб-приложения .NET, которое потенциально может стать массовым сайтом (несколько сотен тысяч просмотров страниц в месяц дляначать), и я настоятельно рекомендую использовать Microsoft Azure для его размещения.Я еще ничего не создал и все еще исследую свои различные варианты.

Само приложение по своей сути является стандартным приложением CRUD, которое воздействует на ряд различных типов объектов (например, пользователь, заказ, элемент, так далее.).Возможно, есть некоторые фоновые процессы, которые могут выполняться, и некоторая очередь данных (для обновлений не в реальном времени - например, для получения значка SO), но большинство взаимодействий с пользователем будут вашими типичными действиями типа CRUD.

Что касается Azure, я прочитал ряд статей об использовании Microsoft Azure Storage для хранения данных транзакций и настоятельно рекомендую сделать это вместо использования SQL Azure DB DB.Тем не менее, я не видел и не читал ряд историй успеха реальных людей и / или реальных компаний, делающих это.Поэтому я решил обратиться к SO-сообществу, чтобы выяснить, есть ли у кого-нибудь опыт использования Microsoft Azure Storage, какая у вас удача, какие у меня есть проблемы и какие у вас есть лучшие практики.придумайте.

Я прочитал много разделов Microsoft Azure MSDN и программный документ Microsoft Azure Table API от Microsoft.Я ищу практические советы, извлеченные уроки, лучшие практики и т. Д. Заранее спасибо!

Ответы [ 5 ]

14 голосов
/ 07 августа 2010

Хранилище Windows Azure, как и любое хранилище NoSQL.Он работает в масштабных сценариях для нас (качает миллионы записей на пользователя).Однако классический подход CRUD немного сложно масштабировать или адаптировать к нему.

Я бы рекомендовал начать смотреть на CQRS стиль архитектур .Вот несколько ссылок, которые могут помочь вам начать:

8 голосов
/ 26 августа 2010

Зависит от того, о каких типах данных вы говорите - как правило, существует тенденция переоценивать требования к транзакционным данным. Большая часть данных действительно может поместиться в 1 ГБ SQL Azure (мы являемся поставщиком SAAS, и транзакционные данные почти 20 клиентов могут уместиться в такое большое пространство). Кроме того, по какой-то странной причине я видел, что потребление пространства в SQL Azure кажется несколько меньшим, чем размер базы данных, которую я вижу локально (возможно, связано с тем, как они обрабатывают журналы, не уверен). И сейчас 50 ГБ это предел, который, прямо скажем, ОГРОМНЫЙ.

Однако для этого вам также необходимо учитывать, что увеличивает использование пространства - хранение изображений, видео или других крупных объектов в базе данных может привести к значительному увеличению потребления пространства. Такие объекты лучше хранить в Windows Azure.

Такой короткий ответ - сохраняйте транзакционные данные в SQL Azure и нереляционные данные в Windows Azure. Работа с SQL Azure также сделает ваших разработчиков более продуктивными, так как он достаточно знаком с точки зрения программирования. Относитесь к Windows Azure аналогично тому, как вы относитесь к локальному файловому хранилищу Windows с некоторыми дополнительными преимуществами (поддерживаются базовые структуры таблиц).

4 голосов
/ 31 марта 2011

Еще одна вещь, которую следует учитывать, это количество транзакций, которые вы будете отправлять / получать из магазина. Приятной особенностью SQL Azure является то, что это фиксированная стоимость / месяц, и если вы выполняете запросы в одном и том же центре обработки данных (то есть из веб-роли Windows Azure, расположенной в том же центре обработки данных, что и ваша база данных SQL Azure), то есть без дополнительной оплаты.

Несмотря на то, что стоимость транзакций в хранилищах Windows Azure довольно низка, это то, что потенциально может сложиться, если вы сделаете их достаточно.

1 голос
/ 25 августа 2010

Еще одно место, где можно найти информацию, - выйти за пределы параметров Windows Azure и посмотреть на AWS.Опции S3 и SimpleDB проверялись в течение более длительного периода времени и имеют множество дополнительных историй успеха в сети.Тем не менее, S3 и SimpleDB очень похожи по функциональности на Windows Azure Storage Table и Blob Storage.Если вы думаете об действительно больших данных, для которых предназначены эти структуры, обязательно проверьте параметры AWS.Если только в качестве ориентира для существующих решений, построенных на больших данных.

Что касается SQL Azure, он отлично подходит для множества транзакций, поддерживая низкие транзакционные издержки и поддерживая отношения и общую целостность на основе реляционных данных.Однако, если вы собираетесь получать огромные объемы данных, просто продолжайте и стремитесь к большим структурам данных, таким как Windows Azure Table или Amazon SimpleDB.

1 голос
/ 12 августа 2010

Вам также следует проверить схему использования данных, прежде чем принимать решение об использовании хранилища Azure или хранилища SQL. Поскольку хранилище Azure предоставляет решения NoSQL, они в большей степени ориентированы на базовые требования, не связанные с отчетностью. Отчетность здесь не означает отчеты, но подразумевает, что возможности запросов к хранилищу Azure ограничены \ не оптимизированы для различных сценариев запросов. В архитектуре CQRS операции CRUD и Reporting отделены друг от друга, и, следовательно, может быть выполнено смешанное сопоставление хранилища Azure и SQL Azure.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...