Я нахожусь на ранних этапах разработки приложения на базе Azure. Одна из вещей, которая привлекает меня в Azure, — это масштабируемость, учитывая изменчивость спроса, который я, вероятно, ожидаю. Таким образом, я стараюсь, чтобы вещи были слабо связаны, чтобы я мог добавлять экземпляры, когда мне нужно.
Рекомендации, которые я видел для разработки приложения для Azure, включают в себя сведение к минимуму логики веб-роли и выполнение обработки в рабочих ролях, использование очередей для связи и своего рода внутреннее хранилище, такое как SQL Azure или Azure Tables. Мне это кажется хорошей идеей, поскольку я могу масштабировать одну или обе части приложения без каких-либо проблем. Однако мне любопытно, есть ли какие-либо передовые методы (или есть ли у кого-нибудь какой-либо опыт), когда лучше просто иметь веб-роль, чтобы напрямую общаться с хранилищем данных, а не отправлять данные по очереди?
Я имею в виду случай, когда мне нужно сделать простую вставку из веб-роли — хотя я мог бы настроить это как сообщение, отправить его в очередь, а рабочая роль взяла бы его и сделала вставку, это похоже на двойную обработку. Однако я также понимаю, что в долгосрочной перспективе это может быть лучше, если веб-роль перегружена или для вставки требуется более сложная логика.
Я понимаю, что это может быть тот случай, когда ответ «все зависит от ситуации, проверьте свои показатели производительности», но если у кого-то есть какие-либо мысли, я был бы очень признателен!