avatar

VadNov

карма
6,0
24 голоса
рейтинг
3,0
14 мая 2012 в 20:55

Практические советы по разделению данных на части. Генерация PartitionKey и RowKey для Azure Table Storage

Всем привет. Перед вами заключительная статья из цикла «Внутреннее устройство и архитектура сервиса AtContent.com». Здесь собраны лучшие практики из нашего опыта работы с Azure Table Storage и платформой в целом. Эта статья может стать отправной точкой при построении типовых структур данных и позволит более эффективно использовать ресурсы Windows Azure.



Горизонтальное масштабирование во многом опирается на разделение данных и платформа Windows Azure не исключение. Одной из составляющих частей платформы является Azure Storage Table — NoSQL база данных с неограниченным ростом. Но многие разработчики игнорируют её в пользу привычного и знакомого SQL. При этом довольно часто задачи решаются с помощью Azure Storage Table намного эффективнее, чем с применением Azure SQL.

Здесь вы найдете практику и сценарии применения Azure Storage Tables.
–2
452
19
VadNov 3,0
23 апреля 2012 в 15:22

Расширения LINQ для Azure Table Storage, реализующие Or и Contains

Всем привет! Рад представить вам уже пятую статью из цикла «Внутреннее устройство и архитектура сервиса AtContent.com». В ней я расскажу о том как сделать работу с Azure Table Storage более функциональной и удобной.

LINQ

Платформа Windows Azure дает очень мощный набор инструментов для реализации своих идей. И среди них – Azure Table Storage – нереляционная база данных с неограниченным объемом. Большим плюсом этого хранилища является то, что можно делать к нему достаточно сложные запросы. Но помимо этого есть и некоторые неудобства. Так, например, с помощью LINQ нельзя выполнить запросы, в которых есть логика Or или Contains без дополнительных модификаций.
+7
388
15
VadNov 3,0
10 апреля 2012 в 14:00

Эффективное управление облачными очередями (Azure Queue)

В этой, уже четвертой, статье из цикла «Внутреннее устройство и архитектура сервиса AtContent.com» я предлагаю познакомиться с фоновой обработкой заданий с использованием экземпляров сервиса Azure (Worker Role).

В качестве основного канала коммуникации между экземплярами рекомендуется использовать очереди Azure (Azure Queue). Но использование только этого канала не позволяет максимально эффективно использовать экземпляры сервиса. Итак, в этой статье вы узнаете как
  • минимизировать задержку между отправкой задания на экземпляр и началом его обработки
  • минимизировать количество транзакций к Azure Queue
  • повысить эффективность обработки заданий


+4
653
13
VadNov 3,0
2 апреля 2012 в 21:47

Кеширование данных на экземпляре и управление кешированием

Перед вами третья статья из цикла «Внутреннее устройство и архитектура сервиса AtContent.com». Из нее вы узнаете как и для чего при использовании платформы Windows Azure можно сократить количество обращений к хранилищам данных Azure Table Storage и Azure Blob Storage. В нашем сервисе авторы размещают свои публикации, которые затем встраиваются в различные сайты. Таким образом однажны опубликованный контент отображается на большом количестве ресурсов, при этом доставляется на эти сайты через наш сервис. Поэтому чтобы сократить количество обращений к хранилищу Azure мы применяем кеширование публикаций в хранилище экземпляра, так как дополнительной платы за это не взимается.

Также в статье будут затронуты вопросы о том как управлять кешированием при наличии более одного экземпляра приложения и как синхронизировать между экземплярами состояние кеша.
image
22 марта 2012 в 23:31

Обмен сообщениями между ролями и экземплярами

Сегодня вашему вниманию представляется вторая статья из цикла статей об архитектурных решениях сервиса AtContent.com.

В процессе работы над сервисом AtContent.com у нас возникла задача о синхронизации между экземплярами внутри роли, а также между ролями. Стандартные средства из SDK не позволяют решить эту проблему двумя строчками кода. Поэтому мы разработали собственное решение для коммуникации между экземплярами. Оно позволяет выполнять задания на всех экземплярах роли сразу, либо на одном экземпляре, который выбирается определенным образом либо случайно.
+7
402
8
VadNov 3,0
22 марта 2012 в 23:30

AtContent.com. Внутреннее устройство и архитектура

AtContent_promo Эта статья открывает цикл статей о внутреннем устройстве сервиса AtContent.com. Каким образом контент проходит путь от автора до конечного пользователя, через какие механизмы ему приходится пройти и как он при этом взаимодействует с различными модулями — обо всем этом вы узнаете из цикла. Открывает его статья с общим описанием архитектуры сервиса. В серии будут также статьи «Механизм обмена сообщениями между ролями и экземплярами», «Кэширование данных на экземпляре и управление кешированием», «Эффективное управление обработкой облачными очередями (Queue)», «Расширения для LINQ, реализующие операции Or и Contains к Azure Table Storage», «Практические советы по разделению данных на части, генерация PartitionKey и RowKey для Azure Table Storage».

AtContent.com – это сервис нового поколения для дистрибьюции и монетизации авторского контента. Он основывается на модели разделения дохода и предлагает качественно новые инструменты для авторов, распространителей и медиа-площадок. Автор контента может самостоятельно опубликовать свою работу, заполучить себе поклонников и получить сеть дистрибьюции без усилий! С помощью специального виджета зарабатывать может как автор, так и распространитель публикации. Больше сеть дистрибьюции, больше продаж, больше дохода авторам.
31 января 2011 в 04:37

Azure. Отладка приложений на 80-м порту из песочницы

Разрабатывая приложение на платформе Windows Azure нам приходилось мириться с особенностью запуска debug-сборок на разных портах. Но когда мы начали активно отлаживать кросс-доменный AJAX эта проблема встала особенно остро. Потому как скрипты требовали использования абсолютного URL в тексте js-скрипта. Нам пришлось писать номер порта в URL: http://127.0.0.1:81/bla-bla-bla. Когда при перезапуске приложения порт изменялся — приходилось перезапускать devfabric для того, чтобы сборка запускалась на 81-ом порту. Перезапуск отнимал драгоценное время, раздражение возрастало.
В один прекрасный момент терпение лопнуло и мы решили создать инструмент для отладки приложения на одном порту. Он представляет из себя ASPX-приложение, которое получает запросы и перенаправляет их на запущенную инстанцию Azure. Это позволяет нам не заботиться о том, на каком же порту запущен сейчас Azure.