Выбор правильного размещения в Azure

В этой статье сравниваются варианты, доступные в Azure при переносе существующих приложений .NET Framework из локальной среды в Azure.

При переносе существующих приложений .NET Framework в Azure следует учитывать следующие важные аспекты:

  1. Варианты вычислительных сред.
  2. Варианты баз данных.
  3. Сетевые подключения и безопасность
  4. Проверка подлинности и авторизация.

Варианты вычислительных сред.

Для переноса существующих приложений .NET Framework в Azure существует несколько вариантов. Но так как платформа .NET Framework работает только с ОС Windows, эти варианты ограничиваются службами вычислений на базе Windows.

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

Виртуальные машины Azure Служба приложений Azure Контейнеры Windows
Когда использовать
  • Приложение в значительной степени зависит от сервера и локально хранящихся MSI-файлов установки.
  • Вам нужен самый простой способ переноса приложения
Приложение не зависит от сервера, это просто "чистое" веб-приложение ASP.NET (MVC, WebForm) или n-уровневое приложение (Web API, WCF) с доступом к серверу базы данных.
  • Приложение зависит от сервера-источника, но эти зависимости можно включить в образ Docker Windows.
Преимущества
  • Самый простой способ переноса.
  • Знакомая среда. В качестве среды развертывания используется виртуальная машина, что соответствует локальным серверам.
Текущее обслуживание PaaS — простой способ масштабирования приложений и управления ими в Azure.
  • Подготовка к новым возможностям и процессам DevOps в облаке с зависимостями, включенными в контейнеры приложений.
  • Практически нет необходимости в рефакторинге кода .NET или C#.
Недостатки Это инфраструктура как услуга (IaaS). Обслуживание обходится дорого. Необходимость управлять такими элементами инфраструктуры виртуальных машин, как сеть, подсистема балансировки нагрузки, горизонтальное масштабирование, службы IIS и т. д.
  • Поддерживаются не все приложения.
  • Для некоторых приложений требуется выполнять рефакторинг и даже незначительно изменять архитектуру, чтобы они поддерживали службу приложений Azure.
  • Курс обучения навыкам работы с Docker.
  • Требуется изменить некоторые параметры конфигурации приложения и код.
Требования Виртуальная машина Windows Server с такими же требованиями, как и для приложения в локальной среде. Требования к Службе приложений Azure, указанные в инструкциях по проверке готовности.
Миграция См. статью Перенос веб-приложения ASP.NET на виртуальную машину Azure. См. статью Перенос веб-приложения ASP.NET в службу приложений Azure. Следуйте рекомендациям, сценариям и пошаговым инструкциям, которые приводятся в электронной книге Modernize existing .NET applications with Azure cloud and Windows Containers (Модернизация существующих приложений .NET с помощью облака Azure и контейнеров Windows).

На следующей блок-схеме показано дерево принятия решений при планировании переноса существующих приложений .NET Framework в Azure. Хотя вариант Б является самым простым, по возможности попробуйте сначала вариант А.

Flowchart showing hosting decision tree

Варианты баз данных.

Для переноса реляционных баз данных в Azure существует несколько вариантов. Чтобы выбрать правильный способ переноса для существующего приложения .NET, см. статью Перенос базы данных SQL Server в Azure.

Сетевые подключения и безопасность

При развертывании приложений в общедоступном облаке, таком как Microsoft Azure, может потребоваться изолировать и защитить некоторые сети. Для этого можно создать сети периметра, например сеть периметра между Azure и локальным центром обработки данных или сеть периметра между Azure и Интернетом. Вы можете реализовать сети периметра, используя виртуальные сети Microsoft Azure.

Виртуальные сети Azure позволяют выполнять следующие задачи:

  • Создание управляемой гибридной инфраструктуры
  • Использование собственных IP-адресов и серверов DNS
  • Обеспечение безопасности подключений с помощью VPN-соединения IPsec или ExpressRoute
  • Детальный контроль над трафиком между подсетями
  • Создание передовых сетевых топологий с виртуальными модулями
  • Создание изолированной и безопасной среды для ваших приложений.

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

Проверка подлинности и авторизация при переносе в Azure

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

Большинство существующих корпоративных приложений .NET B2E, которые выполняются в локальной среде, используют Active Directory для проверки подлинности и управления удостоверениями. Azure AD Connect позволяет интегрировать локальные каталоги с Azure Active Directory. Чтобы приступить к работе, изучите статью Интеграция локальных каталогов с Azure Active Directory.

При планировании дальнейших действий с Azure Active Directory ознакомьтесь со статьей Определение требований к идентификации для решений гибридной идентификации.

Другие варианты связаны с протоколами проверки подлинности OAuth и OpenID, которые часто используются в клиентских приложениях. Как правило, когда применяются автономные базы данных удостоверений, например базы данных SQL удостоверений ASP.NET с программой-оболочкой IdentityServer4, использующей OAuth, подключение к локальным базам данных или каталогам не требуется.

Следующие шаги