Развертывание в Azure с помощью Visual Studio Team Services (VSTS) и .NET Core
Сегодня мы поговорим о Microsoft Azure, Visual Studio Team Services (VSTS) и C# .NET Core.
Microsoft Azure
Microsoft Azure существует уже несколько лет, и вы, наверное, слышали о ней. Это облачная платформа Microsoft, которая конкурирует напрямую с AWS Amazon и Google Cloud. Если вы до сих пор не знаете, что такое «облако» (помимо довольно раздутого модного слова), предлагаем вам действительно изучить его, поскольку у него большие перспективы. Если у вас еще нет учетной записи, создайте ее. Это бесплатно, и вам нужна только кредитная карта и учетная запись электронной почты Microsoft, например Hotmail или Outlook.
Первоначальное использование Azure бесплатно. Вы получаете бесплатный кредит, действительный в течение одного месяца. Некоторые услуги бесплатны в течение месяца, за остальные нужно платить. Простое наличие пустой учетной записи Azure всегда бесплатно. В этом сообщении мы собираемся разместить в Azure веб-приложение по умолчанию, используя приложение App (которое в любом случае будет вам почти ничего не стоить).
Visual Studio Team Services (VSTS)
VSTS - это облачная версия Microsoft Team Foundation Service (TFS), которая является их инструментом для непрерывной интеграции и развертывания, контроля исходного кода и инструментов Agile, таких как платы SCRUM и Kanban. Опять же, если у вас еще нет подписки, рекомендуеи вам ее создать. Как и в случае с Azure, это бесплатно, и вам нужен адрес электронной почты Microsoft, такой как Hotmail или Outlook. Для бесплатной версии VSTS вы получаете довольно много функциональности, например 240 бесплатных минут сборки в месяц и неограниченные бесплатные репозитории Git (всегда используйте Git, никогда Team Foundation Service Control (TFSC)). С подпиской MSDN вы получаете дополнительную функциональность, но уровень свободного использования также достаточно хорош.
.NET Core
В течение последних нескольких лет Microsoft сосредоточилась на .NET Core, многоплатформенном подмножестве с открытым исходным кодом .NET Framework. Хотя у него все еще есть некоторые проблемы, даже в последней версии .NET Core 2.1, это также довольно круто, и мы уже используем его для создания программного обеспечения. Это немного отличается от полной .NET Framework, но не сильно. Возможно, вам придется загрузить и установить последний SDK, который можно найти на странице .NET Core GitHub. Поддержка Visual Studio для .NET Core начинается с Visual Studio 2017, так что будьте уверены, что вы в курсе последних событий, иначе вы, возможно, будете следовать вместе с обычным веб-приложением .NET Framework ASP.NET.
Создание .NET Core Project
Итак, давайте объединим эти инструменты. Начнем с создания нового (частного) проекта в VSTS, что довольно просто. Фактически, вы, вероятно, уже создали его, когда создали учетную запись VSTS. Я сохранил значение по умолчанию, MyFirstProject. Когда вы переходите на вкладку «Код» вашего проекта в VSTS, вы можете инициализировать свой репозиторий (внизу страницы) с файлом README.md и файлом .gitignore (выберите Visual Studio).
Инициализация репозитория в VSTS.
Вы можете скопировать ссылку или клонировать ее прямо в Visual Studio на следующей странице в правом верхнем углу под кнопкой «Clone». Предполагается, что вы знаете, как работает Git, поэтому мы не будем рассказывать об этом здесь.
После локального размещения репозитория мы можем начать с добавления кода. Поскольку мы фокусируемся на развертывании на Azure с использованием VSTS, на самом деле не имеет значения, какой у вас код, поэтому просто создайте основное веб-приложение ASP.NET в Visual Studio 2017. Вы можете выбрать обычное веб-приложение (которое будет использовать Razor View Pages по умолчанию) или проект Model-View-Controller, в зависимости от того, что вам нравится. Как только шаблон веб-приложения по умолчанию загружается, вы можете зафиксировать и нажать его в свой репозиторий Git, и мы можем начинать веселье!
Azure App Services
Для следующего шага мы немного покопошимся в Лазуре. Войдите в свой портал Azure и найдите свои приложения. Просто нажмите кнопку «Add», выберите «Web App» и нажмите «Create». На следующей странице вы можете установить некоторые параметры для своего веб-приложения, например URL-адрес, на котором будет размещаться ваше приложение (которое всегда заканчивается на .azurewebsites.net).
Новое веб-приложение Azure
Вам также придется создать группу ресурсов или выбрать существующую. Группа ресурсов - это просто способ группировки определенных ресурсов для быстрого обзора. Например, у вас может быть отдельная группа ресурсов для разработки, тестирования, принятия и производства или для вашего портала клиента и ваших внутренних инструментов, все зависит от вас.
Наиболее важным параметром здесь является App Service Plan/Location. Это в основном сервер, за который вы платите. Для вас создан новый план, но вы также можете создать свой собственный. У вас разные уровни цен с различными техническими характеристиками и функциональностью Azure, такими как CPU, память, пользовательские домены, промежуточные сегменты и ежедневные резервные копии.
Местоположение вашего плана определяет, где сервер физически находится. Просто начните со стандартным стандартом S1. Даже если у вас нет бесплатных кредитов, вы можете удалиться после того, как прочитаете этот пост в блоге, и это будет стоить вам всего $ 0,03, поэтому не беспокойтесь о расходах.
Настройка развертывания из Azure
Пока мы остановимся в Azure. Вероятно, вы видели кнопку Build and Release в VSTS. Здесь вы можете создавать новые конвейеры сборки и развертывания.
Построение конвейера может автоматически создавать и тестировать ваше программное обеспечение после нажатия на Git. Это включает в себя восстановление пакетов NuGet, уменьшение и связывание любых HTML, CSS и JavaScript, которые у вас могут быть, выполнение средств запуска задач и, в основном, все, что вам когда-либо понадобилось для создания и запуска вашего программного обеспечения. Когда ваша последняя фиксация построена и протестирована, VSTS может создать артефакт для публикации.
Конвейер развертывания может загрузить артефакт из конвейера сборки и поместить его в Azure (или на собственные серверы на локальном уровне). Триггер для развертывания обычно заключается в том, что сборка выполнена успешно, но также может быть нажатием на Git или ручной триггер.
Когда вы создаете и тестируете свое программное обеспечение автоматически, это называется Continuous Integration (или CI), а когда ваше программное обеспечение также автоматически развертывается, это называется Continuous Deployment (или CD). Между ними есть что-то промежуточное, что удерживает развертывание до тех пор, пока пользователь явно не нажмет кнопку и не даст знак «okay», это называется Continuous Delivery. Когда вы выполняете как CI, так и Continuous Delivery и / или Deployment, вы делаете «CI / CD».
Давайте установим это с помощью всего одного нажатия кнопки. У вас есть два варианта в Azure. В своем веб-приложении настройте развертывание из пункта меню «Варианты развертывания» или используйте новый «Центр развертывания (Preview)», который, как следует из названия, все еще находится в режиме предварительного просмотра.
Параметы развертывания в Azure
Параметры развертывания
Это действительно так просто, что возможно вам нет смысла показывать следующие шаги. Выберите пункт меню Deployment options и просто заполните параметры, которые вы хотите использовать.
Параметры развертывания в Azure
Вот и все. Если теперь вы перейдете к параметрам развертывания в своем веб-приложении, вы увидите, что Azure теперь показывает все ваши подтверждения. Если вы нажмете новое подтверждение своему репозиторию, вы даже увидите статус сборки в Azure, потому что Azure привязал ее к вашей учетной записи VSTS.
Непрерывное развертывание в Azure
Когда развертывание завершено, перейдите на свой сайт Azure (например, imunique.azurewebsites.net), и вот, ваш сайт запущен и работает! Попробуйте что-то изменить на главной странице, нажмите на Git, подождите несколько минут и посмотрите, как ваш сайт обновляется.
Центр развертывания (Preview)
Предполагается, что Microsoft планирует заменить «“Deployment options» на «Deployment Center (Preview)». Если вы уже установили CI / CD с параметрами развертывания, вы также увидите свои подтверждения. Для целей этого блога мы собираемся отключить (кнопка Disconnect в верхнем меню).
Теперь перейдите в Центр развертывания (Preview), и вы увидите различные опции управления версиями, такие как VSTS, Github и Bitbucket. Это немного более визуально привлекательно, чем большинство панелей Azure. Поэтому выберите VSTS и продолжайте. Затем вам нужно выбрать поставщика сборки. У нас нет опыта работы с Kudu, поэтому выберите «VSTS Continuous Delivery» (что не по умолчанию).
Центр развертывания в Azure
На следующей панели вы можете выбрать свою учетную запись VSTS и репозиторий. К сожалению, на момент написания этого блога, похоже, здесь есть ошибка, которая мешает выбирать учетную запись. Он работал в прошлом, и команда Azure заявила, что устранила проблему в предстоящем выпуске (что довольно часто) ... Поэтому попробуйте сами, возможно у вас это сработает!
В любом случае, если вы продолжите, Azure создаст конвейер сборки и конвейер развертывания в VSTS! Теперь это довольно круто. Это дает вам полный контроль над вашими сборками и развертываниями, так как вы можете настроить их, как вам нравится. В то же время Центр развертывания теперь показывает, какие сборки были развернуты.
Конвейеры в VSTS
Перейдите на свой VSTS и проверьте сборку. Пользовательский интерфейс не всегда интуитивно понятен, но вы должны его найти. Вы можете отредактировать сборку и немного щелкнуть по ней. Вам не нужно менять его, но вы можете.
VSTS build
Развертывание немного отличается. Для каждой части кода есть всего одна сборка, но для всей вашей улицы DTAP (dev, test, accept, and production) может быть несколько развертываний. Azure создал выпуск с единой средой «Dev».
Выпуск VSTS
Вы можете изменить развертывание в «Задачи» для этой среды (либо щелкните Dev dev, либо выберите Tasks в верхнем меню). Задачи выглядят похожими на сборку VSTS и могут быть (полностью) разными для каждой среды. В основном ваши задачи будут более или менее одинаковыми, и вы будете иметь только некоторые значения, которые отличаются для каждой среды. Вы можете использовать «Переменные» для этих разных значений, но это выходит за рамки этой публикации.
Также довольно легко клонировать всю среду (включая ее задачи и переменные). Просто наведите курсор на фрагмент среды, которую хотите клонировать, и появится кнопка Clone. Нажмите его, и вы получите новую среду, которая ,будет точно такая же, что и оригинал. Дальнейшая настройка сборки и выпусков выходит за рамки этой публикации, но вы можете щелкнуть по ней, если хотите.
Когда вы закончите экспериментировать, просто удалите выпуск и конвейеры сборки (в этом порядке). Также убедитесь, что вы отключили развертывание в Центре развертывания Azure.
Развертывание из Visual Studio 2017
Наконец, вернемся к Visual Studio. Вы можете сделать то же самое в Visual Studio. Щелкните правой кнопкой мыши проект, который вы хотите опубликовать (это ваш веб-проект), и выберите Overview в раскрывающемся меню. На открывшейся странице перейдите к Publish (в меню слева).
Здесь вы можете опубликовать или настроить свой CI / CD. Нажмите кнопку Start в разделе Continuous Delivery, и вы можете снова выбрать подписку VSTS и службу приложений (она по умолчанию создает новую службу приложений, но вы также можете выбрать существующую). Просто щелчок по кнопке «ОК» будет иметь тот же результат, что и в Центре развертывания. Он создаст новый конвейер сборки и развертывания, который также будет отображаться в вашем Центре развертывания. Довольно круто!
Возвращаясь к странице публикации в Visual Studio, вы можете просто опубликовать ее напрямую. Это очень полезно, если вы хотите что-то отпустить Azure прямо сейчас. Просто нажмите кнопку Start в разделе Publish. Теперь вы можете либо создать новую службу приложений Azure, либо выбрать существующую. Просто следуйте указаниям мастера, и ваше приложение будет опубликовано непосредственно в Azure без конвейера сборки или развертывания. Однако будьте осторожны, ваша локальная сборка будет развернута, что часто будет отличаться от сборки с сервера сборки.
Завершение
Итак, вы сделали это! Развертывание никогда не было таким простым! Всего за пару минут мы создали приложение, поместили его в исходный элемент управления и развернули его в облаке, готовое к показу всему миру (вы можете ограничить доступ). Раньше у вас могли уходить часы, чтобы настроить новый сервер (или дни и даже недели, если вам еще нужно было его заказать), но эта альтернатива намного быстрее и дешевле.
Следующий шаг - использование шаблонов ARM (Azure Resource Management) для автоматического создания приложений и других ресурсов Azure. Ознакомьтесь с сообщением о шаблонах ARM, чтобы начать работу.
Не забудьте удалить приложение App Service и ваш план обслуживания приложений, иначе вам придется платить за них!
Удачи и счастливого кодирования!