Использование виртуальных машин
Использование виртуальных машин
Примерно с 2009 года мы активно используем виртуальные машины. Сначала это было затруднительно из-за недостаточных ресурсов ЭВМ того времени, но сейчас такой проблемы нет. Потом все заговорили о независимости от аппаратной платформы и применении виртуальных машин для повышения эффективности администрирования.
У нас направлений использования несколько:
– создание виртуальной среды разработки;
– сборка на виртуальной целевой платформе;
– автономная отладка на виртуальной целевой платформе;
– виртуальная модель запущенной системы.
Виртуальная среда разработки
У ряда разработчиков в нашем отделе существует потребность в работе на нескольких компьютерах. Основной компьютер находится на рабочем месте, ноутбук используется для отладки в командировке, компьютер заказчика используется, если не хватает ресурсов ноутбука.
Каждый раз устанавливать необходимые средства разработки, отладки, копировать документацию неэффективно.
В таких случаях мы используем виртуальную среду разработки.
На виртуальную машину устанавливается IDE с необходимыми дополнениями и настроенной справкой, устанавливаются средства отладки, копируется репозиторий операционной системы (не везде есть доступ к Интернету).
Разработчик использует эту виртуальную машину на своем основном рабочем месте, ноутбуке и компьютере заказчика. Синхронизация кода происходит через Git.
Сборка на виртуальной целевой платформе
Представим себе проект в котором разработка ведется под операционной системой семейства Linux, а работать программа должна под другой операционной системой, например, QNX.
Конечно есть средства кросс-компиляции. Но устанавливать их на каждый компьютер разработчика избыточно и они зачастую требуют сложной настройки.
Мы используем сервер, на котором расположены несколько целевых операционных систем (под которые у нас идет разработка).
Разработчик, используя Git, копирует туда актуальную версию своего исходного кода, выполняет сборку и сохраняет результат обратно в Git.
Понятно, что в больших проектах правильнее использовать средства continuous integration. Однако у нас есть несколько небольших проектов под разные целевые операционные системы, на разных языках программирования. Так что наш выбор пока кажется нам оптимальным.
Автономная отладка на виртуальной целевой платформе
Для отладки программ важно приблизить условия к условиям целевой платформы. У разработчика зачастую установлены дополнительные компоненты, библиотеки, входящие в состав средств разработки. Всего этого не будет при запуске программы — не должно быть и при отладке.
Для этого мы создаем виртуальную целевую платформу. Она функционирует под управлением «правильной» операционной системы. Если это предполагается проектом, на нее устанавливается СУБД и web-сервер, необходимые модули и библиотеки.
У программиста появляется возможность раньше начать проверку своей программы на целевой платформе. Технический писатель может делать руководство пользователя, видя, как программное обеспечение будет выглядеть на целевой платформе. Появляется возможность подготовить руководство системного программиста по установке и настройке необходимых компонентов.
Виртуальная модель запущенной системы
В ходе работы программисты совместно используют виртуальную целевую платформу для автономной отладки – но это еще не все.
Чтобы быстрее приступить к отладке в комплексе, на начальном этапе мы используем виртуальную целевую платформу и при работе с реальными техническими средствами. Одновременно начинается настройка реального сервера.
После того как программа установлена у заказчика, мы используем виртуальный сервер для более детального понимания вопросов заказчика и моделирования возникающих ситуаций. Как правило, заказчики разрешают нам использовать часть их реальных данных, что еще более приближает нашу модель к реальности.
Появившись не так давно, технология виртуализации прочно вошла в нашу практику разработки и вряд ли ее покинет.