В предыдущей статье я мимолётом упоминал про использование технологии удалённого рабочего стола для организации взаимодействия распределённых команд. Сейчас мне бы хотелось более подробно остановиться на этой теме, понять границы применения этой технологии и провести сравнение наиболее популярных реализаций.
Хочу начать с того, что, на мой взгляд, чем меньше процент сетевых ресурсов, доступных только через удалённый рабочий стол, тем лучше. Если есть возможность напрямую соединиться с требуемым сетевыми ресурсам через браузер или другое приложение на вашем мобильном рабочем месте, нужно ей пользоваться. Согласитесь, это намного проще, чем подключаться к серверу, который, в свою очередь, будет подключаться к необходимому ресурсу.
Но всё-таки, что заставляет организации пользоваться технологиями удалённого рабочего стола?
Обычно принято считать, что соединение по «графическому» протоколу более контролируемо и безопасно. Например, из-за того, что перемещения и нажатия мыши по графическому интерфейсу проще записать и проанализировать (пост-фактум, или даже в реальном времени), чем слушать и разбирать «сырой» сетевой трафик.
Кроме того, обычно между мобильным рабочим местом и сервером удалённого рабочего стола ограничен или вообще закрыт файловый обмен. Поэтому, становится непросто «слить» большой объём данных, не привлекая внимания систему мониторинга и антивирус.
Злоумышленнику остаётся всего два варианта для «слива» информации через удалённый рабочий стол — фотографировать каждый экран выгрузки данных, что, согласитесь, несколько утомительно. Либо использовать буфер обмена (Ctrl+C, Ctrl+V), но он имеет ограниченный объём, и, вообще, может быть запрещён между мобильным рабочим местом и удалённым рабочим столом.
Некоторые сотрудники в компании могут вообще не иметь физических рабочих мест со столом, стулом и компьютером. Например, если их работа связана с переездами, и происходим, в основном, на территории заказчика. Но, при всём этом, таким сотрудникам нужен доступ ко внутренним системам своей компании. С минимальным риском потерять, или компрометировать приватные данные.
Тогда на помощь приходит удалённый рабочий стол — сотрудник подключается к нему из любой точки мира со своего ноутбука, или даже с различных компьютеров заказчика в нескольких офисах.
Если на ноутбуке или смартфоне вы работаете с офисными документами, почтой и видеозвонками, то мощности и батареи вам должно хватить для комфортной работы. Но, например, если вы занимаетесь большими данными, перекодированием видео или хотя бы компиляцией программ из исходного кода, на мобильном рабочем месте могут начаться проблемы. Хотя стационарный компьютер средней мощности вполне справляется с такими задачами.
Выход — запускать ресурсоёмкие задачи на стационарном рабочем компьютере, следить за их выполнением с мобильного рабочего места.
Если в большой компании взять суммарные мощности всех рабочих мест, посмотреть за утилизацией во времени, скорее всего, даже в рабочее время они будут недозагружены (не говоря уже о вечернем или ночном времени). Чтобы ресурсы не простаивали, легче эту суммарную мощность сосредоточить в одном общем распределённом сервере, а на рабочих местах держать только лёгкие и дешёвые терминалы для доступа к нему (монитор, мышь, клавиатура, минимум CPU, RAM и HDD). Как бонус, по ночам на этом сервере можно запускать ресурсоёмкие задачи, например, нагрузочное тестирование дневных сборок, или майнинг биткоинов :)
Возможно, некоторые нужные вам приложения работают только код Windows, или только через Internet Explorer, а у вас MacBook. Выход — подключиться к удалённому рабочему столу с требуемой операционной системой.
Ещё хорошая идея — использовать такой класс приложений, как локальные виртуальные машины (Virtual Box, VMware, Parallels...), на которых стоит остановиться подробнее. Обычно они запускаются прямо на мобильном рабочем месте, потребляют его ресурсы, при этом предоставляют аналогичный интерфейс удалённого рабочего стола. Хотя, рабочий стол тут вполне себе локальный, при подключении к нему работают те же схемы и законы, как к удалённому.
Чаще всего этот недостаток проявляется, когда сотрудник совмещает удалённый рабочий стол с рабочим столом своего устройства. Становится неудобно переключаться между окнами, перетаскивать объекты (drag&drop), искать открытое приложение в двух местах, работать с файлами. Идеальный вариант — использовать в работе только удалённый рабочий стол, мобильное устройство использовать лишь как терминал. Или использовать удалённый рабочий стол для решения нечастых, автономных задач, например, раз в год планировать себе календарь отпусков.
Хотя современные сети работают весьма быстро и стабильно, не нужно недооценивать фактор проблем со связью. Например, это относится к мобильному интернету, особенно в дороге при передвижении мобильного телефона. Если наложить на это возможные «тормоза» интерфейса на самом удалённом сервере, время отклика по нажатии клавиши или перемещения мыши может быть некомфортное для работы.
Обычно на своём ноутбуке или смартфоне пользователь имеет права администратора (хотя бы локального), может устанавливать дополнительные программы или настраивать их «под себя». Если рабочее место находится на удалённом сервере, скорее всего, им управляет команда администраторов, которые не всегда готовы делиться правами для настройки.
Для организации проще всего создавать конфигурации не для конкретного сотрудника, а для специализации сотрудников (все выездные менеджеры, все разработчики Java, все дизайнеры...). Таким образом, если вы и ваш коллега пишете на Java, ему нравится Eclipse, а вам Intellij IDEA, сначала нужно будет договариваться с администраторами про установку обеих сред разработки. А потом решать вопрос, например, про приложение по умолчанию для файлов *.java.
Чаще всего разрешение удалённого рабочего стола может быть больше, чем разрешение вашего ноутбука. Одно дело, когда вы меняете разрешение на компьютере, все приложения органически под него подстраиваются, запускают оптимизацию, сглаживание шрифтов, и т.д. Другое дело, когда клиент удалённого рабочего стола просит сервер передавать ему изображение в другом разрешении, в процессе вторично оптимизируя его. Может получиться не совсем гладкая, красивая картинка. Особенно, если есть задача сделать снимок экрана — скорее всего, будут три разных результата: видение глаза на экране, картинка через удалённую программу, картинка через локальную программу.
Данный обзор не будет претендовать на полноту и объективность, так как на рынке очень много реализаций, уследить за ними практически невозможно. Зато будет претендовать на обоснованность, т.к. автор на практике использовал каждую из них на протяжении заметного промежутка времени. И обзор будет вестись с позиции удобства в работе рядового пользователя, а не админа системы, или организации, использующей эти технологии.
Одна из первых программ для работы с удалённым рабочим столом под Windows из конца 90-х. Многие последующие реализации удалённого рабочего стола брали за основу функции Radmin. Обладает базовыми функциями: просмотр экрана (возможно, в процессе работы с ним пользователя, иногда даже без его ведома), работа с удалённым рабочим столом, передача файлов, перезапуск/выключение удалённого компьютера.
Входит в стандартную поставку Windows под названием «Подключение к удалённому рабочему столу». Аналогичный Radmin стандартный набор функций, хорошо интегрированный в ОС Windows. Хотя имеет вполне годную реализацию и под macOS.
Поддерживает двухфакторную аутентификацию через одноразовый пароль на программном или аппаратном токене. Ещё одна запоминающаяся особенность — возможность запретить передачу буфера обмена с удалённого рабочего стола на локальный.
Как и у большинства следующих приложений, у VMWare Horizon есть версия для планшетов и даже смартфонов. Но их использование для повседневной работы выглядит сомнительным. Всё-таки пока что операционные системы компьютеров ориентированы на работу с клавиатурой и мышью в большей степени, чем на прикосновение к экрану.
В экосистеме Apple позволяет удалённо подключаться к рабочему столу серверов на платформе macOS, например, на Mac Pro или Mac Mini, к которым не всегда дополнительно устанавливается монитор, клавиатура и трекпад.
Даёт возможность получить удалённый доступ не только к рабочему столу сервера, но даже к его отдельным приложениям:
Притом, каждое такое удалённое приложение живёт в отдельном окне (не обязательно полноэкранном), которое соседствует с окнами локальных приложений, что создаёт эффект более глубокого присутствия:
Кроме того, продукт содержит в себе готовый модуль для создания и поддержания VPN-туннеля (Citrix Receiver), удобно интегрированный с приложением удалённого рабочего стола:
Из приятных особенностей — перепривязка клавиш Ctrl на Cmd, когда подключаешься с клиента на macOS к серверу на Windows.
Технология работает как приложение в операционной системе, так и из браузера, поддерживающего HTML5.
Данный продукт относится к классу управления рабочим столом не удалённой, а вполне себе локальной машины, притом, виртуальной. Parallels Desktop интересен тем, что в нём впервые была попытка собрать на одном рабочем столе окна как локальных приложений, так и виртуальных. Получается, что рядом с окном Finder на macOS может располагаться окно Paint на Windows и смотреться вполне натурально.
Сфера применения этого продукта — одновременная работа приложений из разных операционных систем. Например, Microsoft Internet Explorer или Visio просто нет под macOS, но периодически может потребоваться проверить вёрстку сайта, или открыть диаграмму, без перезапуска компьютера.
Следующий класс приложений опять-таки относится не к управлению удалённым рабочим столом, а демонстрации своего рабочего стола одному или нескольким участникам чата. Этот приём хорош, если слушатели хотят видеть пример работы человека на компьютере, который может находиться за сотни километров, параллельно слыша его голос.
Slack, Cisco Jabber, Atlassian HipChat/Stride, Zoom.US.
В заключение, хочу сказать, что задач трансляции и управления удалённым рабочим столом существует множество. Конечно, нет ничего лучше подойти к компьютеру, стоящему на столе, начать за ним работать. Но часто такой возможности нет, этот компьютер находится далеко, описанные техники и подходы созданы для сглаживания этого недостатка и полноценной работы удалённых сотрудников.
А какие у вас впечатления от перечисленных программных решений?
Есть ли у вас любимые решения, не перечисленные в данной статье?
Зачем использовать технологию удалённого рабочего стола?
Хочу начать с того, что, на мой взгляд, чем меньше процент сетевых ресурсов, доступных только через удалённый рабочий стол, тем лучше. Если есть возможность напрямую соединиться с требуемым сетевыми ресурсам через браузер или другое приложение на вашем мобильном рабочем месте, нужно ей пользоваться. Согласитесь, это намного проще, чем подключаться к серверу, который, в свою очередь, будет подключаться к необходимому ресурсу.
Но всё-таки, что заставляет организации пользоваться технологиями удалённого рабочего стола?
Безопасность
Обычно принято считать, что соединение по «графическому» протоколу более контролируемо и безопасно. Например, из-за того, что перемещения и нажатия мыши по графическому интерфейсу проще записать и проанализировать (пост-фактум, или даже в реальном времени), чем слушать и разбирать «сырой» сетевой трафик.
Кроме того, обычно между мобильным рабочим местом и сервером удалённого рабочего стола ограничен или вообще закрыт файловый обмен. Поэтому, становится непросто «слить» большой объём данных, не привлекая внимания систему мониторинга и антивирус.
Злоумышленнику остаётся всего два варианта для «слива» информации через удалённый рабочий стол — фотографировать каждый экран выгрузки данных, что, согласитесь, несколько утомительно. Либо использовать буфер обмена (Ctrl+C, Ctrl+V), но он имеет ограниченный объём, и, вообще, может быть запрещён между мобильным рабочим местом и удалённым рабочим столом.
Автономность
Некоторые сотрудники в компании могут вообще не иметь физических рабочих мест со столом, стулом и компьютером. Например, если их работа связана с переездами, и происходим, в основном, на территории заказчика. Но, при всём этом, таким сотрудникам нужен доступ ко внутренним системам своей компании. С минимальным риском потерять, или компрометировать приватные данные.
Тогда на помощь приходит удалённый рабочий стол — сотрудник подключается к нему из любой точки мира со своего ноутбука, или даже с различных компьютеров заказчика в нескольких офисах.
Ресурсоёмкость
Если на ноутбуке или смартфоне вы работаете с офисными документами, почтой и видеозвонками, то мощности и батареи вам должно хватить для комфортной работы. Но, например, если вы занимаетесь большими данными, перекодированием видео или хотя бы компиляцией программ из исходного кода, на мобильном рабочем месте могут начаться проблемы. Хотя стационарный компьютер средней мощности вполне справляется с такими задачами.
Выход — запускать ресурсоёмкие задачи на стационарном рабочем компьютере, следить за их выполнением с мобильного рабочего места.
Оптимизация стоимости рабочих мест
Если в большой компании взять суммарные мощности всех рабочих мест, посмотреть за утилизацией во времени, скорее всего, даже в рабочее время они будут недозагружены (не говоря уже о вечернем или ночном времени). Чтобы ресурсы не простаивали, легче эту суммарную мощность сосредоточить в одном общем распределённом сервере, а на рабочих местах держать только лёгкие и дешёвые терминалы для доступа к нему (монитор, мышь, клавиатура, минимум CPU, RAM и HDD). Как бонус, по ночам на этом сервере можно запускать ресурсоёмкие задачи, например, нагрузочное тестирование дневных сборок, или майнинг биткоинов :)
Кросс-платформенность
Возможно, некоторые нужные вам приложения работают только код Windows, или только через Internet Explorer, а у вас MacBook. Выход — подключиться к удалённому рабочему столу с требуемой операционной системой.
Ещё хорошая идея — использовать такой класс приложений, как локальные виртуальные машины (Virtual Box, VMware, Parallels...), на которых стоит остановиться подробнее. Обычно они запускаются прямо на мобильном рабочем месте, потребляют его ресурсы, при этом предоставляют аналогичный интерфейс удалённого рабочего стола. Хотя, рабочий стол тут вполне себе локальный, при подключении к нему работают те же схемы и законы, как к удалённому.
Недостатки технологий удалённых рабочих столов
Изолированность
Чаще всего этот недостаток проявляется, когда сотрудник совмещает удалённый рабочий стол с рабочим столом своего устройства. Становится неудобно переключаться между окнами, перетаскивать объекты (drag&drop), искать открытое приложение в двух местах, работать с файлами. Идеальный вариант — использовать в работе только удалённый рабочий стол, мобильное устройство использовать лишь как терминал. Или использовать удалённый рабочий стол для решения нечастых, автономных задач, например, раз в год планировать себе календарь отпусков.
Отзывчивость интерфейса
Хотя современные сети работают весьма быстро и стабильно, не нужно недооценивать фактор проблем со связью. Например, это относится к мобильному интернету, особенно в дороге при передвижении мобильного телефона. Если наложить на это возможные «тормоза» интерфейса на самом удалённом сервере, время отклика по нажатии клавиши или перемещения мыши может быть некомфортное для работы.
Невозможность настройки «под себя»
Обычно на своём ноутбуке или смартфоне пользователь имеет права администратора (хотя бы локального), может устанавливать дополнительные программы или настраивать их «под себя». Если рабочее место находится на удалённом сервере, скорее всего, им управляет команда администраторов, которые не всегда готовы делиться правами для настройки.
Для организации проще всего создавать конфигурации не для конкретного сотрудника, а для специализации сотрудников (все выездные менеджеры, все разработчики Java, все дизайнеры...). Таким образом, если вы и ваш коллега пишете на Java, ему нравится Eclipse, а вам Intellij IDEA, сначала нужно будет договариваться с администраторами про установку обеих сред разработки. А потом решать вопрос, например, про приложение по умолчанию для файлов *.java.
Масштабирование разрешений экрана
Чаще всего разрешение удалённого рабочего стола может быть больше, чем разрешение вашего ноутбука. Одно дело, когда вы меняете разрешение на компьютере, все приложения органически под него подстраиваются, запускают оптимизацию, сглаживание шрифтов, и т.д. Другое дело, когда клиент удалённого рабочего стола просит сервер передавать ему изображение в другом разрешении, в процессе вторично оптимизируя его. Может получиться не совсем гладкая, красивая картинка. Особенно, если есть задача сделать снимок экрана — скорее всего, будут три разных результата: видение глаза на экране, картинка через удалённую программу, картинка через локальную программу.
Обзор технологий удалённого рабочего стола
Данный обзор не будет претендовать на полноту и объективность, так как на рынке очень много реализаций, уследить за ними практически невозможно. Зато будет претендовать на обоснованность, т.к. автор на практике использовал каждую из них на протяжении заметного промежутка времени. И обзор будет вестись с позиции удобства в работе рядового пользователя, а не админа системы, или организации, использующей эти технологии.
Radmin
Одна из первых программ для работы с удалённым рабочим столом под Windows из конца 90-х. Многие последующие реализации удалённого рабочего стола брали за основу функции Radmin. Обладает базовыми функциями: просмотр экрана (возможно, в процессе работы с ним пользователя, иногда даже без его ведома), работа с удалённым рабочим столом, передача файлов, перезапуск/выключение удалённого компьютера.
Microsoft Remote Desktop
Входит в стандартную поставку Windows под названием «Подключение к удалённому рабочему столу». Аналогичный Radmin стандартный набор функций, хорошо интегрированный в ОС Windows. Хотя имеет вполне годную реализацию и под macOS.
VMware Horizon
Поддерживает двухфакторную аутентификацию через одноразовый пароль на программном или аппаратном токене. Ещё одна запоминающаяся особенность — возможность запретить передачу буфера обмена с удалённого рабочего стола на локальный.
Как и у большинства следующих приложений, у VMWare Horizon есть версия для планшетов и даже смартфонов. Но их использование для повседневной работы выглядит сомнительным. Всё-таки пока что операционные системы компьютеров ориентированы на работу с клавиатурой и мышью в большей степени, чем на прикосновение к экрану.
Apple Screen Sharing
В экосистеме Apple позволяет удалённо подключаться к рабочему столу серверов на платформе macOS, например, на Mac Pro или Mac Mini, к которым не всегда дополнительно устанавливается монитор, клавиатура и трекпад.
Citrix XenDesktop (+StoreFront)
Даёт возможность получить удалённый доступ не только к рабочему столу сервера, но даже к его отдельным приложениям:
Притом, каждое такое удалённое приложение живёт в отдельном окне (не обязательно полноэкранном), которое соседствует с окнами локальных приложений, что создаёт эффект более глубокого присутствия:
Кроме того, продукт содержит в себе готовый модуль для создания и поддержания VPN-туннеля (Citrix Receiver), удобно интегрированный с приложением удалённого рабочего стола:
Из приятных особенностей — перепривязка клавиш Ctrl на Cmd, когда подключаешься с клиента на macOS к серверу на Windows.
Технология работает как приложение в операционной системе, так и из браузера, поддерживающего HTML5.
Parallels Desktop
Данный продукт относится к классу управления рабочим столом не удалённой, а вполне себе локальной машины, притом, виртуальной. Parallels Desktop интересен тем, что в нём впервые была попытка собрать на одном рабочем столе окна как локальных приложений, так и виртуальных. Получается, что рядом с окном Finder на macOS может располагаться окно Paint на Windows и смотреться вполне натурально.
Сфера применения этого продукта — одновременная работа приложений из разных операционных систем. Например, Microsoft Internet Explorer или Visio просто нет под macOS, но периодически может потребоваться проверить вёрстку сайта, или открыть диаграмму, без перезапуска компьютера.
Чаты
Следующий класс приложений опять-таки относится не к управлению удалённым рабочим столом, а демонстрации своего рабочего стола одному или нескольким участникам чата. Этот приём хорош, если слушатели хотят видеть пример работы человека на компьютере, который может находиться за сотни километров, параллельно слыша его голос.
Slack, Cisco Jabber, Atlassian HipChat/Stride, Zoom.US.
Итог
В заключение, хочу сказать, что задач трансляции и управления удалённым рабочим столом существует множество. Конечно, нет ничего лучше подойти к компьютеру, стоящему на столе, начать за ним работать. Но часто такой возможности нет, этот компьютер находится далеко, описанные техники и подходы созданы для сглаживания этого недостатка и полноценной работы удалённых сотрудников.
А какие у вас впечатления от перечисленных программных решений?
Есть ли у вас любимые решения, не перечисленные в данной статье?