Развертывание веб-роли из рабочей роли в Azure - PullRequest
2 голосов
/ 17 июня 2011

Я исследую некоторые компоненты Windows Azure, чтобы принять решение о переходе на Azure или нет.

Основная информация
Чтобы ответить на вопрос, вы 'Понадобится некоторое базовое понимание моего приложения, так что здесь.

Приложение представляет собой приложение ASP.NET MVC 3, которое подключается к базе данных SQL Server.

Это приложение с одним экземпляром, что означает, что каждый клиент в конечном итоге имеет свой собственный экземпляр приложения, работающего на нашем сервере, развернутый в IIS 7 в качестве веб-сайта.

У меня есть один SQL Server,где каждый экземпляр имеет свою собственную базу данных.

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

Теперь к вопросу
Всякий раз, когда кто-то подписывается на бесплатную пробную версию, я добавляю запись в базу данных администратора, которая у меня есть.

Затем у меня есть служба Windows, которая развертывает новый экземпляр приложения ASP.NET MVC 3 для IIS, предоставляет разрешение нескольким папкам, запускает сценарий развертывания базы данных и обновляет запись, чтобы отразить, что она имеет сейчасбыла развернута и, наконец, отправляет электронное письмо потенциальному создателю бесплатной пробной версии - вот как вы к нему обращаетесь.

Итак, как я могу развернуть новый экземпляр в Windows Azure с рабочей роли?Желательно, чтобы я просто добавил новый веб-сайт в существующий экземпляр Azure и создал новую базу данных SQL Azure для использования этим конкретным сайтом.

Требуется ли для настройки много работы?Это вообще возможно?

Ответы [ 2 ]

3 голосов
/ 17 июня 2011

Исходя из двух кавычек, я хотел бы предложить назвать это мультитенантное приложение:

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

И ...

Служба Windows, которая развертывает новый экземпляр приложения ASP.NET MVC 3 для IIS, предоставляет разрешение несколькимпапки

Если я правильно понимаю, существует «один» IIS-сервер (ну, в Windows Azure это одна веб-роль, масштабируемая до нескольких экземпляров), и с каждым новым «арендатором» вы устанавливаетенекоторые новые вещи для поддержки этого арендатора.

Если это действительно так, вы определенно можете сделать это из рабочей роли - просто посмотрите на пост блога мультитенантной веб-роли Нейта Тоттена исвязанный код.Посмотрите на код веб-развертывания, который фактически управляет IIS.

Далее: взгляните на Cloud Ninja , проект, опубликованный несколькими моими товарищами по команде вместе с Fullscale180.Это мультитенантное приложение, которое демонстрирует, как управлять несколькими клиентами в одном развертывании, а также осуществлять мониторинг и масштабирование.

Наконец: если вам действительно нужно создавать совершенно новые сервисные хосты и учетные записи хранилища, последниеобновления API управления Windows Azure поддерживают это.Я надеюсь, что это немного помогает ...

3 голосов
/ 17 июня 2011

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

Это определенно потребует некоторой работы для установки!

Чтобы узнать, как добиться того, что вам нужно, взгляните на пример MS SaaS - http://www.fabrikamshipping.com/, специально разработанный для переноса существующих приложений в SaaS на Azure. Внутри этого приложения у них есть «процесс адаптации», который включает в себя настройку новых соединений SQL и новых порталов.

Есть много хороших блогов (смотрите видео) об этом на http://blogs.msdn.com/b/vbertocci/archive/2010/10/07/new-online-demo-introducing-fabrikamshipping-saas.aspx

...