2015-05-28 6 views
0

Итак, мое приложение составлено из нескольких отдельных компонентов .NET, которые все работают в Azure. Чтобы дать вам представление о том, что участие: (? Я думаю, что они переименовали их в веб-приложений)Как развернуть приложение с несколькими компонентами в Azure?

  • главного ASP.NET MVC5/Web API 2 REST сервис, который работает как Azure веб-сайт.
  • База данных SQL, используемая основной службой REST.
  • Другая внутренняя служба веб-API REST, с которой работает главная служба REST, работает как веб-сайт Azure.
  • Стол хранения Azure, который использует внутренняя служба веб-API REST.
  • 3 запланированных задания (только .NET exe), которые работают в фоновом режиме, а также разговаривают с основной базой данных SQL.

Все, что работает отлично в Azure прямо сейчас. Моя проблема заключается в автоматизации развертывания и конфигурации.

Прямо сейчас все это руководство. Я щелкаю правой кнопкой мыши и публикую оба веб-приложения из Visual Studio. Я создаю FTP и загружаю веб-страницы. База данных и хранилище Azure уже существуют, поэтому мне не нужно их повторно устанавливать.

Но скажите, что-то плохое происходит - центр данных опускается или что-то в этом роде. Я бы хотел, чтобы вы могли развернуть новую версию моего приложения (со всеми этими компонентами), готовое идти с минимальными усилиями.

Я довольно новичок в мире Azure, поэтому не знаю, с чего начать. Какие у меня варианты?

+0

Gi сосредоточить внимание на инфраструктуре (например, вращающиеся виртуальные машины, сети, конечные точки и т. д.), а также автоматическое развертывание кодовых образов, я действительно не вижу в этом вопрос программирования. Я думаю, что это лучше подходит для ServerFault. Я вижу в этом больше вопросов, связанных с такими вещами, как Azure Resource Manager, возможно, марионеткой/шеф-поваром, в основном что-то, что организует вашу сборку. –

ответ

0

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

+0

Я не думаю, что Дженкинс является верным ответом на вопрос OP, поскольку Дженкинс не является чем-то, что заставит VM раскручивать удобную вещь (как бы ей управлять создание виртуальных машин, виртуальных сетей, учетных записей хранилищ, конечных точек и т. Д.). –

+0

Ну, если ему нужно иметь дело с фактическими конфигурациями виртуальных машин, то, возможно, шеф-повар с Дженкинсом будет правильным решением. Но если он просто работает над небольшим приложением, шеф-повар/Jenkings добавляет много накладных расходов, поэтому я не уверен, есть ли simpilar решение. –

+0

Azure имеет встроенные средства автоматизации инфраструктуры (например, Azure Resource Manager). Я хочу сказать, что в качестве ответа вы предлагаете инструмент непрерывной интеграции (и вы также фокусируетесь на конкретном инструменте CI, Jenkins, OP уже использует Visual Studio - почему бы не Visual Studio Online, как сервис, и поддерживать виртуальную машину Дженкинса?). Инструмент CI не поможет развертывать вашу инфраструктуру в новом регионе. –

1

Вы ищете автоматизацию развертывания в Azure. Я рекомендую использовать ElasticBox для его решения.

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

Возможно также создавать коробки на основе экземпляров виртуальной машины, ролей VM или рабочих ролей, а также автоматизировать развертывание Microsoft SQL Server. Скажем, рядом с любым вариантом, предлагаемым Azure.

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

В комплект поставки входят переменные, необходимые для развертывания (вы можете установить значения по умолчанию для этих переменных) и устаревшие сценарии (в данном случае, возможно, PowerShell, но они могут быть bash, python, perl, java или любым другим языком)

при развертывании коробки:

  • Создает облачную службу или VM в том месте, которое вы выбрали, и с Azure конфигурации, которая вам предварительно сконфигурированной. Он заботится о предоставлении vm у вашего Azure-провайдера или рядом с любым другим облачным провайдером на рынке.

  • Устанавливает, настраивает файлы с указанными переменными и выполняет определенные SQL или Web-сервисы, которые вы определили.

Другие способы взаимодействия со службой:

  • Jenkins' Plugin может быть использован для создания CI среды, соединяющую ваш код обновлен или Толкай запрос с автоматизированными внедрений в Azure или любом другом публичном облаке.

  • Command line tool, который позволяет выполнять развертывание виртуальных машин в ваших ящиках, а также вы можете управлять своими развернутыми экземплярами vm с ним.

+0

Я искал ElasticBox, и мне очень нравятся их предложения. Одна из проблем, с которыми я столкнулся, - это все, что было создано как Azure Website, с запланированными заданиями, работающими как WbJobs. Возможно, мне придется немного переструктурировать, поскольку ElasticBox поддерживает только роли Azure Web и Worker. – Onisemus

1

Azure Resource Manager (ARM) предназначен для решения именно тех проблем, которые вы описали.

Основная идея заключается в том, что вы используете шаблон JSON для описания всех ваших услуг. Затем вы можете предоставить этот шаблон ARM и создать службы, определенные в шаблоне. Если вы хотите внести изменения, вместо того, чтобы делать это настоятельно (через powershell или вручную на портале), просто обновите свой шаблон, передайте его в ARM и внесите необходимые изменения, чтобы службы соответствовали вашему шаблону.

Некоторые ресурсы:

+0

Я был очень рад услышать этот ответ, но, пытаясь пробраться через документацию, я быстро теряюсь. У меня возникли проблемы с поиском прямых примеров того, как создать шаблон для Azure Website (с веб-сайтом.конфигурации приложений и строк подключения). Как только я создаю шаблон, я не уверен, как его использовать. (Я создаю группу развертывания через Powershell и использую ее таким образом? Могу ли я использовать ее с существующей группой развертывания? И т. Д.). Возможно, я что-то пропустил, но для новичка Azure вам многое предстоит пропустить. – Onisemus

+0

Хорошим способом начать будет создание [проекта развертывания группы ресурсов] (https://msdn.microsoft.com/en-us/library/azure/dn872471.aspx) в Visual Studio. Это создаст шаблоны ресурсов и сценарии PowerShell, которые вы затем сможете настроить по мере необходимости. – BenV

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