Виртуализация
Виртуализация - выделение ресурсов в изолированную среду. При этом приложениям и ОС в виртуальных средах кажется, что располагают целым компьютером, т.к. ты share-ишь реальные ресурсы в их среду.
История развития виртуализации
Раньше любое приложение, БД требовали свой выделенный физический сервер (дедик), а это дорого, естественно.
После появления виртуальных машин (ВМ) стало возможным на одном дедике запускать несколько ОС. Облачные провайдеры - компании, специализирующиеся на построении дата-центров/ЦОД (Центр Обработки Данных) - теперь могли, кроме дедиков, предоставлять VDS (Virtual Dedicated Server).
Позже стали возникать ситуации, когда даже минимального VDS стало много для решения определенных задач. Например, для обычного веб-сайта нужен только веб-сервер (nginx, apache), а не полноценный linux. Так стали переходить с виртуализации ОС на виртуализацию приложений.
Просто берешь у исходной хост-ОС все нужные библиотеки, процессы и дублируешь их в изолированное пространство - контейнер. На основе этих технологий и начали появляться DevOps, GitOps, DevSecOps, NetOps и т.д.
Позже появились “бессерверные вычисления” - технология, которая позволяет платить только за использование какой-то функции на сервере, не оплачивая простой этой функции/сервера. Раньше, если нужно было на сервере только раз в месяц запускать какой-то процесс (например, backup), нужно было платить за весь месяц (за работу и простой).
Именно переход почти всех приложений на микросервисную архитектуру помог облачным провайдерам так пуллапнуться; и поэтому сейчас есть такие giants, как Microsoft Azure, Amazon AWS и т.д.
Типы аппаратной виртуализации
Гипервизор - программа или аппаратная схема, обеспечивающая или позволяющая одновременное, параллельное выполнение нескольких гостевых ОС на одном и том же хост-ОС. Его задачи: эмуляция аппаратных ресурсов для гостевого ОС, изоляция виртуальной среды, распределение ресурсов (между гостевыми ОС).
2-й тип аппаратной виртуализации используют такие гипервизоры как VirtualBox, VMWare Workstation, VMWare Fusion, QEMU и т.д. Такие программы работают поверх хост-ОС - без этой прослойки между собой и железом не могут работать. Но вообще гипервизорами обычно называют те, которые использует 1-й тип аппаратной виртуализации (которые используют на серверах). На 2-м типе не строят серьезные сервисы - там плотность ВМ небольшая, т.к. сама хост-ОС тоже кушает ресуры.
То есть 2-й тип используется для desktop/PC, а 1-й - на серверах виртуализации. Поэтому со 2-м типом всё понятно - подробнее буду говорить о 1-м типе.
Гипервизоры 1-го типа (автономные/аппаратные)
Этот тип виртуализации не требует исходного ОС (хост-ОС) для для работы.
Используются для серьезных нагрузок, большого кол-ва ВМ, работы 24/7 365 дней в году. Обычно основан на linux и не имеет GUI, чтобы экономить ресурсы сервера. Вообще, у всех гипервизоров есть интерфейсы для работы с ними: desktop app, web-UI, CLI, API.
Основные автономные гипервизоры: VMWare ESXi, Microsoft Hyper-V, Xen, VSphere, KVM и основанные на нем oVirt и Proxmox.
VMWare, кстати, виртуализации как CISCO в сетях.
Плюсы:
- высокая плотность ВМ
- возможность миграции ВМ между серверами
Минусы:
- требуются высокая квалификация инженеров
Есть vfs - виртуальная файловая система. Этот интерфейс позволяет разработчикам не писать под каждую fs свою программу. vfs предоставляет единый интерфейс для работы с любыми fs.
Соус: Курс: Основы виртуализации. NetSkills. YouTube
Контейнеризация. Виртуализация на уровне ОС
О серверах