Как разместить рабочую роль Azure локально / локально?

Немного предыстории ....

Мы впервые отправляемся в Azure и пытаемся сделать это в детские шаги. На данный момент нашими первыми приложениями будут очереди для мониторинга рабочих ролей для обработки запросов (например, отправка электронной почты или выполнение некоторой очистки экрана), и мы просто вставим в очереди из нашего локального приложения MVC и WCF. Позже мы переместим приложение MVC и службы WCF в Azure.

Наш рабочий процесс разработки, по сути, выглядит следующим образом (несколько измененный несущественными способами):

  1. Разработка локально и на некоторых общих серверах. Проверьте систему контроля версий.
  2. Каждые 15 минут сервер сборки выполняет сборку и развертывание в среде «разработки» (дублируется как CI и покрывает на случай, если нам нужно задействовать среду «разработки», отличную от локальной).
  3. Технические тестеры вручную запускают сервер сборки для развертывания последняя успешная сборка "Dev" в тестовой среде (или, альтернативно, предыдущая хитро развернутая тестовая сборка, включая / исключая базу данных).
  4. Технические тестировщики и бизнес-тестеры вручную запускают сервер сборки для развертывания последней успешной «тестовой» сборки (или, альтернативно, ранее развернутой тестовой сборки, включая / исключая базу данных) в среду QA.
  5. В какой-то момент мы объединяем набор изменений, который QA одобряет для развертывания.
  6. Позже наш сервер производственной сборки развертывает эту версию в промежуточной, а затем в производственной среде (мы размещаем ее N раз параллельно /

Как вы можете видеть, у нас есть несколько внутренних версий нашего приложения, с которыми сотрудники службы поддержки могут столкнуться, прежде чем перейти в производство. Я бы хотел, чтобы они имели достаточно низкий уровень зависимости от Azure. Мне не нужно полностью указывать зависимость, поэтому мы продолжим использовать очереди Azure и, возможно, некоторые другие механизмы только потому, что их легко продолжить, но мы не хотим, чтобы наш сервер сборки развертывался в Azure. для каждой из этих сред (и, в качестве альтернативы, платить за весь этот хостинг).

Итак, как мы можем разумно разместить наши рабочие роли локально таким образом, чтобы мы фактически тестировали код, который развертывается в Azure?

] Один из предложенных вариантов - создать рабочую роль как оболочку / фасад и выполнять всю реальную работу внутри библиотеки классов, что и было нашим планом. Однако последующим шагом, который позволит нам «разместить» это, будет создание второго приложения-оболочки / фасада, которое выполняет ту же работу, что и рабочая роль, только таким образом, чтобы мы могли запускать его как запланированную задачу или как окно сервер. В конечном счете, мне не нравится этот вариант, потому что весь проект никогда не тестируется, пока он не попадет в стадию.

Можно ли сделать что-то подобное, когда мы создаем второе приложение-оболочку / фасад, которое вместо вызова библиотеки классов, которое фактически ссылается и вызывает функцию Run () в рабочей роли?

6
задан Jaxidian 18 August 2011 в 17:09
поделиться