Cloud Computing (фрагменты книги). Фрагмент 3: Генезис Cloud Computing.

«… Вычисления станут похожи на коммунальные службы,как, например, вода, газ, или электронергия»

Джон Маккарти,

известный американский компьютерный специалист начала 60-х годов.

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

Происхождение СС можно проследить, наблюдая за развитием новых информационных технологий, в особенности аппаратного обеспечения (виртуализация оборудования, многоядерные процессоры), Интернет-технологий (веб-сервисы, сервисно-ориентированные архитектуры, SOA, Web 2.0), распределенных вычислений (кластеры, гриды), технологии системного администрирования (автоматизация вычислений, автоматизация центров обработки данных, ЦОД).

На рис. 1 показано взаимопроникновение технологий, развитие которых приводит к появлению СС на их стыке. 

 Picture1

 Рисунок 1.

Некоторые из этих технологий воспринимались на ранних этапах их развития как «хайпинг» (Hyping [англ.] – чрезмерное преувеличение чего-либо, создание ажиотажа), что часто случается с новыми технологиями, практическая польза которых в момент их появления еще не ясна. Однако, затем они привлекли внимание ученых и были положительно восприняты инженерами.

Кратко рассмотрим основные из этих технологий, чтобы понять, какую роль они сыграли в формировании СС.

От мейнфреймов к СС.

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

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

Провайдеры облачных услуг достигают значительной экономии на операционных расходах – поэтому их услуги и стоят недорого. Инфраструктура оборудования и ПО используется для предоставления многих решений многим пользователям (multi-tenancy), таким образом, быстрее достигается отдача инвестиций ROI (Return On Investment), а также снижается общая стоимость владения ТСО (Total Cost of Ownership).

Идея виртуализации ресурсов компьютера, включая процессор, память, устройства ввода-вывода, существует не первый десяток лет. Более того, в т.н. «эру мейнфреймов» виртуализация была основным видом использования компьютерной мощности.

Превращению концепции «вычислений как коммунальной службы» в реальность, так или иначе, были посвящены несколько технологий, развивавшихся в 1970-х годах. Несколько компаний, предлагавших обобщенные задачами обработки данных как услугу, работали с мейн-фреймами в режиме разделения времени, которые могли обслуживать сотни приложений заказчиков и часто работали с загрузкой почти в 100% своей вычислительной мощности. Иначе бы эти монстры просто не окупились, просто потому, что они были очень дороги и их цена должна быть, так или иначе, «отбита» их интенсивным использованием.

Так появилась бизнес модель (верхняя левая часть на рисунке ниже), когда данные и приложения сконцентрированы в одном центре, а пользователи подключались к нему при помощи удаленных терминалов (впрочем не очень удаленных – не более 1-2 км, иначе качество связи через телефонную «витую пару» резко ухудшалось).

Эту модель можно представить как предшественницу систем СС. Самое интересное в том, что она работает до сих пор и называется «тонкий клиент» (thin client).

 Picture2

 Рисунок 2.

Эра мейнфреймов закончилась с появлением быстрых и недорогих микропроцессоров и «чипсетов» для них. Это впоследствии привело к созданию центров обработки данных (ЦОД, или «дата-центров»), представлявших собой набор серверов, которые внешние заказчики могли использовать по своему усмотрению. Кроме всего прочего, такая модель неизбежно приводила к изоляции рабочей нагрузки в пределах выделенных серверов, вследствие несовместимости стеков программного обеспечения и операционных систем для конкретных программных приложений.

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

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

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

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

SOA, веб-сервисы, Web 2.0 и гибридные веб-приложения (Mashup)

Появление открытых стандартов веб-сервисов (WS) способствовало интеграции разнородного программного обеспечения. Веб-сервисы могут «склеивать» приложения, работающие на различных платформах, таким образом, что информация на выходе одного приложения могут использоваться на входе другого приложения, или использоваться совместно. Кроме того, веб-сервисы дают возможность использовать через Интернет различные внутренние приложения.

Постепенно богатый спектр разрабатываемых веб-сервисов подвергался спецификации и стандартизации в виде различных технологий описания, композиции и оркестрации услуг, их пакетов и передачи сообщений услугами, публикации и нахождения нужных услуг, представления их уровня качества в виде параметра «качества услуги» QoS (Quality of Service), и обеспечения безопасности при доступе к услугам [5].

Стандарты веб-сервисов создавались на базе существующих технологий, таких как HTTP и XML. Таким образом, они обеспечивают единый механизм для предоставления услуг в виде сервисно-ориентированной архитектуры SOA (Service  Oriented Architecture). SOA имеет целью создать стандартный, независимый от сетевых протоколов, способ выполнения распределенных компьютерных вычислений, выполняемых на базе разнородных компьютерных платформ.  В SOA ресурсы программного обеспечения скомпонованы в пакеты «сервисов», которые представляют собой ясно описанные, абстрагированные модули, обеспечивающие стандартные функции для бизнес-процессов.

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

Концепция «склейки» веб-услуг изначально предназначалась для корпоративных сетей (Интранет) предприятий, но также завоевала место и на потребительском рынке, особенно с развитием концепции Web 2.0.

В потребительском сегменте Интернета информация и сервисы могли быть программно агрегированы, составляя т.н. «стандартные строительные блоки», которые назывались гибридными веб-приложениями (service mashup). Многие сервис-провайдеры, такие как Amazon, Facebook и Google сделали общедоступными свои интерфейсы прикладного программирования API (Application Programming Interface), такие как SOAP и REST. Таким образом, стало возможным создавать полнофункциональные веб-приложения путем комбинации готовых веб-услуг, «склеенных» при помощи нескольких строчек несложного кода.

В наиболее популярной «облачной» услуге SaaS (Software as a Service) облачные приложения могут создаваться как комбинации других услуг от одного или нескольких провайдеров. Сервисы, такие как аутентификация пользователей, электронная почта, геоинформационная система, календарь – это примеры «строительных блоков» которые могут быть использованы в различных бизнес-системах в том случае, если готовая система таких функций не обеспечивает. В магазинах приложений сейчас доступно множество подобных строительных блоков.

Распределённые компьютерные системы (Grid Computing)

У понятия Grid computing, также как и у Cloud Computing, до сих пор нет адекватного русского перевода (название раздела – перевод приблизительный). Технология Grid Computing дает возможность агрегировать распределенные ресурсы и получать к ним непосредственный доступ. Такие проекты Grid computing, как TeraGrid (США) и EGEE (ЕЭС) привлекают компьютерные ресурсы в различных административных доменах с целью ускорения прикладных вычислений в различных областях науки, таких как погодно-климатическое моделирование, конструирование лекарственных средств, протеиновый анализ и пр.

Разработка стандартных протоколов для нескольких проектов по Grid computing теоретически могло бы привести к возможности предоставления вычислительных мощностей через Интернет по требованию. Однако, обеспечение требуемого качества QoS в таком режиме вычислений стало достаточно сложной проблемой. Это стало непреодолимой проблемой, в особенности в приложениях, критичных ко времени. По мере роста популярности распределённых компьютерных систем, крупные системы Grid computing стали испытывать проблемы «справедливого доступа к ресурсам» (fair usage), из-за всплесков спроса на эти ресурсы и конкурентным поведением пользователей. Технология администрирования распределенных компьютерных ресурсов не обеспечивала равного доступа к ресурсам из множества систем. Традиционные метрики (пропускная способность, время ожидания и замедления) не смогли удовлетворять требованиям пользователей, которые совсем не хотели соразмерять свои запросы с возможностями загрузки ресурсов, или отодвигать сроки выполнения своих работ в зависимости от возможностей грид-систем.

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

Виртуализация оборудования

Услуги СС обычно обеспечиваются вычислительными ресурсами крупномасштабных центров обработки данных (ЦОД), или «дата-центрами». Такие ЦОД строятся для обслуживания большого числа пользователей с хостингом множества приложений. Виртуализация в данном контексте рассматривается как отличное средство для преодоления сложностей строительства и обслуживания ЦОД.

Идея виртуализации компьютерных ресурсов, включая процессоры, память, устройства ввода-вывода впервые была выдвинута американским компьютерным экспертом Джоном Маккарти в 1961 г. Он предсказал, что разделение времени компьютерных ресурсов, которое широко использовалось в те времена, в результате придет к бизнес-модели «коммунальной услуги» (utility), так же, как вода, газ или электричество. Эта идея, популярная в середине и конце 1960-х годов, к концу 20-го века потеряла свою привлекательность, не в последнюю очередь по причине массового распространения персональных компьютеров. Однако с начала 2000-х годов идея возродилась в новых формах, прежде всего grid computing и cloud computing.

Виртуализация оборудования может рассматриваться как одно из приложений СС. Технология виртуализации позволяет, как показано на рис.3, нескольким разнородным платформам операционных систем работать на единой аппаратной платформе при помощи монитора (менеджера) виртуальных машин VMM (Virtual Machine Monitor), называемого также гипервизором (hypervisor).

 Picture3

Рисунок 3.

Гипервизор организует работу нескольких виртуальных машин VM (virtual machine) на единой аппаратной платформе. Каждая VM может работать как отдельный компьютер, использовать «собственную» память и область хранения данных.

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

Существует несколько мониторов виртуальных машин VMM («гипервизоров»), которые составляют основу для систем СС. Наиболее заметные среди них: VMWare, Xen и KVM.

Виртуальные устройства и открытый стандарт виртуализации.

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

Существуют специальные магазины приложений для покупки и обмена такими готовыми контейнерами с виртуальными устройствами, содержащими популярные операционные системы и полезные комбинации программного обеспечения, как коммерческие, так и открытые. Например, магазин приложений компании VMWare разрешает пользователям разрабатывать собственные устройства на основе фирменного гипервизора VMWare, а компания Amazon разрешает разработчикам продавать образы виртуальных машин (Amazon Machine Images, AMI) и зарабатывать на использовании облачного решения Amazon EC2 (Amazon Elastic Cloud Computing).

Различных гипервизоров существует довольно много, однако, каждый из них может поддерживать только определенный формат виртуальной машины. Эти форматы чаще всего несовместимы друг с другом.  Например, Amazon имеет свой формат образа машины  Amazon Machine Image (AMI). Компания Citrix использует XenServer, несколько дистрибутивов Linux поставляются с KVM, Microsoft Hyper-V и VMware ESX.

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

Об авторе Алексей Шалагинов

Независимый эксперт
Галерея | Запись опубликована в рубрике Uncategorized. Добавьте в закладки постоянную ссылку.

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход /  Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход /  Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход /  Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход /  Изменить )

w

Connecting to %s