Добавить в корзинуПозвонить
Найти в Дзене

От физических серверов до Docker. Часть 2 - виртуальные машины

В первой части статьи мы разобрались, с какими проблемами сталкивались команды разработки серверных приложений до появления средств виртуализации и контейнеризации. Во второй части мы рассмотрим, как виртуальные машины решают некоторые из неприятных проблем, связанных с разработкой на физических серверах. В качестве бонуса мы увидим, какие новые проблемы появились у команд разработки с появлением в их жизни средств виртуализации. Коробка с коробками Для начала проведем мысленный эксперимент. Представьте большую картонную коробку (как от пылесоса) и поместите в нее несколько коробочек поменьше (от мобильных телефонов). Смогли представить такую картинку? Поздравляю! Вы практически поняли, как работают виртуальные машины. Коробка от пылесоса в данном случае - это обычный физический сервер (также его называют хост). А маленькие коробочки внутри - виртуальные машины. Если не вдаваться в технические дебри, то виртуальная машина "считает" себя вполне реальной машиной: Самое замечательное, ч
Оглавление

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

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

В качестве бонуса мы увидим, какие новые проблемы появились у команд разработки с появлением в их жизни средств виртуализации.

Коробка с коробками

Для начала проведем мысленный эксперимент. Представьте большую картонную коробку (как от пылесоса) и поместите в нее несколько коробочек поменьше (от мобильных телефонов).

Смогли представить такую картинку? Поздравляю! Вы практически поняли, как работают виртуальные машины. Коробка от пылесоса в данном случае - это обычный физический сервер (также его называют хост). А маленькие коробочки внутри - виртуальные машины.

Если не вдаваться в технические дебри, то виртуальная машина "считает" себя вполне реальной машиной:

  • У нее есть своя собственная операционная система. Эта операционная система может отличаться от той, что стоит на хосте (например, на хосте установлен Linux, а на виртуальной машине - Windows);
  • У нее свой собственный IP-адрес, не такой, как у хоста;
  • У нее свои собственные процессор, память и жесткий диск - она, сама того не зная, арендует их у хоста.

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

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

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

За реализацию функционала виртуальных машин, а также за управление ими отвечает специальная система на хосте - Гипервизор.

Ложка дегтя

Помимо преимуществ, виртуальные машины имеют также ряд недостатков:

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

Сравнение с физическими серверами

Использование ресурсов в мире виртуальных машин выглядит так:

-2

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

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

Часть 1 - физические сервера

Часть 2 - виртуальные машины