Виртуальная инфраструктура: историческая ретроспектива
Сегодня мы предлагаем вернуться к истокам идеи распределения вычислительных ресурсов и рассмотреть ряд других бизнес-моделей, от которых берут свое начало IaaS- и PaaS-технологии.
1960-е: виртуальный таймшер
Запрос на виртуализацию возник из-за проблемы ограниченных ресурсов. В начале 60-х начали появляться первые массовые мейнфреймы, но они оставались роскошью для многих организаций.
Дорогим выходило не только владение инфраструктурой, но и ее «физическая» аренда. Месячная плата за пользование «бюджетным» мейнфреймом IBM 1401 в минимальной конфигурации в те времена составляла порядка 2500 долларов в месяц (почти полтора миллиона современных рублей), а на аренду флагманского S/360 следовало закладывать суммы в десятки раз больше.
Что полвека назад, что сейчас оптимальным решением для разработки виделась модель аренды и совместного использования ресурсов. MIT и IBM впервые интегрировали time-sharing в ОС в 60-х.
Эта технология позволила разделить вычислительные ресурсы между десятками пользователей и организовать «виртуальную» очередь из терминалов, дистанционно подключавшихся по телефонным линиям к вычислительным мощностям.
Однако, и у этого подхода был изъян. Пользователи претендовали на одни и те же ресурсы. Своими задачами они нагружали одно и то же оборудование. В результате сбоя чьей-то программы страдали все, кто подключался к одному «железу».
Решение было предложено в рамках проекта IBM CP/CMS. С помощью него физический сервер стало возможным разделить на несколько виртуальных. Вот так к концу 60-х появились сразу два столпа современного облака — удаленный доступ и виртуализация.
1980-2000-е: виртуализация в массы
Чтобы объяснить, как виртуализация повлияла на индустрию, сравним, как IaaS-провайдеры работают сейчас и как совместное использование вычислительных ресурсов работало на заре 80-х.
Как сейчас:
- Можно выбирать сервер под собственные нужды
- Пользователь арендует не конкретную машину в ЦОДе, а только те ресурсы, которые нужны для решения его задач.
- Мощности «железа» можно нарастить по мере необходимости.
Как тогда:
- Применялся так называемый «совместный» хостинг — у всех пользователей одного сервера были в распоряжении одни и те же ресурсы.
- Для нестандартных задач и запросов требовалась модификация всей машины, то есть от этого зависели все пользователи сразу.
- Чтобы повысить производительность для каждого пользователя, зачастую прибегали к методу комплексной модернизации.
Виртуализация стала тем самым шагом вперед. Пропасть между технологией и массовым пользователем отчасти заполнили первые коммерческие виртуальные машины в конце 80-х. Они все еще были несовершенны и существенные улучшения появились только в 1999-м году, когда вышел продукт под названием VMware Workstation.
ПО VMware 1.0 позволяло запускать несколько ОС на одной x86. Поддерживались виртуальные машины с объемом памяти до 2 ГБ.
2000-е: новые гипервизоры и волна свободного ПО
В 2000 году разработчики ОС FreeBSD семейства UNIX представили инструмент виртуализации под названием jails. С ним виртуальные среды получили функциональную независимость. Разные FreeBSD работали на одном «железе» и фактически «не видели» друг друга. Это был своеобразный прорыв, но уже через год Linux-сообщество дает ответ в виде Vserver, похожего по принципу работы на jails.
Совсем скоро стало известно, что VMware запускает систему полноценной серверной виртуализации для предприятий — VMware ESX Server — своевременное решение для рынка того времени.
Независимые разработчики не отставали. Например, в 2003 году сотрудники Кембриджского университета выпустили в открытый доступ гипервизор под названием Xen (его поддерживает Intel), а еще через несколько лет вышел гипервизор для платформ Linux KVM. Эти проекты — пример свободного ПО, ставшего двигателем развития виртуальной инфраструктуры. Без концепции проектов с открытым исходным кодом облако было бы совсем другим и развивалось бы иначе.
Сегодня мы обсудили лишь небольшую часть основных событий из периода становления облака. Впереди эту сферу ждала автоматизация и рождение DevOps. Расскажем об этом в следующей статье.