Распечатать

Концепция вычислений «в облаке» — подходы к технической реализации

Техническая статья Владимира Попова, директора департамента инфраструктурных решений «Энвижн Груп», по подходах к реализации концепции «облачных вычислений» и предоставлении услуги по запросу. Журнал Connect, № 4, 2010 г.

28 апреля 2010

Описание концепции. Выгоды для заказчика и технические задачи для поставщика

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

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

  • вычисления по требованию (On Demand Computing); 
  • ресурсные вычисления (Utility Computing)‏;
  • инфраструктура, платформа, программное обеспечение, как сервис (*As A Service) — IaaS, PaaS, SaaS и пр.

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

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

Облачные ЦОД, ориентированные на предоставление услуг через Интернет принято называть публичными (public cloud). Те ЦОД’ы, которые созданы для удовлетворения собственных потребностей предприятия — корпоративными, закрытыми или приватными (private cloud). На практике имеет смысл рассматривать ситуацию, при которой ЦОД выполняет обе эти функции одновременно.

Коммерческий центр обработки данных предоставляет свои ресурсы для сторонних потребителей, давая возможность своим пользователям самим выбирать уровень и объемы потребляемого сервиса. В основе экономики коммерческого ЦОД лежит расчет, что чем крупнее инфраструктура, тем ниже удельная стоимость обслуживания в пересчете на одну задачу, один сервер, одно приложение. Иными словами в пересчете на один сервер, поддерживать 1000 серверов дешевле, чем 10. Точно также обстоит дело с хранением данных — стоимость гигабайта дисковых ресурсов в многопетабайтной системе хранения дешевле, чем тот же гигабайт в отдельном дисковом массиве. Экономия достигается за счет более высокой утилизации (загрузки) оборудования, снижения затрат на администрирование, снижение удельного энергопотребления компонентов.

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

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

Краткое описание продуктов и услуг. Особенности использования бизнес-приложений в  «облачных вычислениях».

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

Так, например, поступил известный ресурс Amazon.com, разработавший для решения своих задач ряд удачных облачных сервисов, которые в дальнейшем, стал предоставлять сторонним потребителям на платной основе. Изначально Amazon построил всю инфраструктуру и разработал все эти сервисы для себя, чтобы решать свои внутренние проблемы, вызванные большим объемом хранимых данных и огромным количеством транзакций. Они попытались сделать инфраструктуру, которая с одной стороны просто масштабируется, а с другой стороны, могла бы быстро перестраиваться под меняющиеся условия. Когда они ее создали, научились ее использовать, то поняли, что ее можно тиражировать и продавать, заодно снижая собственные издержки. Так, фактически, родились облачные сервисы Amazon:

  • EC2 (Elastic Cloud) — сервис по запуску виртуальных машин; 
  • S3 (Simple Storage Service) — хранение неструктурированных данных. Файлы сохраняются и отдаются пользователю через открытый программный интерфейс (API) на основе HTTP/HTTPS; 
  • SimpleDB — SQL-подобная база данных, запросы к базе формируются так же в виде HTTP-запросов;
  • CloudFront – распределенная сеть хранения и доставки контента — это, фактически, Интернет-кэш, который приблизит приложения к потребителю и повысит их производительность;
  • Simple Queue Service — система очередей сообщений для создания распределенных приложений. Это средство позволяет управлять потоками данных в распределенном приложении, которые рассредоточены по разным облакам, на разных виртуальных машинах;
  • Elastic MapReduce — система обработки и анализа больших объемов данных на базе открытого ПО Apache Hadoop.

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

Кроме Amazon существуют достаточно известные альтернативные проекты. Например, Google параллельно разрабатывает облачную платформу App Engine и предоставляет готовые интегрированные приложения в рамках проекта Google Apps. Это и Google Docs, и GMail и все прочие. Компания Microsoft развивает среду Windows Live и продвигает платформу Azure. Сообщество разработчиков с открытым кодом развивает проект «Эвкалипт» (Eucalyptus) — открытый аналог Amazon EC2, на основе которого уже построено несколько коммерческих сервисов.

С точки зрения аппаратуры, в коммерческих ЦОД для облачных вычислений используются те же стандартные компоненты и решения, что и для корпоративных ЦОД. Это серверы стандартной архитектуры младшего и среднего ценового диапазона, включая блейд-серверы, и модульные СХД на дисках SATA, SAS и FC. При этом происходит ориентация на унифицированные сети передачи данных и СХД, которые предоставляют свои ресурсы по протоколам семейства IP — iSCSI для блочного уровня и CIFS, NFS, HTTP/WebDAV для файлов. Для виртуализации вычислительных ресурсов используются решения либо VMWare, либо Citrix, либо Microsoft. Включение в состав таких ЦОД серверов и дисковых систем старшего класса оправдано в случае массовой консолидации, при наличии определенного класса приложений, когда требуется возможность вертикального масштабирования.

Инфраструктурное «облако» для ЦОД. Требования к инфраструктуре облачных ЦОД.

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

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

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

Высокая доступность и устойчивость к сбоям. Облачная инфраструктура должна быть основана на большом количестве типовых компонентов с механизмами перераспределения задач (сервисов) между ними в случае сбоя одного или группы серверов, СХД или других инфраструктурных компонентов.

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

Ресурсная модель. Пользователь платит только за те сервисы и ресурсы, которыми пользуется. Или по подписке или на основе транзакционной модели, но только за то, что он реально потребляет.

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

Построение на основе SLA. «Облака» управляются на основе правил, прописанных в соглашении об уровне сервиса (Service Level Agreement, SLA). Соглашение описывает параметры предоставления сервиса, метрики, его стоимость, зоны ответственности потребителя и поставщика и прочие условия.

Наличие доступного API. В виду того, что «Облака» виртуализируют свои ресурсы, то сервисы должны иметь открытый интерфейс взаимодействия. Это позволит, в первую очеред, расширять функциональность облака, а при необходимости, переносить приложения с одного «облака» в другое.

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

Востребованность на мировом и отечественном рынке. Подходы к построению бизнеса. Перспективы в России.

Все эти примеры показывают одно. Для того чтобы компания смогла эффективно оказывать «облачные сервисы» ее собственная инфраструктура должна быть построена на основе приложений, которые сами по себе уже работают в Web.

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

Классификация обслуживания по тарифным планам может быть реализована, например, путем расположения данных на ресурсах определенного класса. Условно, данные основной массы пользователей мы расположим на системах хранения среднего и начального уровня на дисках SATA, которые объединены в RAID5. Заказчиков золотого уровня мы располагаем на СХД того же среднего уровня, но с более высоким уровнем резервирования и производительности. Платиновым клиентам мы можем для достижения еще более высокой надежности добавить репликацию по трем площадкам, дополнительные возможности по оптимизации и расширенные средства аналитики.

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

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

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

Конечно, в деле реализации облачной концепции присутствует и ряд нерешенных вопросов, над которыми сейчас активно работают ведущие производители оборудования и ПО. В рамках одной из таких инициатив, осенью 2009 года было объявлено о создании стратегического альянса между VMware, Cisco Systems и ЕМС. Альянс разрабатывает рекомендации и готовые решения для построения технологической инфраструктуры в области облачных вычислений и хранения данных. Учитывая концентрацию усилий таких серьезных вендоров, можно с определенной долей уверенности предположить, что в будущем такой подход станет преобладающим. 

Оригинал статьи в формате PDF (248 Кбайт)