2014-06-17 1 views
5

Я пишу приложение, которое будет развернуто как в облаке, так и на локальных дата-центрах (для тех клиентов, которые, еще не доверяю облаку своими данными.Роль Azure Worker для решения на месте, доступного через Windows Azure Pack или App Fabric

Если я решила пойти MS Azure, я могу использовать новые типы проектов облаков с их ролями в Интернете и на рабочем месте. Но как я могу заставить рабочие роли запускать для on- предпосылка вариант?

должен ли я написать свой собственный хост (скажем, как служба Windows)? Это не идеально, поскольку она требует дополнительного кода и развертывания.

Есть ли подход, совместимый с Azure, скажем, в Windows Azure Pack или в приложении Fabric stuff (есть ли приложение Fabric по-прежнему актуально?), Которое не требует полной настройки частного облака?

ответ

4

Это не существует в Azure Pack.

Нет необходимости пытаться иметь Рабочую роль в помещении. Все, что вам нужно сделать, это иметь виртуальную машину, на которую вы устанавливаете службу Windows.

С помощью Topshelf легко создать службу Windows.

Развертывание службы Windows с помощью Topshelf на самом деле намного проще, чем развертывание для ролей рабочего, потому что вы просто запускаете .exe, который вы создаете с помощью install, а затем с аргументами start.

Из-за этого вам действительно нужен меньше кода, чем для роли рабочего, поскольку вам не нужен второй проект-обертка.

+0

Если вы пытаетесь запустить тот же код в облаке и на месте, вы все равно можете создать консольное приложение Windows Service, а затем развернуть его на веб-роли (то же, что и Роль рабочего во всех смыслах и целях), используя что-то вроде [AzureWebFarm.OctopusDeploy] (https://github.com/MRCollective/AzureWebFarm.OctopusDeploy), или вы можете развернуть консольное приложение в качестве веб-задания (которое, вероятно, доступно в AzurePack , а если нет, то TopShelf .exe будет работать как обычный .exe в любом случае без аргументов). –

+0

Приятно то, что вам никогда не нужно ссылаться на ServiceRuntime или использовать RoleEnvironment или другие специфичные для Azure вещи - код агностик, где он развернут :)) –

0

Хотя я еще не использовал Windows Azure Pack, прежде чем он действительно сможет обеспечить эту функциональность в доме, однако требования и процедуры настройки являются интенсивными и, конечно же, ориентированы на предприятия.

Лучшим вариантом является создание консольного приложения, которое запускает функции OnStart() и Run() для вашего WorkerRole на основе планировщика заданий вашей ОС.

Не слишком много работы, на мой взгляд, и вы можете сохранить свои рабочие круги как есть, а просто добавить консольное приложение для любых решений на местах.

+0

Обычно вы используете RoleEnvironment в методах OnStart и Run, чтобы это не сработало. –

+0

Вы можете использовать функцию RoleEnvironment.IsAvailable boolean для переключения между тем, что вы делаете, зависит от того, где вы находитесь (например, Azure или Local). –

+0

Да. Но для этого требуется установить Azure SDK для установки onpremise, которую вы обычно не хотите. –

 Смежные вопросы

  • Нет связанных вопросов^_^