2012-02-14 3 views
0

Предположим, у меня есть 3 экземпляра в Azure. Каждый из них запускает отдельный слой приложения, как я описал в этом вопросе Independent deployment of separate layers to Azure. Для независимого развертывания каждого уровня (read Role) создается отдельный проект развертывания Azure. Вопрос в том, какой экземпляр будет заменен, когда я буду развертывать, например, бизнес-уровень? Могу ли я быть уверенным, что экземпляры с UI и Data Access останутся нетронутыми? Как найти экземпляр, который будет заменен, на основе имени роли?Развертывание отдельных слоев до Azure

ответ

1

Чтобы уточнить, у вас есть 3 уровня, каждый из которых размещен в другой роли azure для Windows (а не для экземпляра). Если у вас есть каждая роль в отдельном развертывании (отдельные хостинговые службы), то при развертывании вы будете только обновлять этот уровень. Остальные слои не будут затронуты.

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

Я создал a quick blog post with some screen shots of doing a single role upgrade. Обратите внимание, что портал Silverlight издал для меня исключение, и я сообщил об этой ошибке и обновил сообщение в блоге, если мы узнаем, о чем он.

Обновлено: В портале управления Silverlight есть ошибка, которая в настоящее время предотвращает выполнение одного обновления роли. Команда Windows Azure знает об этом и будет решать его в будущем обновлении. Нет ETA для этого обновления в настоящее время. Тем не менее, вы все равно можете выполнить обновление/обновление одной роли с помощью API управления.

+0

их роль может быть в том же веб-сервис? каков принцип поиска экземпляров, относящихся к определенному слою? это название роли? –

+0

Да, вы можете размещать роли в одной службе. Если вы используете RoleEnvironment, вы можете перебирать роли и их конкретные экземпляры. Но это не относится к обновлению сервиса, больше для внутреннего обнаружения и прямой связи. Используя ручное обновление, вы можете активировать единый пакет развертывания для службы, но только обновить определенную роль (я думаю, никогда не пробовал). – BrentDaCodeMonkey

+0

Да, это то, что я пытаюсь выяснить, если это работает) –

0

Как сказал Брент, определенно возможно выполнить обновление одной роли. Раньше было, что если вы внесли какие-либо изменения в ServiceDefinition (измените размер виртуальной машины, добавили новые настройки Config, обновили имя роли или изменили счет экземпляра из развернутого определения службы), когда вы обновили эту роль, Azure Fabric Controller не позволяет выполнять обновление на месте. Теперь это тоже возможно. Таким образом, вы можете выполнить обновление на месте на месте и увеличить размер виртуальной машины. Как всегда, вы, по крайней мере, хотите иметь 2 экземпляра, чтобы не допустить простоя.

Ranjith
http://www.opstera.com

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