Несколько рабочих ролей обеспечивают очень чистую реализацию. Однако затраты на экземпляры свободных ролей будут гораздо выше, чем на одну рабочую роль.
Ролевое объединение - это распространенный шаблон, который я видел, работая с независимыми разработчиками программного обеспечения в их развертываниях Windows Azure. У вас может быть фоновый поток, который периодически просыпается и запускает процесс. Другой распространенный метод реализации - использование очереди Azure для отправки сообщения, представляющего процесс для выполнения. Вы можете иметь несколько очередей, если хотите, или одну очередь команд. В любом случае у вас будет прослушиватель очереди, работающий в фоновом потоке, который будет запускаться в каждом экземпляре. Первый получатель сообщения обрабатывает его. Вы можете пойти дальше, и у вас будет время, когда эти сообщения будут помещаться в очередь (возможно, каждые 24 часа или каждый час).
Помимо ограничений по процессору и памяти, просто помните, что одна роль может иметь не более 5 конечных точек (меньше, если вы используете удаленный рабочий стол).
РЕДАКТИРОВАТЬ: С сентября 2011 года конфигурация ролей стала намного более гибкой, теперь у вас есть 25 входных конечных точек (доступных из внешнего мира) и 25 внутренних конечных точек (используемых для связи между ролями) во всем развертывании. Статья MSDN здесь
Я недавно писал о перегрузке веб-роли , которая в некоторой степени связана.