Utility-компьютинг и «облачные» вычисления

Давид Харатишвили

Частные сервисы Utility-компьютинга

Публичные сервисы Utility-компьютинга

IaaS

HAM

SaaS

PaaS

Выводы

 

В последнее время множество публикаций посвящено Utility-компьютингу. Появляются новые термины: «облачные» вычисления, «облачные» услуги, а также множество новых аббревиатур (SaaS, PaaS, IaaS), которые отчасти дублируют старые, отчасти пересекаются с ними (ASP, HAM (Hosted Application Management)). В данной статье мы попытаемся не только дать определения новым терминам, но и найти их логическую взаимосвязь со старыми понятиями.

Начнем с концепции Utility computing (Utility-компьютинг), так как она является более общей. Идея Utility-компьютинга состоит в предоставлении компьютерных ресурсов для обработки и хранения данных в качестве сервиса, оплачиваемого в зависимости от объема потребляемых ресурсов. Здесь можно провести аналогию с коммунальными платежами (оплатой газа, электричества или воды). Такая услуга востребована прежде всего за счет минимизации начальных вложений в собственную ИТ-инфраструктуру потребителя. Впервые подобная идея была высказана Джоном Маккартни еще в 1961 году. К данной категории могут быть отнесены многие технологии, известные уже не один десяток лет. В частности, к ним относится услуга предоставления пользователю приложения в виде терминального доступа по Сети. Другой пример — технология Grid-компьютинга, позволяющая объединить несколько компьютеров для решения одной задачи и предоставить вычислительную услугу как сервис. Существуют компании, которые оказывают услуги Grid-компьютинга отдельным пользователям: клиент отсылает данные и программу для их обработки, а вендор использует ресурсы своего грида для решения задачи.

Наиболее новая концепция в этом ряду — «облачные» вычисления (Cloud Computing). Термин появился в 2001 году, но особенно популярным стал в последние два-три года. Идея Cloud Computing сводится к перемещению вычислительной инфраструктуры за пределы предприятия в некую динамично масштабируемую систему («облако» — рис. 1).

 

Рисунок

Рис. 1. Cloud Computing предполагает перенос
вычислительных ресурсов в Интернет

При этом пользователь получает доступ к вычислительным и дисковым ресурсам, не задумываясь об их расположении и настройке. Принципиально новой идею Cloud computing назвать нельзя: она является развитием решений, в которых приложения предоставляются в виде хостинга по Сети. По всей видимости, появление нового термина прежде всего связано с переходом количества в качество — то есть с новым качеством сервисов, которое стало возможным с развитием интернет-технологий. Новое качество технологии Cloud Computing заключается в первую очередь в том, что модель хостинга выходит за рамки аренды ресурсов для веб-сайтов и может охватывать гораздо более широкий круг корпоративных ИT-задач, включая так называемые критически важные для бизнеса (например, использование в режиме хостинга ERP-системы).

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

 

Рисунок

Рис. 2. Виртуализация и использование ресурсов

Для того чтобы понять, что означает новый термин Cloud Сomputing, полезно обратиться к определению IDC. Согласно последнему, «облачные» вычисления — это технологии и модель доставки, на базе которых предоставляются программное обеспечение, серверные мощности, системы хранения данных или другие системы в виде услуги. При этом подавляющее большинство из них предоставляется прозрачно для пользователя, так же как сетевые сервисы в области торговых, банковских, развлекательных и других услуг, оказываемых по Сети. Клиенты не покупают саму среду облачных вычислений, они платят за «облачные» услуги (cloud services), которые осуществляются на базе инфраструктуры «облачных» вычислений (cloud computing environment). IDC подчеркивает различие между терминами «“облачные” услуги» и «“облачные” вычисления». «Облачные» услуги — это практически любая бизнес- или потребительская услуга, которая доставляется и потребляется через Интернет в режиме реального времени или близком к реальному времени. Среда облачных вычислений — более узкое понятие: это ИТ-среда (набор технологий, продуктов и сервисов их поддержки), дающая возможность разработки, поставки и потребления облачных услуг. IDC выделяет ряд ключевых атрибутов, обозначающих «облачные» услуги:

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

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

 

Рисунок

Рис. 3. Соотношение сервисов, базирующихся на концепции Utility-компьютинга (источник: IDC)

Частные сервисы Utility-компьютинга

Частные (непубличные) сервисы Utility Computing — это системы Utility-компьютинга, реализованные для обслуживания одного предприятия и обеспечения поддержки среды исполнения приложений и их разработки. Как видно из рис. 3, и приложения, и ИТ-инфраструктура в этой группе относятся к категории Dedicated. Система управляется провайдером услуг для нужд конкретного потребителя. Фактическим собственником вычислительных ресурсов может выступать как клиент, так и поставщик в зависимости от условий контракта.

Поставщики непубличных сервисов Utility-компьютинга обычно фиксируют в договорном порядке уровень необходимых ресурсов (сервера/системы хранения данных), которые реализуются на базе продуктов виртуализации. Сервис обычно доступен в режиме 24x7 (24 часа, семь дней в неделю). Уровень сервиса заложен в SLA-соглашении. В данной схеме приложениями пользователя могут быть ERP-приложения, базы данных на мэйнфреймах и т.п.

Публичные сервисы Utility-компьютинга

IaaS

Infrastructure as a Service (инфраструктура как сервис) — это услуга, оказываемая по модели «оплата по мере потребления» (инфраструктуры и процессорной мощности). Как видно из рис. 3, тип приложения отмечен как Dedicated, то есть приложение создается пользователем (принадлежит пользователю). А вычислительная инфраструктура помечена как Shared, то есть она предоставляется провайдером и является разделяемой.

В качестве примера реализации подобной схемы может быть приведена служба Amazon Elastic Compute Cloud (Amazon EC2) — это услуга от дата-центра компании Amazon.com для разработчиков, первый в мире хостинг, предоставляющий вычислительные мощности и аренду места на серверах гибко, по требованию. Это веб-сервис, входящий в инфраструктуру Amazon Web Services и предоставляющий вычислительные мощности в «облаке». Через веб-интерфейс сервис позволяет получить доступ к вычислительным мощностям и обеспечивает пользователям контроль над вычислительными ресурсами, а также доступную среду для работы.

HAM

Hosted Application Management (ранее использовался термин Application Service Provisioning (ASP) — этот вид услуг подразделяется на два варианта: заказчики либо покупают приложение (платят за лицензию) и обращаются к сервис-провайдеру, который запускает и поддерживает его, либо не хотят поддерживать некое приложение и обращаются к сервис-провайдеру, который бы предоставлял управление и обслуживание этого приложения. Хостинг приложения может предоставляться со стороны ISV (Independent Software Vendor), который является разработчиком данного приложения или третьей компанией. Хостинг обслуживания и администрирования ПО подразумевает централизованное управление тиражируемым программным обеспечением при условии, что приложения находятся на территории поставщика услуг, а заказчик имеет удаленный доступ к этому ПО. Основные различия между хостингом обслуживания и администрированием ПО и традиционным управлением приложениями заключаются в следующем:

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

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

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

В качестве примера можно привести службу компании IBM — IBM Applications on Demand. Эти услуги могут оказываться на базе инфраструктуры заказчика и включать управление приложениями заказчика, мониторинг непрерывности работы приложений, их администрирование, управление патчами, администрирование баз данных заказчика. Все эти работы оплачиваются в зависимости от потребленного времени оказания услуг. Это так называемый Pay-as-you-go-сервис 3 по управлению инфраструктурой корпоративных приложений, включая Oracle, SAP, PTC Windchill, PeopleSoft, Siebel и Lotus Notes. Сервис позволяет возложить издержки дорогой инфраструктуры на провайдера и увеличить скорость старта проекта для пользователей. Сервис обеспечивает доступ к полностью сконфигурированным, настроенным и пропатченным корпоративным приложениям. Провайдер предоставляет не только инфраструктуру, но и необходимую экспертизу. Сотрудники ИТ-организации клиента и интеграторы имеют полный доступ к вычислительной среде дата-центра, в котором развернуты приложения. Оплата осуществляется на основе заранее оговоренной ежемесячной абонентской платы.

Название сервиса IBM — Applications on Demand — следует признать неудачным. Термин Software on Demand (программное обеспечение по требованию) обычно используют как синоним SaaS. Как видно из таблицы, IBM Applications On Demand попадает в категорию HAM и не попадает в категорию Software on Demand.

Данную мысль подтверждает и цитата из Википедии: «Многие поставщики утверждают, что они предоставляют onDemand-решение, но используют этот термин весьма небрежно. Настоящее SaaS-решение подразумевает мультиарендную (многопользовательскую) архитектуру». В чем заключаются различия между HAM и SaaS, станет более понятно после прочтения раздела, посвященного SaaS.

SaaS

SaaS — это модель доставки программного обеспечения, при которой поставщик разрабатывает веб-приложение и предоставляет заказчикам доступ к нему по Сети. При этом SaaS — это модель, изначально ориентированная на применение интернет-технологий. Ее эффективная реализация подразумевает иной подход к архитектуре ПО, чем в традиционных приложениях. Речь, в частности, идет о необходимости поддержки режима Multi-Tenant (множественная аренда), когда один экземпляр ПО используется для параллельного обслуживания нескольких заказчиков. Именно это принципиально отличает SaaS от моделей «клиент — сервер» и Hosted AM, или ASP. Принципиально важным является и то, что SaaS-провайдер берет на себя полную ответственность за решение вопросов масштабируемости предоставляемого сервиса, в том числе задач развертывания, управления и поддержки ПО на протяжении всего жизненного цикла софта.

Multitenancy (множественная аренда) базируется на архитектуре ПО, при которой один экземпляр ПО исполняется на SaaS-платформе провайдера и применяется для параллельного обслуживания нескольких заказчиков. В противоположность multi-instance архитектура подразумевает, что разные экземпляры ПО исполняются для различных организаций, что позволяет каждому клиенту работать с кастомизированным виртуальным приложением.

Следует еще раз подчеркнуть, что SaaS — это модель доставки ПО потребителю, а не организации компании — провайдера сервисов. Многие компании разного профиля могут предоставлять доставку софта в виде SaaS.

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

Наиболее успешный пример развития бизнеса в области продажи решений по SaaS-модели — компания Salesforce. Она занимает около 15% рынка SaaS. Salesforce работает в направлении предоставления CRM-решений на базе SaaS- модели с момента своего основания в 1999 году. К настоящему времени у нее более 55 тыс. компаний-клиентов, среди которых есть международные фирмы, использующие десятки тысяч клиентских лицензий Salesforce.

PaaS

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

Одним из примеров PaaS является Google App Engine. Эта платформа позволяет запускать приложения пользователей на основе инфраструктуры компании Google (серверы, коммуникации, технологии). Платформа Google App Engine дает возможность быстро развернуть приложение, которое будет надежно работать при высокой посещаемости проекта и оперировать большими объемами данных. Система предоставляет возможности динамической генерации веб-страниц, хранилище для размещения данных, обеспечивает автоматическое масштабирование и балансировку нагрузки между серверами. Система предоставляет функции API для авторизации пользователей и отправки электронной почты с помощью аккаунтов Google, обеспечивает полноценную среду разработки, которая эмулирует работу системы Google App Engine на локальном компьютере пользователя.

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

Выводы

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

 

В начало В начало

КомпьютерПресс 9'2009

Наш канал на Youtube

1999 1 2 3 4 5 6 7 8 9 10 11 12
2000 1 2 3 4 5 6 7 8 9 10 11 12
2001 1 2 3 4 5 6 7 8 9 10 11 12
2002 1 2 3 4 5 6 7 8 9 10 11 12
2003 1 2 3 4 5 6 7 8 9 10 11 12
2004 1 2 3 4 5 6 7 8 9 10 11 12
2005 1 2 3 4 5 6 7 8 9 10 11 12
2006 1 2 3 4 5 6 7 8 9 10 11 12
2007 1 2 3 4 5 6 7 8 9 10 11 12
2008 1 2 3 4 5 6 7 8 9 10 11 12
2009 1 2 3 4 5 6 7 8 9 10 11 12
2010 1 2 3 4 5 6 7 8 9 10 11 12
2011 1 2 3 4 5 6 7 8 9 10 11 12
2012 1 2 3 4 5 6 7 8 9 10 11 12
2013 1 2 3 4 5 6 7 8 9 10 11 12
Популярные статьи
КомпьютерПресс использует