Нужна ли разработчику виртуальная машина, и насколькоИсточник: habrahabr davlaterra
Цели и задачиДля того, чтобы не сильно зависеть от железа, от апгрейдов, от всяких драйверов и иже с ними, хотелось бы перевести рабочую среду разработки, да и работы в целом, в виртуальномашинное русло. Поднадоело тратить время и нервы на беконечные установки ОС и стандартного ПО, на резервирование и восстановление рабочей среды, на зависимость от плохого (быстро дряхлеющего/неохотно обновляемого) железа. В общем то я и не прочь когда надо установить что-нибудь заново, при этом освежая свои знания о некоторых довольно редко устанавливаемых продуктах. Но как то не очень хочется растрачивать такие ценные ресурсы, как Время и Спокойствие. Со Временем у меня особые отношения - непримиримые. Сказывается все это и на сроках выполнения некоторых производственных задач, которые в случае авралов и пожаров приходится делать и в дороге, и на коленке, и дома. Да и где угодно. При этом не желая тратить времени на создание и настройку среды для работы, или тратить его по минимуму.
Техническое заданиеСоздать и опробовать виртуальную машину (ВМ) на двух инструментах. Проверить работоспособность установленных в ВМ средств. Учитывать размеры образа ВМ, занимаемые ресурсы на хостовой ОС, портативность, легкость установки и начала использования на любом железе с нуля.
Если говорить попроще, то разработчик должен забыть, что он работает на виртуальной машине, и полностью погрузиться в процесс разработки в минимальные сроки.
РеализацияБыло решено отлучить ВМ с установленной на нее рабочей средой от самих исходников и ресурсов рабочих проектов и личных данных. Последние были размещены на специальном зашифрованном томе с использованием ПО TrueCrypt 7.1. Это чтобы не приходилось всё время обновлять рабочую среду. Установил, настроил под себя, и используй на здоровье. Изредка, может раз в 2-3 месяца, сбрасывай более-менее актуальный образ ВМ на свой мобильный носитель (обычно флешку). И все.
Исходники и персональные данныеДанный том для исходников и персональных данных шифруется алгоритмом AES, благо на современных процессорах его обработка производится на аппаратном уровне, и TrueCrypt не преминет воспользоваться этим обстоятельством. То есть шифрование на лету практически не отражается на считывании и записи данных на/с носителя. И скорость не страдает, и вы спокойны за сохранность и конфиденциальность ваших личных драгоценных байтов. Данный том с исходниками и персональными данными копируется на флешку. с которой он при уходе домой монтируется, и обновленные данные синхронизируются с основным рабочим томом на компьютере. Таким образом у вас в кармане всегда находится актуальная версия ваших данных и исходников, которыми вы заведуете в проектах. Размер тома выбран равным 14 ГБ, чтобы спокойно помещался на носитель размером 16 ГБ, и еще оставалось немного места для переноса всяких прочих файлов. Флешки такого размера в большом количестве продаются во многих магазинах, легки для использования и ношения с собой, а также вполне доступны по цене.
Рабочая среда на виртуальной машинеДля экспериментов я решил воспользоваться функционалом ПО "VirtualBox 4.2.6" от Oracle и "VMware Workstation 9.0.1" от VMware. Каждое из них уже давно разрабатывается, довольно устойчиво и имеет неплохую карму. Вдаваться в ньюансы, кто же из них "монстр", а кто "новичок", я не буду. Они оба прекрасно подходят для целей данного проекта. Методом проб и ошибок форматом файлодиска для ВМ был выбран *.vmdk. Оба претендента поддерживают этот формат. Размер выбирался между мобильностью (носить ли с собой в кармане) и достаточным объемом (нужно установить ВСЁ, что необходимо). Объем не должен быть отдан в жертву мобильности, но и не должен заставлять ждать часы на копировании (пусть и редком). Таким образом мы придерживаемся основной цели по эффективному использованию времени. Гостевой была выбрана Windows XP, как самая подходящая для моих целей, наиболее распространенная и наиболее наработанная мною ОС. Также она была выбрана из целей совместимости с со своими наработками и продуктами третьих сторон, используемых при работе со всякими внешними устройствами и многими более мелкими причинами. Для эксперимента использовалась машина в офисе с "почти" стандартными на сегодня основными параметрами программистского компа:
Первым вариантом был проверен VirtualBoxОгромный плюс, что бесплатен и хорошо развивается. Хрюша очень резво установилась, все драйвера встали по умолчанию. Были выставлены общие папки для доступа из гостевой ОС. Каждая общая папка может быть подключена, как отдельный сетевой диск. В принципе неплохо, но я бы сказал, что если подключается много папок, то панель дисков становится очень громоздкой и неудобной. Вдобавок количество буковок для дисков не бесконечно. Все необходимые инструменты установились без проблем. Вроде бы всё хорошо. Но! Других явных минусов этого варианта не нашел.
Вторым вариантом был проверен VMware WorkstationЕго я знаю очень давно, в смысле пользовался им немного, но узнал и поэкспериментировал впервые много лет назад. Он платен, но в рамках моего эксперимента это не важно. Также хорош. Построение ВМ, конечно же начал с нуля, НЕ используя уже готовый носитель. Эксперимент - дело святое, как сказал кто-то, совсем не без резона. Всё прекрасно установилось, только я не мог понять почему на гостевой ОС нет звука. То есть нет звуковой карты как аппаратной части. Мне потом один знающий этот продукт человек подсказал, что звучку надо добавлять ручками в свойствах ВМ. Что же, вполне себе правильно, я считаю. По умолчанию в ВМ звук не очень то и востребован. Плюсик. Перекомпиляция того же проекта MS VS 2008 заняла 42 секунды. Быстрее предыдущего варианта на 3 секунды. Неплохо. А наболевший в первом случае вопрос здесь просто никак не проявился. Я имею ввиду Skype. Прекрасно себя чувствует и работает на ура.
Вкушаем плодыПапка с файлами ВМ была скопирована на переносной винт для хранения на нем, а также для копирования сего чуда на домашний компьютер для испробования плодов первоначальной идеи переносимости, непотопляемости, и быстрой восстановимости рабочей среды. А как же. Скопировать на носитель получилось примерно за 20-22 минуты. Опишу домашний комп для наглядности, вполне средненький. Немного слабее рабочего, но с немного разогнанным процессором вполне себе конкурирует с ним:
Давно хотел установить и опробовать на домашнем компьютере ОС Windows 8. Конечно же чисто в целях апробации и последующего удаления. Сказано - сделано. Запустил, расширил окно ВМ на весь экран и, вуаля! Я опять в своей рабочей среде. Только в добавку разрешение экрана автоматически самоурегулировалось. На домашней машинке перекомпиляция моего рабочего проекта на Вижуал Студии тем же способом заняла на две секунды больше. Теперь апгрейдим железо, переходим на другую машину, да и что угодно. Без проблем. Я очень рад. Кстати. Мой братишка частично апгрейдил себе комп в это время, а ему нужна система помощнее, для рендеринга:
Установив и запустив на его машинке свою ВМ, я увидел скорость перекомпиляции моего C++- проекта в 22 секунды. Ну да ладно, ведь нет предела совершенству. Как утверждают. |