Что такое виртуальная машина? (Почему и когда его использовать)

Если вы работаете в индустрии программного обеспечения или рядом с ней, вы, вероятно, слышали о виртуальных машинах. Если нет, вам может быть интересно, что они собой представляют и для чего используются.

Как инженер-программист, я ежедневно использую виртуальные машины. Это мощные инструменты для разработки программного обеспечения, но у них есть и другие применения. Также известные как виртуальные машины, многие предприятия используют их из-за их гибкости, надежности и экономичности; они также предотвращают катастрофы из-за неконтролируемого тестирования программного обеспечения.

Давайте посмотрим, что такое виртуальные машины и для чего они используются.

Что такое виртуальная машина?

Виртуальная машина — это экземпляр операционной системы (ОС), такой как Windows, Mac OS или Linux, работающей в основной ОС компьютера.

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

Виртуальная машина 1
Изображение 1: Виртуальная машина, работающая на ноутбуке.

Виртуальная машина не имеет оборудования (памяти, жесткого диска, клавиатуры или монитора). Он использует смоделированное оборудование с хост-компьютера. Из-за этого несколько виртуальных машин, также называемых «гостями», могут работать на одном хост-компьютере.

Виртуальная машина 2
Изображение 2. Хост-компьютер с несколькими виртуальными машинами.

Хост также может запускать несколько виртуальных машин с разными операционными системами, включая Linux, Mac OS и Windows. Эта возможность зависит от программного обеспечения, называемого гипервизором (см. изображение 1 выше). Гипервизор работает на хост-компьютере и позволяет создавать, настраивать, запускать виртуальные машины и управлять ими.

Гипервизор выделяет дисковое пространство, планирует время обработки и управляет использованием памяти для каждой виртуальной машины. Это то, что такие приложения, как Oracle VirtualBox, VMware, Parallels, Xen, Microsoft Hyper-V и многие другие: они являются гипервизорами.

Гипервизор может работать на ноутбуке, ПК или сервере. Он делает виртуальные машины доступными для локального компьютера или пользователей, распределенных по сети.

Для разных типов виртуальных машин и сред требуются разные типы гипервизоров. Давайте посмотрим на некоторые из них.

Типы виртуальных машин

Системные виртуальные машины

Системные виртуальные машины, иногда называемые полной виртуализацией, управляются гипервизором и обеспечивают функциональность реальной компьютерной системы. Они используют собственную операционную систему хоста для управления и совместного использования системных ресурсов.

Системным виртуальным машинам часто требуется мощный хост с быстрыми или несколькими процессорами, большим объемом памяти и большим объемом дискового пространства. Некоторым из них, работающим на персональных или портативных компьютерах, может не требоваться вычислительная мощность, необходимая виртуальным серверам крупных предприятий; однако они будут работать медленно, если хост-система неадекватна.

Обработка виртуальных машин

Виртуальные машины процессов сильно отличаются от SVM — они могут быть запущены на вашем компьютере и даже не знать об этом. Они также известны как виртуальные машины приложений или управляемые среды выполнения (MRE). Эти виртуальные машины работают внутри основной операционной системы и поддерживают приложения или системные процессы.

Зачем использовать ПВМ? Они выполняют услуги, не завися от конкретных операционных систем или оборудования. У них есть собственная маленькая ОС с только теми ресурсами, которые им нужны. MRE находится в отдельной среде; не имеет значения, работает ли он на Windows, Mac OS, Linux или любом другом хост-компьютере.

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

Типы гипервизоров

Большинство рассматриваемых нами виртуальных машин используют гипервизор, потому что они эмулируют всю компьютерную систему. Существует два разных типа гипервизоров: гипервизоры Bare Metal и размещенные гипервизоры. Давайте быстро взглянем на них обоих.

Голый металлический гипервизор

BMH также можно назвать собственными гипервизорами, и они работают непосредственно на оборудовании хоста, а не в операционной системе хоста. По сути, они заменяют операционную систему хоста, планируя и управляя использованием оборудования каждой виртуальной машиной, тем самым исключая из процесса «посредника» (операционную систему хоста).

Собственные гипервизоры обычно используются для крупномасштабных корпоративных виртуальных машин, которые компании используют для предоставления сотрудникам серверных ресурсов. Microsoft Azure или Amazon Web Services — это виртуальные машины, размещенные в архитектуре этого типа. Другими примерами являются KVM, Microsoft Hyper-V и VMware vSphere.

Размещенный гипервизор

Хостинговые гипервизоры работают в стандартных операционных системах — точно так же, как и любое другое приложение, которое мы запускаем на наших машинах. Они используют ОС хоста для управления и распределения ресурсов. Этот тип гипервизора лучше подходит для отдельных пользователей, которым необходимо запускать на своих машинах несколько операционных систем.

К ним относятся такие приложения, как Oracle VirtualBox, VMware Workstations, VMware Fusion, Parallels Desktop и многие другие. Более подробную информацию о размещенных гипервизорах вы можете найти в нашей статье, Лучшее программное обеспечение для виртуальных машин.

Зачем использовать виртуальные машины?

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

1. Экономически эффективным

Виртуальные машины экономически выгодны во многих ситуациях. Один из самых известных находится в корпоративном мире. Использование физических серверов для предоставления ресурсов сотрудникам может быть очень дорогим. Аппаратное обеспечение недешевое, а его обслуживание обходится еще дороже.

Использование виртуальных машин в качестве корпоративных серверов стало нормой. Виртуальные машины от такого поставщика, как MS Azure, не требуют первоначальной покупки оборудования и платы за обслуживание. Эти виртуальные машины можно установить, настроить и использовать всего за копейки в час. Они также могут быть отключены, когда они не используются, и не несут никаких затрат.

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

2. Масштабируемость и гибкость

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

3. Быстрая настройка

Новую виртуальную машину можно настроить быстро. У меня были случаи, когда мне нужно было настроить новую виртуальную машину, я звонил своему коллеге, который ими управляет, и они были готовы к использованию менее чем за час.

4. Аварийное восстановление

Если вы пытаетесь предотвратить потерю данных и подготовиться к аварийному восстановлению, виртуальные машины могут стать отличным инструментом. Их легко создавать резервные копии, и при необходимости они могут быть распределены в разных местах. Если третья сторона, такая как Microsoft или Amazon, размещает виртуальные машины, они будут удалены, что означает, что ваши данные в безопасности, если ваш офис сгорит.

5. Легко воспроизвести

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

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

6. Идеально подходит для разработки/тестирования

Одним из лучших преимуществ использования виртуальных машин является то, что они являются идеальным инструментом для разработки и тестирования программного обеспечения. Виртуальные машины позволяют разработчикам вести разработку на нескольких платформах и в разных средах на одном компьютере. Если эта виртуальная машина повреждена или уничтожена, можно быстро создать новую.

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

Виртуальные машины прекрасно подходят для тестирования продуктов и обзоров, подобных тем, которые мы делаем здесь, на TechFewer.com. Я могу устанавливать приложения на виртуальную машину, работающую на моем компьютере, и тестировать их, не загромождая основную среду.

Когда я закончу тестирование, я всегда могу удалить виртуальную машину, а затем создать новую, когда она мне понадобится. Этот процесс также позволяет мне тестировать на нескольких платформах, даже если у меня есть только машина с Windows.

Выводы

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