Контейнеризация приложений ASP.NET и миграция в Службу приложений Azure

В этой статье вы узнаете, как контейнеризировать приложения ASP.NET и перенести их в Службу приложений Azure с помощью средства контейнеризации приложений службы "Миграция Приложений Azure". Процесс контейнеризации не требует доступа к базе кода и предоставляет простой способ контейнеризации существующих приложений. Средство работает с помощью состояния выполнения приложений на сервере для определения компонентов приложения. Затем он помогает упаковать их в контейнерный образ. Затем можно развернуть контейнерное приложение в Службе приложений Azure.

Средство контейнеризации приложений Azure Migrate поддерживает следующее:

Средство контейнеризации приложений помогает:

  • Узнайте о компонентах приложения. Средство удаленно подключается к серверам приложений, которые запускают приложение ASP.NET и обнаруживают компоненты приложения. Он создает Dockerfile, который можно использовать для создания образа контейнера для приложения.
  • Создание образа контейнера. Вы можете проверить и дополнительно настроить Dockerfile на основе требований приложения и использовать его для создания образа контейнера приложения. Образ контейнера приложения отправляется в указанный реестр контейнеров Azure.
  • Развертывание в Службе приложений Azure. Затем средство создает файлы развертывания, необходимые для развертывания контейнерного приложения в Службе приложений Azure.

Замечание

Инструмент контейнеризации приложений Azure Migrate помогает обнаруживать конкретные типы приложений (веб-приложения ASP.NET и Java на Apache Tomcat) и их компоненты на сервере приложений. Для обнаружения серверов и инвентаризации приложений, ролей и функций, работающих на локальных компьютерах, используйте инструмент обнаружения и оценки Azure Migrate.

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

  • Улучшено использование инфраструктуры. При использовании контейнеров несколько приложений могут совместно использовать ресурсы и размещаться в одной инфраструктуре. Это поможет консолидировать инфраструктуру и улучшить использование.
  • Упрощенное управление. Размещая приложения на современных управляемых платформах, таких как AKS и Служба приложений, вы можете упростить методики управления. Это упрощение можно добиться путем снятия с эксплуатации или сокращения процессов по обслуживанию и управлению инфраструктурой, которые традиционно выполняются для собственной инфраструктуры.
  • Переносимость приложения. Благодаря увеличению внедрения и стандартизации форматов и платформ спецификаций контейнеров переносимость приложений больше не является проблемой.
  • Внедрение современного управления с помощью DevOps. Использование контейнеров помогает внедрять и стандартизировать современные методики управления и безопасности и перехода на DevOps.

В этом руководстве описано, как:

  • Настройка учетной записи Azure.
  • Установите средство контейнеризации приложений Azure Migrate.
  • Откройте приложение ASP.NET.
  • Создание образа контейнера.
  • Разверните контейнерное приложение в службе приложений.

Замечание

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

Предпосылки

Перед началом этого урока вам следует:

Требование Подробности
Определение компьютера, на котором необходимо установить средство Вам нужен компьютер с Windows, на который необходимо установить и запустить средство контейнеризации приложений Azure Migrate. Компьютер Windows может запускать сервер (Windows Server 2016 или более поздней версии) или операционную систему (Windows 10). (Средство может работать на рабочем столе.)

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

Убедитесь, что на компьютере с Windows, где запущен инструмент контейнеризации приложений Azure Migrate, доступно 6 ГБ. Это пространство предназначено для хранения артефактов приложения.

Компьютер Windows должен иметь доступ к Интернету напрямую или через прокси-сервер.

Если средство веб-развертывания Майкрософт еще не установлено на компьютере под управлением средства контейнеризации приложений и сервера приложений, установите его. Вы можете скачать средство.
Серверы приложений Включите удаленное взаимодействие PowerShell на серверах приложений: войдите на сервер приложений и выполните следующие инструкции, чтобы включить удаленное взаимодействие PowerShell.

Убедитесь, что PowerShell 5.1 установлен на сервере приложений. Следуйте инструкциям в разделе "Установка и настройка WMF 5.1 " на сервере приложений.

Если средство веб-развертывания Майкрософт еще не установлено на компьютере под управлением средства контейнеризации приложений и сервера приложений, установите его. Вы можете скачать средство.
приложение ASP.NET В настоящее время средство поддерживает следующее:
  • ASP.NET приложения, использующие .NET Framework 3.5 или более поздней версии.
  • Серверы приложений под управлением Windows Server 2012 R2 или более поздней версии. (Серверы приложений должны работать под управлением PowerShell 5.1.)
  • Приложения, выполняемые в службах Internet Information Services 7.5 или более поздней версии.


В настоящее время средство не поддерживает:
  • Приложения, требующие проверки подлинности Windows.
  • Приложения, зависящие от других служб Windows, размещенных вне служб Internet Information Services.

Подготовка учетной записи пользователя Azure

Если у вас нет подписки Azure, создайте бесплатную учетную запись перед началом работы.

После настройки подписки вам потребуется учетная запись пользователя Azure:

  • Разрешения владельца подписки Azure.
  • Разрешения на регистрацию приложений Microsoft Entra.

Если вы только что создали бесплатную учетную запись Azure, вы являетесь владельцем подписки. Если вы не являетесь владельцем подписки, обратитесь к владельцу, чтобы назначить разрешения следующим образом:

  1. На портале Azure найдите "подписки". В разделе "Службы" выберите подписки:

    Снимок экрана: поле поиска для поиска подписки Azure.

  2. На странице подписок выберите подписку, в которой хотите создать проект Azure Migrate.

  3. В панели слева в подписке выберите Управление доступом (IAM).

  4. На вкладке "Проверка доступа" найдите соответствующую учетную запись пользователя.

  5. В разделе "Добавление назначения роли" нажмите кнопку "Добавить":

    Снимок экрана: поиск учетной записи пользователя для проверки доступа и назначения роли.

  6. На странице "Добавление назначения ролей" выберите роль владельца и выберите учетную запись (azmigrateuser в нашем примере). Затем нажмите кнопку "Сохранить".

    Снимок экрана: страница добавления назначения ролей.

    Вашей учетной записи Azure также требуются разрешения для регистрации приложений Microsoft Entra.

  7. На портале Azure перейдите к Microsoft Entra ID>Пользователи>Параметры пользователей.

  8. В параметрах пользователей убедитесь, что пользователи Microsoft Entra могут зарегистрировать приложения. (Этот параметр имеет значение "Да " по умолчанию.)

    Снимок экрана: страница параметров пользователя.

    Это важно

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

  9. Если для параметра регистрации приложений задано значение "Нет", попросите клиента или глобального администратора назначить требуемое разрешение. Кроме того, администратор арендатора или глобальный администратор может назначить учетной записи роль разработчика приложений, чтобы разрешить регистрацию приложений Microsoft Entra. Дополнительные сведения см. в разделе "Назначение ролей пользователям".

Скачайте и установите инструмент контейнеризации приложений Azure Migrate

  1. Скачайте установщик Azure Migrate App Containerization на компьютер под управлением Windows.

  2. Откройте PowerShell в режиме администратора и измените каталог PowerShell на папку, содержащую установщик.

  3. Запустите скрипт установки с помощью следующей команды:

    .\AppContainerizationInstaller.ps1
    

Замечание

Для Windows Server 2022 измените строку 135 и удалите PowerShell-ISE ее из списка компонентов, так как она больше не поддерживается.

Открытие средства контейнеризации приложений

  1. Откройте браузер на любом компьютере, который может подключиться к компьютеру Windows под управлением средства контейнеризации приложений. Перейдите по URL-адресу средства: https://имя машины или IP-адрес: 44369.

    Кроме того, вы можете открыть приложение на рабочем столе с помощью ярлыка приложения.

  2. Если появится предупреждение о том, что подключение не закрыто, выберите "Дополнительно " и перейдите на веб-сайт. Это предупреждение появляется, так как веб-интерфейс использует самозаверяющий TLS/SSL-сертификат.

  3. На экране входа используйте учетную запись локального администратора компьютера для входа.

  4. Выберите ASP.NET веб-приложения в качестве типа приложения, которое требуется контейнеризировать.

  5. В списке целевых служб Azure выберите контейнеры в службе приложений Azure:

    Снимок экрана: тип приложения и списки целевых элементов.

Завершите предварительные требования для инструмента

  1. Примите условия лицензионного соглашения и ознакомьтесь со сторонними сведениями.
  2. В веб-приложении средства настройте предварительные требования, выполните следующие действия.
    • Связь. Средство проверяет, имеет ли компьютер Windows доступ к Интернету. Если компьютер использует прокси-сервер:

      1. Выберите "Настроить прокси-сервер ", чтобы указать прокси-адрес (в форме IP-адрес или полное доменное имя) и порт прослушивания.

      2. Укажите учетные данные, если прокси-сервер нуждается в проверке подлинности.

      3. Если вы добавили сведения о прокси-сервере или отключили прокси-сервер или проверку подлинности, нажмите кнопку "Сохранить ", чтобы снова активировать проверку подключения.

      Поддерживается только прокси-сервер HTTP.

    • Установка обновлений. Средство автоматически проверяет наличие последних обновлений и устанавливает их. Вы также можете вручную установить последнюю версию средства.

    • Установите средство Microsoft Web Deploy. Средство проверяет, установлен ли инструмент веб-развертывания Microsoft на компьютере с Windows, на котором запущен инструмент контейнеризации приложений Azure Migrate.

    • Включите удаленное управление PowerShell. Средство попросит вас убедиться, что удаленное управление PowerShell включено на серверах приложений, где запущены приложения ASP.NET, которые требуется контейнеризировать.

Вход в Azure

  1. Выберите вход , чтобы войти в учетную запись Azure.

    Вам нужен код устройства для проверки подлинности в Azure. При выборе входа должно открыться окно, содержащее код устройства. Если окно не отображается, убедитесь, что вы отключили блокировщик всплывающих окон в браузере.

  2. Выберите "Копировать код" и войдите, чтобы скопировать код устройства и перейти к запросу на вход Azure на новой вкладке браузера:

    Снимок экрана: код устройства для входа в Azure.

  3. На новой вкладке вставьте код устройства и выполните вход с помощью учетных данных учетной записи Azure. После входа можно закрыть вкладку браузера и вернуться к веб-интерфейсу средства контейнеризации приложений.

  4. Выберите клиент Azure , который вы хотите использовать.

  5. Укажите подписку Azure , которой вы хотите воспользоваться.

Обнаружение приложений ASP.NET

Средство контейнеризации приложений удаленно подключается к серверам приложений с помощью предоставленных учетных данных и пытается обнаружить ASP.NET приложения, размещенные на серверах приложений.

  1. Укажите IP-адрес сервера или полное доменное имя и учетные данные сервера, на котором выполняется приложение ASP.NET, которое должно использоваться для удаленного подключения к серверу для обнаружения приложений.

    • Необходимо предоставить учетные данные для локального администратора Windows на сервере приложений.
    • Для учетных записей домена (пользователь должен быть администратором на сервере приложений), префиксируйте имя пользователя с доменным именем в этом формате: <домен\имя> пользователя.
    • Для локальных учетных записей (пользователь должен быть администратором на сервере приложений), префикс имени пользователя с именем узла в этом формате: <имя узла\имя> пользователя.
    • Обнаружение приложений можно выполнять на 5 серверах одновременно.
  2. Выберите "Проверить" , чтобы убедиться, что сервер приложений доступен на компьютере, на котором запущено средство, и что учетные данные действительны. После успешной проверки столбец "Состояние " будет отображаться как сопоставленный:

    Снимок экрана: состояние сервера в виде сопоставленного.

  3. Нажмите кнопку "Продолжить", чтобы начать обнаружение приложений на выбранных серверах приложений.

  4. После завершения обнаружения приложений выберите приложения, которые требуется контейнеризировать:

    Снимок экрана: обнаруженное приложение ASP.NET.

  5. Укажите имя целевого контейнера для каждого выбранного приложения. Укажите имя контейнера как <имя:тег>, где тег используется для контейнерного образа. Например, можно указать имя целевого контейнера как appname:v1.

Параметризация конфигураций приложений

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

  1. Выберите конфигурации приложений для проверки обнаруженных конфигураций.

  2. Выберите параметры, которые требуется параметризировать, и нажмите кнопку "Применить".

    Снимок экрана: список обнаруженных конфигураций.

Вынесение зависимостей файловой системы наружу

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

  1. Выберите "Изменить " в папках приложений , чтобы просмотреть обнаруженные папки приложения. Эти папки были определены как обязательные элементы, необходимые для приложения. Эти данные будут скопированы в образ контейнера.

  2. Выберите "Добавить папку " и укажите пути к папке, которые требуется добавить.

  3. Чтобы добавить несколько папок в один том, разделите значения запятыми.

  4. Выберите общую папку Azure в качестве параметра хранилища, если требуется, чтобы папки хранились вне контейнера в постоянном хранилище.

  5. Нажмите кнопку "Сохранить" после просмотра папок приложения:

    Снимок экрана: окно

  6. Нажмите кнопку "Продолжить", чтобы перейти к этапу сборки образа контейнера.

Создание образа контейнера

  1. В раскрывающемся списке выберите реестр контейнеров Azure , который будет использоваться для создания и хранения образов контейнеров для приложений. Вы можете использовать существующий реестр контейнеров Azure или создать новый, выбрав "Создать новый реестр":

    Снимок экрана: окно

    Замечание

    Отображаются только реестры контейнеров Azure с включенной учетной записью администратора. Учетная запись администратора в настоящее время требуется для развертывания образа из реестра контейнеров Azure в Службе приложений Azure. Дополнительные сведения см. в статье "Проверка подлинности с помощью реестра контейнеров Azure".

  2. Файлы Dockerfile, необходимые для создания образов контейнеров для каждого выбранного приложения, создаются в начале шага сборки. Выберите "Рецензирование ", чтобы просмотреть Dockerfile. Вы также можете добавить все необходимые настройки в Dockerfile на шаге проверки и сохранить изменения перед началом процесса сборки.

  3. Выберите приложения, для которых требуется создать образы, а затем выберите Создать. При выборе "Сборка" будет запущена сборка образа контейнера для каждого приложения. Средство отслеживает состояние сборки и позволит продолжить следующий шаг после завершения сборки.

  4. Вы можете отслеживать ход выполнения сборки, выбрав " Выполнить сборку" в столбце состояния. Ссылка станет активной через пару минут после запуска процесса сборки.

  5. После завершения сборки нажмите кнопку "Продолжить ", чтобы указать параметры развертывания:

    Снимок экрана, который показывает ссылку для отзывов, статус образа контейнера и кнопки

Развертывание контейнерного приложения в Службе приложений Azure

После создания образа контейнера следующим шагом является развертывание приложения в качестве контейнера в Службе приложений Azure.

  1. Выберите план службы приложений Azure, который должен использовать приложение.

    Если у вас нет плана службы приложений или вы хотите создать план службы приложений для использования, можно создать его, выбрав "Создать план службы приложений".

  2. Нажмите кнопку "Продолжить" после выбора плана службы приложений.

  3. Если конфигурации приложения были параметризованы, укажите хранилище секретов, которое будет использоваться для приложения. Вы можете выбрать параметры azure Key Vault или приложения службы приложений для управления секретами приложения. Дополнительные сведения см. в разделе "Настройка строк подключения".

    • Если вы выбрали параметры приложения службы приложений для управления секретами, нажмите кнопку "Продолжить".
    • Если вы хотите использовать Azure Key Vault для управления секретами приложения, укажите хранилище ключей, которое вы хотите использовать.
      • Если у вас нет Azure Key Vault или вы хотите создать новое хранилище ключей, можно создать его, нажав кнопку "Создать azure Key Vault".
      • Средство автоматически назначит необходимые разрешения для управления секретами через хранилище ключей.
  4. Если вы добавили дополнительные папки и выбрали параметр общей папки Azure для постоянного хранения, укажите общую папку Azure, которая будет использоваться средством контейнеризации приложений во время развертывания. Средство будет копировать папки приложений, настроенные для файлов Azure, и подключать их к контейнеру приложения во время развертывания. 

    Если у вас нет файлового ресурса Azure или вы хотите создать новый файловый ресурс Azure, вы можете создать его, выбрав "Создать новую учетную запись хранения" и файловый ресурс.

  5. Теперь необходимо указать конфигурацию развертывания для приложения. Выберите "Настроить", чтобы настроить развертывание для приложения. На шаге настройки можно указать следующие настройки:

    • Имя. Укажите уникальное имя приложения. Это имя будет использоваться для создания URL-адреса приложения. Он также будет использоваться в качестве префикса для других ресурсов, созданных в рамках развертывания.
    • Конфигурация приложения. Для всех конфигураций приложений, параметризованных, укажите значения, используемые для текущего развертывания.
    • Конфигурация хранилища. Просмотрите сведения о любых папках приложений, настроенных для постоянного хранения.

    Снимок экрана: конфигурация развертывания.

  6. После сохранения конфигурации развертывания для приложения средство создаст YAML-файл развертывания Kubernetes для этого приложения.

    • Выберите "Рецензирование ", чтобы просмотреть конфигурацию развертывания для приложений.

    • Выберите приложения, которые требуется развернуть.

    • Выберите "Развернуть" , чтобы начать развертывание для выбранных приложений.

      Снимок экрана: кнопка

    • После развертывания приложения можно выбрать столбец состояния развертывания , чтобы отслеживать ресурсы, развернутые для приложения.

Устранение неполадок

Чтобы устранить неполадки с инструментом контейнеризации приложений, вы можете просмотреть файлы журналов на компьютере Windows, на котором запущено средство. Файлы журналов для средства находятся в папке C:\ProgramData\Microsoft Azure Migrate App Containerization\Logs.

Дальнейшие шаги