Подробная история развития облачных технологий

go_rbg9esc4d-7wl3zm9dkdebxq.png
Многие родившиеся в XXI веке люди считают, что облачные технологии появились при их поколении. На самом деле, история «облаков» насчитывает уже как минимум шесть десятилетий, причем в ней случались как периоды застоя, так и этапы бурного развития. Основу для них заложили, как это происходило с целым рядом других технологических инноваций, военные. И все-таки, при каких обстоятельствах зародились облачные технологии и как они развивались? Об этом — в нашей сегодняшней статье.
Ровно шестьдесят лет назад, в 1963 году, Управление перспективных исследовательских проектов (DARPA), действующее, как известно, в интересах Министерства обороны США, выделило Массачусетскому технологическому институту грант в размере двух миллионов долларов на очень интересную разработку. Она получила наименование Project on Mathematics and Computation, сокращенно — Project MAC, хотя к «макам» (в современном понимании), разумеется, никакого отношения не имела. Целью исследователей, группу которых возглавили ученые-кибернетики Роберт М. Фано и Фернандо Хосе Корбато, стала разработка принципиально новой системы разделения времени, предназначенной для организации совместного доступа к ресурсам электронно-вычислительных машин нескольким удаленным пользователям. Причина интереса к подобным технологиям со стороны военного ведомства, в общем-то, очевидна: компьютеры в те времена были дорогими, и их насчитывалось относительно мало, а потребность в вычислениях росла стремительными темпами.

a2xrpndxnymhzyaz2ke4t1vql0c.jpeg
Фото из музея MIT, лаборатория вычислительной техники, начало 60-х

В основу Project MAC легла созданная Фернандо Хосе Корбато за несколько лет до этого экспериментальная система Corbato Compatible Time-Sharing System (CTSS), которая позволяла пользователям нескольких подключенных к ЭВМ терминалов обращаться к одной и той же работающей на такой машине программе. Код CTSS переработали и усовершенствовали, в результате чего уже через полгода 200 пользователей в десяти различных лабораториях MIT смогли подключиться к одному компьютеру и централизованно запускать на нем программы. Это событие можно считать отправной точкой в истории развития облачных технологий, поскольку в рамках данного эксперимента был реализован основной лежащий в их основе принцип — многопользовательский режим доступа по требованию к общим вычислительным ресурсам.

К 1969 году на основе проекта MAC компании Bell Laboratories и General Electric создали многопользовательскую операционную систему с разделением времени Multics (Multiplexed Information and Computing Service), в фундаменте которой лежали заложенные учеными MIT принципы. Помимо организации доступа к приложениям, Multics обеспечивала совместное использование файлов, а также реализовывала некоторые функции безопасности и защиты данных от случайного повреждения. Именно на основе этой системы в ноябре 1971 года Кен Томпсон создал первую версию UNIX, на долгие годы ставшую самой востребованной многопользовательской операционной системой в мире.

0qapurqjh9ntmr_8rgtqftbov1w.jpeg
Кен Томпсон (за клавиатурой PDP-11) и Ден Ритчи — разработчики UNIX

Можно сказать, что с момента появления UNIX в истории развития облачных технологий на некоторое время наступило затишье, поскольку эта система полностью соответствовала требованиям как многочисленных коммерческих предприятий, так и учебных заведений, где она использовалась в образовательном процессе. Затишье продлилось ровно до тех пор, пока в самой Bell Laboratories не решили заменить UNIX более современной ОС, ориентированной в первую очередь на совместное использование аппаратных и программных ресурсов.

Это решение стало еще одним шагом к развитию современных облачных технологий. Новая система Plan 9, разработкой которой занималась команда создателей UNIX во главе с Кеном Томпсоном, позволяла полноценно работать с файлами, файловыми системами и устройствами вне зависимости от того, на каком подключенном к сети компьютере они расположены физически. Де-факто, эта ОС превращала всю компьютерную сеть в одну глобальную многопользовательскую вычислительную систему с общими ресурсами, доступ к которым осуществлялся по требованию и в соответствии с правами пользователей — то есть, фактически, в некое подобие современного «облака».

3uq-nthsab2fzkmjtznqhsg8rkm.jpeg
Группа разработчиков Plan 9, Bell Labs

Следующим важным шагом в эволюции облачных систем стало появление виртуальных машин. Идея виртуализации зародилась вскоре после появления многопользовательских систем с разделением времени. В середине 60-х годов эксперименты с технологиями, которые можно отнести к категории первых гипервизоров, проводились в Исследовательском центре IBM Томаса Дж. Уотсона в Йорктаун-Хайтс, где была разработана экспериментальная система IBM M44/44X. На базе компьютера IBM 7040 исследователи создали несколько независимых эмуляторов ЭВМ, в которых могли запускаться и параллельно работать собственные экземпляры программ в собственной изолированной среде.

benyydsparwn5ysreptjmticxe8.png
IBM M44/44X

Примерно в то же время в других подразделениях IBM проводились эксперименты с машиной IBM CP-40: специально модифицированным компьютером IBM System/360 Model 40. Для этой ЭВМ разрабатывались изолированные программно-аппаратные контейнеры, в которых могла работать операционная система с разделением времени и виртуальной памяти CMS (Cambridge Monitor System). Эту ОС создали сотрудники Кембриджского научного центра IBM (CSC) в тесном сотрудничестве с исследователями Массачусетского технологического института, трудившимися над проектом MAC. Такие виртуальные машины в Кембридже называли «псевдокомпьютером», и основной целью проекта была реализация совместной работы нескольких пользователей с виртуальной памятью.

bcfh5anvihubzimuz2wlhzqlvnm.jpeg
IBM System/360 Model 40

Параллельно развивались виртуальные машины приложений, или так называемые управляемые среды выполнения (MRE), обеспечивающие абстракцию высокого уровня для различных языков программирования. Их основной задачей являлось предоставление платформенно-независимой среды программирования, которая абстрагируется от базового оборудования или операционной системы и позволяет приложению выполняться одинаково на машине с любой аппаратной конфигурацией. Такая «виртуальная машина» обслуживает только один процесс, запускается как обычное приложение внутри основной ОС и завершается при выходе из этого процесса.

Появление первых MRE датируется 1966 годом — эту технологию использовал компилятор объектного кода BCPL. Позже использование объектного кода, который впоследствии может транслироваться в исполняемый код для различных аппаратных архитектур взяли на вооружение компиляторы других языков высокого уровня. Управляемые среды выполнения стремительно развивались, и апогеем их эволюции считается появление виртуальной машины Java. Которая, в свою очередь, подтолкнула Bell Labs приостановить развитие проекта Plan 9 и начать вместо него разработку ОС Inferno, в ядре которой использовалась регистровая виртуальная машина Dis.

Операционная система Inferno умела всё то же, что и Plan 9, но использование виртуализации выводило совместное использование аппаратных и программных ресурсов на принципиально новый уровень. Разработчики предполагали, что Inferno сможет без дополнительной адаптации полноценно работать на различных устройствах и аппаратных платформах, запуская одни и те же приложения и предоставляя пользователям одни и те же функциональные возможности. Фактически, эта платформа, созданная в 1996 году, стала первой в истории по-настоящему облачной операционной системой, по крайней мере, по своей архитектуре. Хотя она и не нашла широкого применения, Inferno заложила прочный фундамент для дальнейшего развития распределённых облачных технологий.

Считается, что сам термин «облачные вычисления» впервые появился в том же 1996 году во внутренней документации фирмы Compaq. Он использовался для обозначения распределённой обработки данных в локальных сетях, хотя некоторые исследователи полагают, что в ряде академических работ он появлялся намного раньше. В частности, журнал Computerworld упоминал в одной из публикаций, будто словосочетание «облачные расчёты» использовал еще в 60-х годах Дж. К.Р. Ликлайдер, первый директор отдела технологий обработки информации ARPA.

5fxpaoloz7wlqb4gwijfrt7v6ey.jpeg


Джозеф Карл Робнетт Ликлайдер

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

Внутри Apple проект не получил должной поддержки руководителя Джона Скалли, поэтому вскоре для его дальнейшей разработки была создана отдельная компания General Magic, а сама операционная система получила рабочее название Magic Cap. Интерфейс этой ОС использовал метафору здания: например, календарь и клиент электронной почты можно было отыскать в «офисном помещении», а игры и другие развлечения — в «гостиной». Для разработки пользовательских приложений применялся специально созданный General Magic язык Magic Script: объектно-ориентированный диалект Си. К сожалению, распределённая операционная система Magic Cap не получила дальнейшего развития, но ряд ее идей и концепций использовался в архитектуре КПК Apple Newton, а значительно позже они нашли свое отражение в iOS.

wewij-0opu8ojusaitdzkx4mthm.png


Интерфейс Magic Cap

Примерно со второй половины девяностых годов в истории развития облачных технологий наступило очередное затишье, которое прервалось с началом эпохи массового распространения дешевого и повсеместного доступа в интернет. Который, в свою очередь, стал причиной появления огромного количества сложных и многофункциональных веб-приложений, требовавших для своей работы значительных серверных мощностей. А уже в первой половине «нулевых» наметилась тенденция постепенного превращения локального ПО, устанавливаемого непосредственно на устройстве, в «облачные» программы, работающие по принципу SaaS — Soft as a Service. Всё это в совокупности вдохнуло в идею облачных вычислений вторую жизнь.

Первым провайдером, предложившим пользователям общедоступный облачный сервис, стала компания Amazon, запустившая 14 марта 2006 года услугу Simple Storage Service, или Amazon S3. Компания, построившая мощные дата-центры для внутренних нужд, посчитала, что вполне в состоянии делиться вычислительными мощностями со своими клиентами, предоставляя их в аренду. Изначально Amazon открыл доступ к объектному облачному хранилищу с веб-интерфесом, возможности и функционал которого постепенно росли и развивались. Уже в октябре 2007 года в облаке Amazon хранилось более 10 млрд объектов, в январе следующего года их количество превысило 14 млрд, а затем стало расти экспоненциально: к концу 2008 года хранилища содержали уже 29 млрд объектов, через год — 64 млрд, в марте 2010 года это число достигло 102 миллиарда, а к марту 2021 превысило 100 триллионов объектов.

8v85ybr8owcx2ctugu99yv2ikue.jpeg
Amazon стал первой компанией, предложившей публичный облачный сервис

7 апреля 2008 года к Amazon присоединился другой гигант IT-индустрии со своим проектом Google Cloud Platform, а чуть позже, в октябре 2008-го — корпорация Microsoft с проектом Azure. В том же году первый облачный провайдер появился и в России — наша страна решила не отставать от мировых лидеров в сфере высоких технологий.

Сейчас без «облаков» фактически невозможно представить мировой IT-ландшафт: облачные сервисы позволяют клиентам не только гибко управлять инфраструктурой, экономить на оборудовании, резервном копировании и технической поддержке, но также получать доступ к огромному количеству услуг, приложений и данных из любой точки земного шара. При этом все современные возможности облачных технологий опираются в своей основе на три фундаментальных столпа: разделение и совместное использование ресурсов, виртуализация и возможность удаленного доступа к этим ресурсам через интернет. Примечательно, что все три этих компонента зародились в начале шестидесятых годов прошлого века в исследовательских лабораториях MIT, IBM, Bell Labs и других технологических компаний, многие из которых финансировались ARPA. Нынешний технологический уровень, который в 1963 году показался бы ученым настоящей фантастикой, является, по большому счёту, всего лишь логическим развитием научно-технической базы, заложенной еще 60 лет назад.

yum0upvqpmb1rcchboht0xncbsw.png

Источники: A Brief History of Cloud Computing, Project MAC, DARPA, Облачные вычисления, Multics, Unix, The history of cloud computing explained, History of Cloud Computing: Past, Present, and Future, The history of cloud computing, A Brief History of Cloud Computing, History of Cloud Computing, Inferno (operating system), IBM M44/44X, IBM 7040, IBM CP-40, General Magic, Amazon_S3, Google Cloud Platform, Microsoft Azure

© Habrahabr.ru