Все переходим на «удалёнку»! Это стало главной задачей примерно 2 месяца назад, когда мир изменился. Компаниям, которые мы обслуживаем как архитекторы облачных решений, в дополнение к настройке VPN к своей инфраструктуре понадобились удалённые рабочие столы. Удалённые рабочие столы для компаний нельзя назвать новой потребностью, которая ранее не была закрыта в компаниях вообще – у многих были и есть крупные локальные фермы VDI и терминальные сервера. Из-за массовости и скорости необходимого перехода на первый план у заказчиков, в разной степени, появились следующие проблемы:

  • Инфраструктура: скорость развёртывания удалённого доступа, в том числе необходимые для этого мощности
  • VPN: безопасный доступ к корпоративной инфраструктуре в реалиях сложности предоставления доступа с домашних устройств, количество сессий VPN которое могут выдержать роутеры и т.д.
  • Доступ к рабочим станциям: удалённый доступ к ноутбукам, которые у некоторых заказчиков по политикам безопасности должны находиться локально в компании и т.д

Многим нужно было решить эту задачу «по щелчку». Да, в корпоративном ИТ «по щелчку» редко что происходит, потому требуется заказать оборудование, лицензии, выделить сотрудников для проведения работ. Но с облачным Windows Virtual Desktop «щёлкать» будет проще и быстрее.

В этой статье мы расскажем о том, как планировать архитектуру при развёртывании Windows Virtual Desktop. Также обратим ваше внимание на несколько партнёрских решений, которые смогут качественно дополнить внедряемое.



Примечание: вы можете попробовать этот сценарий в Azure самостоятельно.

Предоставление сервиса удалённых рабочих мест (VDI) и терминальных серверов в масштабах компании, даже небольшой, требует существенного объёма работы от администраторов. Большая часть времени уходит на настройку и интеграцию множества компонентов, из которых состоит эти сервис. Microsoft предлагает посмотреть на эту задачу по новому с Windows Virtual Desktop (WVD). WVD это облачный сервис по виртуализации десктопов и приложения на базе Microsoft Azure. Главные преимущества WVD включают:

  • Интеграцию и управление компонентами, отвечающими за предоставление удалённых десктопов и приложения. Их обеспечивает Microsoft, предоставляя бесплатно как сервис с SLA.  
  • Лицензии на использование ОС и доступа к ней. Они уже включены во многие популярные пакеты Microsoft и не требуют дополнительных затрат, минимизируя стоимость решения в целом.
  • Сервис предоставляет возможность использования Windows 10 в формате терминального сервера, минимизируя стоимость сессии.

WVD Fall 2019 Release (GA) и Spring 2020 Update (Preview)


30 апреля в WVD стал доступен новый функционал, который сгруппирован под названием Spring 2020 Update. Этот функционал сейчас доступен в Public Preview и на него не распространяется SLA. На GA функционал, предоставляемый в рамках предыдущей версии — Fall 2019 Update, предоставляется с SLA 99.9%. ВМ, на базе которых предоставляются пулы для пользовательских сессий, покрываются своим SLA 99.95%. Функционал, связанный с Spring 2020 Update, планируется к переводу в GA в течение 2020 года. Так же будут подготовлены инструменты миграции экземпляров, построенных на базе Fall 2019 release, в новую версию.

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

  • This content applies to the Fall 2019 release that doesn't support Azure Resource Manager Windows Virtual Desktop objects.
  • This content applies to the Spring 2020 update with Azure Resource Manager Windows Virtual Desktop objects.

Главными изменениями сервиса в Spring 2020 Update являются:

  • Управление жизненным циклом объектов сервиса через Azure Portal без необходимости развёртывания дополнительного веб приложения и использования отдельного набора PowerShell команд.
  • Возможность назначения приложений на группы пользователей
  • Использование Azure RBAC для управления ролями, необходимыми для использования сервиса, а не выделенными ролями.
  • Встроенная возможность масштабирования, без необходимости использования внешнего приложения на основе Logic Apps

Если вам необходим гарантированный SLA и запуск в прод, то сейчас лучше выбрать Fall 2019 release. Если же вы только пробуете и хоте испытать новые возможности WVD, то начните с Spring 2020 Release.

Оценка стоимости


Бюджетную оценку по использованию сервиса, можно произвести на базе Azure Pricing Calculator. Для этого из списка сервисов необходимо выбрать Windows Virtual Desktop. Калькулятор подразумевает наличие необходимых лицензий на Windows Client или Windows Server OS (детали здесь):
Тип Описание Доступность
Windows 10 и Windows 7 Соответствующая лицензия Windows или Microsoft 365 позволяет использовать рабочие столы и приложения Windows 10 Корпоративная и Windows 7 Корпоративная без дополнительной платы. Вы можете использовать Windows 10 и Windows 7 с Виртуальным рабочим столом Windows только при наличии одной из следующих лицензий «на пользователя»:
* Microsoft 365 E3/E5;
* Microsoft 365 A3/A5/Student Use Benefits;
* Microsoft 365 F3;
* Microsoft 365 бизнес премиум
* Windows 10 Корпоративная E3/E5;
* Windows 10 для образовательных учреждений A3/A5;
* Windows 10 VDA на каждого пользователя.
Windows Server При наличии соответствующей клиентской лицензии служб удаленных рабочих столов вы можете использовать рабочие столы и приложения служб удаленных рабочих столов Windows Server без дополнительной платы. Вы можете использовать рабочие столы и приложения Windows Server 2012 R2 и более поздних версий только при наличии соответствующей клиентской лицензии служб удаленных рабочих столов «на пользователя» или «на устройство» с действующей программой Software Assurance (SA).
На странице Windows Desktop Pricing в разделе Personal Desktop и Multi-session Desktop example scenarios приведены ссылки на расчёты в калькуляторе, которые компонуют необходимые дополнительные ресурсы, такие как облачное хранилище для контейнеров профилей, сетевой трафик и т.д. с точки зрения стоимости преимущества использования WVD максимально проявляет себя при использовании Windows 10 Enterprise multisession в сценарии использования совместного пула. При интеграции с локальным ЦОД в расчёт стоит дополнительно включать стоимость Azure VPN Gateway и исходящего трафика.

Архитектура Microsoft Windows Virtual Desktop


Понимание архитектуры WVD позволит вам принять правильные решения при планировании и развёртывания сервиса, а также выстроить корректные ожидания от его производительности.



Для обсуждения, давайте разобьём архитектуру на блоки:

  1. Клиенты
  2. Windows Virtual Desktop
  3. Ресурсы в подписке заказчика
  4. Корпоративная сеть (aka on-prem, он-прем)

Клиенты


Конечный пользователь может подключаться к сервису как с использованием тонкого клиента через веб браузер, так и через толстый клиент на Windows, Mac, iOS, Android (все клиенты здесь). После авторизации пользователь видит иконки для подключения к удалённым десктопам или приложениям RemoteApp. Доступ к удалённым десктопам происходит по протоколу RDP поверх HTTPS. Дополнительным преимуществом использования толстого клиента на Windows является то, что опубликованные приложения синхронизируются в меню Старт.

Доступ происходит к единой публичной отказоустойчивой (SLA 99.5%) точке сервиса по адресу https://rdweb.wvd.microsoft.com/. Кастомизировать URL возможно с использованием сервиса Azure Front Door как описано здесь.



При логине в сервис используется учётная запись в Azure Active Directory (aka Azure AD), который вам необходимо иметь или создать. В облачной Azure AD необходимо создать учётные записи для пользователей или настроить синхронизацию УЗ через Azure AD Connect из вашей локальной сети. Для повышения безопасности доступа при аутентификации пользователя можно настроить использование Azure MFA, а так же создать другие дополнительные политики аутентификации с использованием Conditional Access (как описано здесь)

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

Windows Virtual Desktop


Это управляемая Microsoft-ом часть сервиса Windows Virtual Desktop, отвечающая за авторизацию пользователей, безопасный доступ к пулам десктопов, логгирование событий сервиса. Подключение к ВМ происходит с использованием подхода «reverse connect» – авторизации/аутентификации подключения по WebSocket по 443-порту с инициацией со стороны ВМ. Таким образом из Интернет не предоставляется прямой доступ к ВМ и нет открытых в Интернет портов. Процесс открытия сессии выглядит следующим образом:

  1. Пользователь, через клиент Remote Desktop (RD), запрашивает токен в Azure AD. Он получает его после аутентификации и проверки в том числе с использованием MFA, Conditional Access и Intelligent Security Graph.
  2. Клиент предоставляет токен в Web Access и через Broker происходит обращение в СУБД Azure SQL DB для получения списка ресурсов (приложений и десктопов), к которым может подключаться пользователь.
  3. После выбора ресурса клиент RD подключается к Gateway.
  4. Брокер оркеструет подключение от Агента WVD к Gateway-ю.
  5. Трафик ходит от агента RD десктопа к ВМ хоста через WebSocket



Облачная часть


При создании экземпляра сервиса WVD, в Azure AD создаётся конфигурационная запись WVD tenant (тенанта). В Azure SQL DB управляемой части сервиса хранятся т.н. метаданные, относящиеся к ресурсам этого тенанта: соответствие десктопов и приложений пользователям, конфигурация пулов, список опубликованных приложений и так далее. В Fall 2019 Release эти данные хранятся в ЦОДах в США (см здесь). По мере развития сервиса Spring 2020 Release появится возможность хранить метаданные в других регионах, в том числе в West Europe.

Сессионные ВМ, на базе которых предоставляются десктопы и приложения, а так же профили пользователей хранятся в регионе Azure (ЦОДе), который вы выберите при развёртывании этих компонентов. Для максимальной производительности все компоненты сервиса стоит располагать в едином регионе.

Свой ближайший ЦОД вы сможете выбрать с использованием инструмента Windows Virtual Desktop Experience Estimator, который измерит задержку (RTT – round trip time) от вашего рабочего места до ЦОДа и обратно. По опыту работы для большинства пользователей из России ближайшим является регион West Europe.



Конечные пользователи и их техническая поддержка смогут в процессе работы мониторить производительность удалённого подключения с использованием Connection Experience Indicator for RDS & WVD.



Необходимым условием развёртывания экземпляра сервиса является присоединение виртуальных машин пула к AD DS. AD может быть как облачной на базе Azure AD (AAD DS), так и на базе локального AD. При настройке WVD для большинства сценариев подходит использование Azure AD DS, он достаточно быстро и просто настраивается. AAD DS также поддерживает работу с групповыми политиками.

Если вам необходима интеграция с локальным AD, тогда необходимо настроить VPN из Azure в локальную инфраструктуру. Об этом подробнее расскажем в разделе «локальная часть». Для развёртывания AAD DS в виртуальной сети в Azure необходимо создать выделенную подсеть. При развёртывании AAD DS будет необходимо указать УЗ, которую можно будет использовать для введения ВМ в домен. Для данной УЗ будет необходимо произвести процедуру сброса пароля для синхронизации хэша пароля в формате, который использует сервис по процессу, описанному здесь. После развёртывания AAD DS, необходимо в настройках сервиса указать его как источник DNS записей для вашей виртуальной сети.

При создании пула сессионных ВМ вы можете воспользоваться предложенным размером ВМ – D4s_v3 (4 vCPU, 16GB памяти) или указать более подходящий вам. Критичным может оказаться выбор размера ВМ в пуле. Одним из подходов к определению размера ВМ является разделение пользователей по типам: Light, Medium, Heavy и Power, которым будут соответствовать конфигурации как описано здесь.

Это подход может помочь при бюджетной оценке решения и первом подходе, но реальность внесёт свои коррективы. Для эмпирической оценки мощностей необходимых для обеспечения работы ваших пользователей можно использовать бесплатную версию SysTrack Windows Virtual Desktop Assessment.



Ресурсы в пулах представляются в двух вариантах – pooled и dedicated – совместные и выделенные ВМ. При использовании «совместного» пула несколько пользователей могут подключаться на одну ВМ в формате терминального сервера, в «выделенном» — ВМ закрепляется за конкретным пользователем. При начале работы с WVD можно начинать рассмотрение с ВМ серии:

  • Ds_v3 – сбалансированное соотношение vCPU и памяти
  • Fs_v2 – высокое соотношение vCPU к памяти
  • NVs_v3 – специализированные ВМ с GPU для работы с 3D графикой

При выборе типа виртуальной машины стоит обратить внимание на её максимальную производительность, представленную в таблицах как в примере ниже. Все размеры виртуальных машин можно посмотреть здесь.



Рекомендуемым типом диска для ВМ в пулах WVD является SSD диск типа «Premium». Диск для данного типа в стандартных образах ОС имеет размер 128GB (P10) и соответствующей этому размеру производительность – 500 IOPS (кратковременная пиковая до 3.5K IOPS), 100 MiB/sec. Производительность локального диска можно поднять, увеличив его размер до 2TB (P40).

По умолчанию профили пользователей размещаются на локальных дисках виртуальных машин в пуле. Ограничение такого подхода, является как сравнительно небольшая максимальная производительность локальных дисков, так и доступность профиля при выходе ВМ из строя при сбое или апгрейде. Вторым вариантом является размещение профиля на сетевом диске. Существует несколько технологий удалённого хранения профиля пользователей — Roaming user profiles (RUP), User profile disks (UPD), Enterprise state roaming (ESR). Каждый из этих подходов имеет свои ограничения при обеспечении работы подробно описанные здесь.

В 2018 году Microsoft приобрёл технологию FSLogix, которая решает многие вызовы при работе с профилями. При подключении к удалённому десктопу или запуске удалённого приложения, через сервис WVD, FSLogix динамически подключается к сетевому ресурсу и с него подключает контейнер c профилем пользователя. FSLogix так же интегрируется с облачным решением Azure Files (SLA 99.9%) и AD – как облачным так и локальным. Ввиду высокой скорости работы и соотношения цена/функционал связка FSLogix/Azure Files/Azure AD является отличным вариантом для использования совместно с WVD.

Для высокой масштабируемости и производительности Azure Files (до 100K IOPS, 5GBps пропускной способности при задержке в 3ms) рекомендуется использовать редакцию Premium. При использовании редакции Premium производительность папки завязана на её размер, и как результат на стоимость. Более подробно о расчёте производительности и цены для редакцию Premium смотрите здесь. Стоит обратить внимание на возможности в Premium редакции накапливать «кредиты» и использовать их для кратковременного ускорения при пиковых нагрузках.

Ввиду необходимости подключения контейнера FSLogix к ВМ с ACL соответствующими пользователю необходимо интегрировать сервис с AD – облачным или локальным. Интеграция Azure Files c Azure AD доступна в GA, тогда как интеграции с локальным AD сейчас находится в Preview. Подключение ВМ к Azure Files так же возможна с применением Private Endpoint, которые предоставляют доступ к сервису с использованием приватной адресации в Azure.

Сценарии и преимущества других вариантов хранения профилей с использованием FSLogix таких как Azure NetApp Files или Storage Spaces Direct описаны здесь. При использовании контейнеров FSLogix необходимо обратить внимание на их размер по умолчанию (30GB) и ознакомиться с возможными инструментами для управления ими.

Для оценки производительности ВМ в пуле, можно воспользоваться встроенным средством Azure Monitor.



Также вы можете рассмотреть бесплатное комплексное решение для мониторинга, включающее в себя метрики сервиса VWD — Azure Monitor for RDS and Windows Virtual Desktop от компании Sepago. Для полного функционирования решения необходимо развернуть агенты Sepago внутри ВМ вашего пула. Для сбора и хранения метрик используется Azure Log Analytics, который тарифицируется отдельно (см Log Analytics -> Pay as you Go).



При развёртывании WVD необходимо заранее запланировать распределение подсетей внутри виртуальной сети Azure. В зависимости от конфигурации, которую вы развёртываете, вам могут потребоваться:

  • одна или несколько подсетей для пулов WVD
  • подсеть для AAD DS или доступ к ней через пиринг виртуальных сетей
  • подсеть для Azure VPN GW или Network Virtual Appliance для организации доступа в локальную сеть

Поддерживаемыми ОС для ВМ в пулах являются Windows 7, 10 Enterprise, Windows Server 2012 R2, 2016, 2019. WVD предоставляет возможность использовать Windows 10 Enterprise в режиме одновременного подключения нескольких пользователей (multisession), без ограничения их количества и необходимости использования лицензии RDS CAL. По сути вы получаете функционал терминального сервера, ранее доступный только на Windows Server, на базе Windows 10, поддерживающий современные приложения. Такую версию Windows 10, по лицензионному соглашению, можно запустить только в Azure.

При необходимости включения в образ дополнительного ПО это можно сделать несколькими способами:

  1. Развернуть ВМ в Azure, кастомизировать, сделать образ и использовать его при развёртывании пула (детали процесса здесь)
  2. Взять образ локальной ВМ и загрузить его в Azure (детали процесса здесь)
  3. Рассмотреть применимость технологии MSIX app attach, которая позволяет подключать приложения без их установки

По опыту: заказчики устанавливали SAP и 1C клиенты, архиваторы, PDF просмотрщики, language pack. Настроить использование часового пояса можно вне процесса кастомизации образа через его редирекцию с использованием GPO.

Локальная часть


Интеграция с корпоративными приложениями и ресурсами «локального» ЦОД может осуществляться через site-to-site VPN, построенный на базе Azure VPN Gateway или Network Virtual Appliance (NVA). При развёртывании Azure VPN Gateway необходимо создать отдельную подсеть с зарезервированным названием GatewaySubnet с минимальным размером в /27. NVA развёртываются на базе ВМ, без определённых требований к наименованию подсети. В случае использования NVA, направить трафик на него возможно с помощью User Defined Routes.

NVA может как передавать весь трафик для фильтрации в локальном ЦОД, так и фильтровать его в облаке. При использовании Azure VPN GW установить ограничения трафика на L4 можно с помощью Network Security Group (NSG), которую необходимо применять на подсеть с ВМ, входящими в пул. При фильтрации трафика, стоит принять ко вниманию, что для корректного функционирования WVD пулу ВМ необходим доступ к списку URL. NSG позволяют предоставлять доступ к сервисам на базе Service Tags (коллекции IP адресов, которые относятся к каждому сервису). Фильтровать трафика в Azure на базе URL можно через NVA (в облаке или локальном ЦОДе) или через Azure Firewall. Для минимизации задержек рекомендуется использовать решение для фильтрации, расположенное в Azure.

При развёртывании VPN-решения стоит обратить внимание на его пропускную способность. При использовании NVA производительность определяется лицензией и сетевой картой выбранной вами ВМ. Для развёртывания Azure VPN GW используется SKU соответствующей производительности. Необходимо обратить внимание, что в дополнение к почасовой стоимости Azure VPN GW или ВМ для NVA также оплачивается исходящий из облака трафик.

Пропускная способность, необходимая для работы разных профилей пользователей, доступна здесь. Для расчёта передаваемого объёма траффика для «бюджетной» оценки можно использовать следующие цифры:         

Light: 75Kbps
Medium: 150Kbps
Heavy: 500Kbps
Power: 1000Kbps

Для точной оценки объёма используемого трафика его следует замерить на сетевом оборудовании или ПО, таком как бесплатная версия SysTrack Windows Virtual Desktop Assessment

Заключение


Удалённая работа стала реальностью почти для всех нас и вероятно может остаться такой на достаточно длительное время. Microsoft понимает это и делает создание и поддержание инфраструктуры для предоставления удалённых рабочих мест и приложений максимально простым и экономически доступным. Используя WVD для обеспечения удалённой работы вы сможете достигать большего быстрее.

Полезные ссылки


Попробуй Azure бесплатно
Развертывание и масштабирование виртуализированных рабочих столов и приложений Windows в Azure

Об авторе



Роман Лазарев – Старший Архитектор Облачных Решений. Последние 4 года работаю в Microsoft в роли выделенного архитектора и доверенного советника  для крупнейших Российских компаний использующих облако Microsoft Azure. Linked In