Развитие облачных вычислений

Завершено

Давайте рассмотрим развитие облачных вычислений.

События и инновации

Концепция облачных вычислений впервые появилась в начале 1950-х годов, когда несколько ученых, включая Херба Гроша (Herb Grosch), Джона Маккарти (John McCarthy) и Дугласа Пархила (Douglas Parkhill), рассматривали вычисления как служебную программу, подобную электроэнергии1, 2. В течение следующих нескольких десятилетий несколько новых технологий заложили основу для облачных вычислений. В последнее время быстрый рост Интернета и появление крупных интернет-гигантов, таких как Google и Amazon, в конечном итоге привели к созданию экономической и деловой среды, которая способствовала процветанию модели облачных вычислений.

Evolution of cloud computing.

Рис. 5. Эволюция облачных вычислений

Развитие облачных вычислений

С 1960-х годов одними из самых ранних форм компьютеров, которые использовались организациями, были мейнфреймовые компьютеры. Несколько пользователей могли совместно использовать мейнфреймы и подключаться к ним через базовые последовательные подключения с помощью терминалов. Мейнфрейм отвечал за всю логику, хранение и обработку данных, а подключенные к нему терминалы имели небольшую вычислительную мощность или вообще не обладали ею. Эти системы продолжали широко использоваться на протяжении более 30 лет и в определенной степени продолжают существовать и по сей день.

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

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

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

Многоуровневые архитектуры позволили использовать модульное программное обеспечение, разделяя представление приложения, логику приложения и хранилище на отдельные сущности. Очень скоро подобная модульность и развязка привели к тому, что эти отдельные программные сущности работали на разных физических серверах (как правило, из-за различий в требованиях к аппаратному и программному обеспечению). Это привело к увеличению количества отдельных серверов в организациях, однако, и к низкому среднему уровню использования серверного оборудования. В 2009 году Международная корпорация данных (IDC) подсчитала, что средний коэффициент использования сервера x86 составлял примерно 5–10 %3.

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

В то же время, распределенные вычисления типа "решетка" завоевали популярность в научном сообществе в попытке решить масштабные проблемы распределенным способом. С помощью сетевых вычислений компьютерные ресурсы из нескольких административных доменов работают в унисон для достижения общей цели. Распределенные вычисления типа "решетка" породили множество инструментов управления ресурсами (например, планировщики и балансировщики нагрузки) для управления крупномасштабными вычислительными ресурсами.

По мере развития различных компьютерных технологий развивалась и экономика вычислений. Даже в первые годы существования мейнфреймов такие компании, как IBM, предлагали размещать и запускать компьютеры и программное обеспечение для различных организаций, таких как банки и авиакомпании. В эпоху Интернета также стало популярным стороннее размещение веб-сайтов. Однако благодаря виртуализации поставщики обладают беспрецедентной гибкостью в размещении нескольких клиентов на одном сервере, совместном использовании оборудования и ресурсов между ними.

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

Опорные технологии

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

Enabling technologies in cloud computing.

Рис. 6. Включение технологий в облачных вычислениях

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

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

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

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

Модели программирования для облаков предоставляют пользователям гибкость в выражении параллельных программ в виде последовательных вычислительных единиц (например, функции в MapReduce и вершины в GraphLab). Системы среды выполнения таких моделей программирования обычно сравнивают, распределяют и планируют вычислительные единицы, управляют взаимодействием между единицами и выдерживают сбои. Облачные модели программирования рассматриваются в последующем модуле.


Ссылки

  1. Симон Гарфинкель (Simson L. Garfinkel) (1999). Создатели информационного сообщества: тридцать пять лет Лаборатории вычислительных наук в издательстве Массачусетского технологического института
  2. Douglas J. Parkhill (1966). The Challenge of the Computer Utility Addison-Wesley Publishing Company, Reading, MA
  3. Michelle Bailey (2009). "Экономики виртуализации: переход к модели затрат на основе приложений". Спонсорский технический документ IDC по VMware

Проверьте свои знания

1.

Когда появились общие идеи по поводу облачных и программных вычислений?

2.

Какая технология позволяет объединить несколько серверов в один физический сервер?

3.

Какие три технологии позволяют реализовать облачные вычисления?

4.

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