«Откуда ты, облако?»: концептуальная ретроспектива — от мейнфреймов до контейнеров

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

<i> Фото: Billie Grace Ward (<a href="https://api.vc.ru/v2.8/redirect?to=https%3A%2F%2Fflic.kr%2Fp%2FWUtLCH&postId=48036" rel="nofollow noopener" target="_blank">Flickr</a>, <a href="https://api.vc.ru/v2.8/redirect?to=https%3A%2F%2Fcreativecommons.org%2Flicenses%2Fby%2F2.0%2F&postId=48036" rel="nofollow noopener" target="_blank">CC BY</a>)</i>
Фото: Billie Grace Ward (Flickr, CC BY)

Тяжело представить современный интернет, с его объемами и нагрузками, без сопутствующей инфраструктуры. Но ещё десять лет назад привычная нам «облачная» парадигма была в новинку. И это при том, что многие концепции, лежащие в основе IaaS/PaaS/SaaS-технологий, существуют уже полвека.

1960-1970-е: компьютер на час

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

В начале 60-х аренда «бюджетного» мейнфрейма IBM 1401 минимальной конфигурации стоила порядка 2500 долларов в месяц. Это — почти полтора миллиона современных рублей. Требовательные бизнесы тратили в 40-50 раз больше на аренду флагманского S/360. Количество организаций, которые могли позволить себе аренду такой машины, было очень ограничено.

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

Время — деньги

Операционные системы с функцией time-sharing, разработанные в MIT и IBM в начале 60-х, позволили разделить вычислительные ресурсы между десятками пользователей. Такой подход гарантировал практически непрерывную нагрузку на процессор, доступ к которому предоставлялся в порядке очереди. Терминалы, преимущественно расположенные в лабораториях престижных американских университетов, общались с «матерью» по телефонной линии на ошеломительной скорости — 110 бит в секунду. Влияние этой технологии сложно переоценить.

Представленная IBM в 1964 году OS/360 считается первой современной операционной системой. Разработанная в MIT многопользовательская time-sharing система Multics стала в некоторой степени прародителем UNIX. «Терминалы» безусловно изменились, но само наименование все еще в ходу.

Нереальное железо

Time-sharing парадигма не была идеальной. Пользователи все равно боролись за одни и те же ресурсы, по очереди работали на одном и том же железе. Если чья-то программа «зависала», компьютер приходилось перезагружать, впустую тратя время и деньги сотен пользователей.

Зародившийся в 1968 году проект IBM CP/CMS решил эту проблему неочевидным образом. Разработчики смогли разбить один физический компьютер на несколько виртуальных, положив начало тому, что мы называем «виртуализация».

1980-00-е: лаборатории, коммуналки и темницы

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

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

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

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

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

В 2000 году разработчики ОС семейства UNIX — FreeBSD — анонсировали механизм виртуализации под названием jails (букв. — «тюрьмы» или «клетки»). Он позволял запустить несколько «виртуальных» и функционально независимых FreeBSD, не способных друг друга «видеть».

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

<i>Фото: Farhan Perdana (<a href="https://api.vc.ru/v2.8/redirect?to=https%3A%2F%2Fflic.kr%2Fp%2FdgL9Mi&postId=48036" rel="nofollow noopener" target="_blank">Flickr</a>, <a href="https://api.vc.ru/v2.8/redirect?to=https%3A%2F%2Fcreativecommons.org%2Flicenses%2Fby%2F2.0%2F&postId=48036" rel="nofollow noopener" target="_blank">CC BY</a>) </i>
Фото: Farhan Perdana (Flickr, CC BY)

Вдохновившись успехом «темниц», Linux-сообщество начало работать над ответом, и в 2001 году выпустило схожий по принципу работы VServer.

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

Новая волна свободного ПО

История успеха облака — это отчасти и история развития открытого ПО. Например, через два года после появления VMware Server, группа исследователей из Кембриджского университета выпустила в открытый доступ гипервизор под названием Xen. Этот проект поддерживается Intel и является довольно популярным. В 2007 году вышел KVM (Kernel-based Virtual Machine), гипервизор для платформ Linux. Оба этих проекта поддерживаются облачными платформами вроде OpenStack и CloudStack, код которых также находится в открытом доступе. Без этих серверных технологий облачная инфраструктура была бы просто невозможной.

Облачные технологии прошли большой путь от мейнфреймов и терминалов до виртуализации в ее современном понимании и свободного ПО. Тем не менее, большая часть тех концепций, которые лежат в основе современного облака, была задумана и впервые воплощена на заре компьютерной эры — когда, казалось бы, об IaaS, SaaS и PaaS и речи быть не могло. Но первые 50 лет истории облака — это лишь часть тех событий, которые сложились в известную нам сегодня картину. В продолжении мы поговорим про то, как повлияли на современные облака автоматизация и рождение DevOps.

Другие наши заметки в блоге Mail.Ru Cloud Solutions:

И статьи на vc:

88
3 комментария

Обзор неплохой, но до истории современных контейнеров так и не добрались. LC, Docker не указаны.

Особенности технологий не стали расписывать..

2

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

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

2