Моя рекомендация
Рабочий диапазон:
- Имеет получатель запросов, который помещает сообщения в очередь сообщений, как rabbit mq
- Иметь множество рабочих, слушающих одну и ту же очередь, отбирающих у нее работу и просматривающих ее по завершении.
- По завершении отправьте сообщение в другую очередь, содержащее URI, в известное местоположение, например на сетевой диск. Цель - ваши проанализированные данные.
- Получатель прослушивает эти «завершенные» сообщения. Извлекает данные из URI.
Готово.
RabbitMQ поставляется с замечательными CLR API.
Те же рассуждения хорошо работают с Microsoft Azure и их AbbFabric Queue. Плюс в том, что он очень хорошо масштабируется.
Горячая версия
http://topshelf -project.com /
Это дает папку, куда вы можете удалить двоичные файлы, которые затем запускаются. Он управляет их версиями, а также запускает их как службы Windows.
Развертывание
Вы можете развернуть двоичные файлы с помощью robocopy / xcopy и «net use Q: pwd \ server \ share», «net delete Q:»
Непрерывная интеграция
Teamcity
После интенсивной работы с MsBuild я бы порекомендовал написать сценарий для него с помощью psake и запустить сборку с помощью PowerShell. Если вы разбираетесь в PowerShell, у вас также есть WinRM, доступный вам из ваших сценариев сборки, что действительно гладко.
Используйте номер коммита git / subversion в качестве 0.0.0.x, x в номере предыдущей версии, и у вас будет автоматическое управление версиями, которое является «общим» для сборок «Debug» / «Production».
Лазурный путь
Рабочий диапазон:
То же, что и выше, но с очередью AppFabric вместо RabbitMQ.
Горячая версия
Меняя местами экземпляры «Staging» и «Production», вы избегаете простоев.
Развертывание
Вы можете подключиться к задачам Azure Tools для Visual Studio MsBuild, которые можно прочитать о здесь , или использовать PowerShell AzureSnapIns с настройкой, аналогичной приведенной выше, для непрерывной интеграции.
Непрерывная интеграция
То же, что и выше.