ПОСТАНОВКА ЗАДАЧ ОБЛАЧНЫХ ВЫЧИСЛЕНИЙ STATEMENT OF CLOUD COMPUTING PROBLEMS
Т.А. Межуева
T.A. Mezhueva
ФГБОУ ВПО «МГСУ»
В статье излагаются основные положения облачных вычислений - нового направления современных информационных технологий, а также преимущества и недостатки облачных вычислений.
The paper deals with basic principles of cloud computing - a new field in modern information technologies, as well as its advantages and disadvantages.
По определению известной консалтинговой компании Gartner, облачные вычисления — это стиль, при котором масштабируемые ИТ-ресурсы предоставляются внешним пользователям в качестве сервиса с помощью интернет-технологий. Однако и такое определение является недостаточным в полной мере. Облако —это подход, при котором огромное количество серверов объединяются в один мощный вычислительный механизм с использованием технологий виртуализации, а ресурсы одного сервера подразделяются на виртуальные машины и применяются многими пользователями одновременно. Интерфейс, с помощью которого работает пользователь, позволяет вызывать ресурсы в тот момент, когда они необходимы, и закрывать, избавляться от них, если они не нужны. Облако создает новый подход к вычислению. Ни оборудование, ни ПО в таком случае не принадлежат предприятию: гораздо удобнее покупать сервис, а не вычислительные мощности для его построения.
Рассмотрим отличительные черты облачных вычислений. Первый ключевой момент - в "облаках" все имеющиеся ресурсы используются в максимальном объёме. Очень невыгодно иметь парк серверов, который простаивает, а значит и не приносит прибыли. Самый простой и очевидный выход - использование систем виртуализации различных уровней для того, чтобы на одном узле можно было без проблем запускать разнородные задачи, тем самым загружая этот узел по максимуму. Второй метод борьбы с высокими затратами на обслуживание - чисто технологический - увеличение количества моделей энергоэкономичных ЦПУ с высоким показателем производительности и большим количеством ядер (до десятков тысяч). Отсюда ещё одна особенность облаков - размытость, нечёткая граница. Для потребителя облачных вычислений нет таких понятий, как объём оперативной памяти, количество свободного места на жёстком диске, частота процессора и так далее. Аналогичным образом не надо задумываться над доступным объёмом дискового пространства - оно точно также теоретически бесконечно[3].
Другие особенности облачных вычислений - распределённость, удалённость и масштабируемость, которые улучшают отказоустойчивость и надёжность хранения
данных. Последним и очень важным моментом облачных вычислений является наличие стандартизированного интерфейса. Это наивысший доступный уровень абстракции. Любые изменения во внутренней работе "облака" вас не касаются: обновление серверов и ПО, изменение параметров сети, даже физическое перемещение из одного центра хранения и обработки данных в другой[3].
Облачные вычисления принято делить на три вида:
• Публичное облако - это сервис или набор сервисов, доступный всем без исключения. Конечно, во-первых, вычислительные услуги должны быть оплачены; во-вторых, чтобы получить доступ к серверу, необходимо иметь выход в Интернет. Общедоступные облака работают на основе использования виртуализированно-го оборудования, управляемого самими пользователями, а оплата происходит по факту предоставления услуг. Все пользователи данных облаков не имеют возможности управлять и обслуживать данное облако, вся ответственность по этим вопросам возложена на владельца данного облака.
• Частное облако повторяет публичное, но с существенным различием: корпоративные пользователи имеют доступ к сервисам только в стенах предприятия, защищенного сетевым экраном. Предприятия пока еще не готовы передать внутреннюю информацию третьей стороне, что и является предпосылкой для возникновения частных (или внутренних) облаков. Для организации с огромным количеством отделов и филиалов облачная архитектура с помощью виртуализации соединяет несколько инфраструктур ИТ в одну, что существенно упрощает управление логическими ресурсами.
• Гибридное облако - позаимствовало ряд преимуществ публичного и частного. Целесообразно применять, если внутренние мощности не справляются с какой-либо сезонной нагрузкой. В этом случае часть нагрузки перекладывается на публичное облако.
Сейчас выделяют три главных направления облачных вычислений. Приложение как сервис (SaaS, Software as a Service). В эту нишу попадает практически любое приложение, работающее через Всемирную сеть. Разработчиков в ней — тысячи. Такие очень широко распространенные сервисы, как Gmail, Google Docs и даже GoogleMaps, действительно помогают и рядовым пользователям, и тем, кто занят в бизнес-секторе. Все мы уже давно пользуемся облачными вычислениями, нисколько об этом не задумываясь.
Платформа как сервис (PaaS, Platform as a Service) позволяет создавать и внедрять приложения на основе хостинга, используя язык программирования и пакеты от провайдера-разработчика. Среди них — Salesforce, Intuit Partner Platform, Google Apps, Microsoft Azure. Например, система Salesforce, работает в области систем управления взаимодействием с клиентами, предлагая платформу для индивидуальных настроек и создания уникальных приложений. Salesforce поддерживает базу данных кода AppExchange, и вклад в нее может внести любой программист, зарегистрированный на сайте. Сами клиенты, которыми в данном случае являются программисты, дополняют библиотеку приложений, помогая как друг другу, так и разработчику в продвижении его услуг.
Инфраструктура как сервис (IaaS, Infrastructure as a Service). К ней относится использование сервера и дискового пространства, удаленных от пользователя. Лидер в этой нише — Amazon с несколькими решениями по требованию. Еще одним примером могут послужить услуги по предоставлению дискового пространства, предлагаемые Nirvanix. Компания IBM также предоставляет решения в этой области, тем самым по-
могая справиться с рядом проблем и в науке, и в образовании, и в государственном секторе. Кроме того, IBM предлагает услуги для вновь созданных компаний, которые благодаря облакам смогут на первоначальном этапе обойтись без инвестиций в оборудование. Не остаются в стороне и лидеры компьютерного рынка: они первыми прокладывают путь в облака. Так, Microsoft строит облачную инфраструктуру для внутренних целей: отделений в разных странах много, а облако — одно на всех.
С экономической точки зрения облачные вычисления являются простым и сравнительно недорогим решением, позволяющим использовать вычислительные мощности, оборудование и дисковое пространство, существующие вне стен предприятия. Сейчас совсем необязательно создавать собственную ИТ-структуру. Облачные вычисления оказываются в 2—3 раза дешевле, чем разработка приложений или содержание традиционной ИТ-службы. И это немаловажно в нынешней экономической ситуации. Провайдеры облачных вычислений предлагают клиентам расчет уменьшения затрат для различных сценариев.
Оплата в облаках происходит по факту предоставления услуг. Пользователь оплачивает только такое количество ресурсов и сервиса, какое ему необходимо. Например, стоимость Amazon Elastic Compute Cloud определяется количеством часов использования виртуального сервера. Небольшой Linux-сервер стоит 10 центов в час, в то время как мощный Windows-сервер обойдется 1 долл. 20 центов в час. Подобным образом определяется и цена на дисковое пространство. В частности, Nirvanix предоставляет 1 Гбайт начиная от 25 центов в месяц.
К преимуществам облаков относят также возможность использовать нагрузку мощностей неравномерно. В бизнес-процессе нередки всплески активности, когда ресурсы необходимы только временно, например в течение рекламной кампании или во время разработки проектно-сметной документации. В облаках руководителю не придется думать о закупке нового оборудования для обработки большого потока информации. Предприятие будет продолжать заниматься бизнесом так же, как и раньше: всю небывалую для ежедневной рутины нагрузку возьмут на себя мощности системы, расположенной вне организации. Кроме того, облака совершенно исключают такую необходимую процедуру, как обслуживание оборудования. Не нужно составлять тщательный план и обеспечивать работников временной заменой — этим абсолютно незаметно для корпоративного пользователя занимается провайдер.
Любое явление или предмет имеет как положительные, так и отрицательные стороны. Все проблемы облачных вычислений напрямую связаны с их особенностями: удалённостью, распределённостью, параллелизмом, абстрагированностью и так далее. На самом деле, ничего плохого в этом нет. Приходится либо мириться с недостатками, либо вообще отказываться от использования конкретного продукта. И облачные вычисления исключением не являются.
Одна из основных проблем - это перенос существующих приложений в "облако". Это не всегда возможно сделать из-за особенностей архитектуры конкретного приложения, его привязок к другим системам или сервисам, которые ещё не будут перенесены в "облака". Зачастую переход к облачным вычислениям невозможен из-за использования специфических API ОС или вызова низкоуровневых функций для оптимизации работы. В некоторых случаях перенос теоретически возможен, но это требует либо значительной переработки кода, либо переписывания всего набора ПО с нуля. Очень часто это экономически невыгодно. Совершенно аналогичная ситуация наблюдается с 64-разрядностью и многоядерностью. Считанные проценты от всего разнообразия мирового софта оптимизированы для работы с несколькими ядрами или потоками. Что уж тогда говорить про
"облака", в которых можно запускать тысячи потоков одновременно. Впрочем, все эти проблемы отчасти решаемы. Для разработчиков создаётся богатый набор интерфейсов программирования приложений, предлагаются новые модели и парадигмы программирования, разрабатываются инструменты для упрощения работы с многопоточностью и так далее.
Ещё одна проблема облачных вычислений - необходимость в постоянном подключении к Сети. С учётом российских реалий эту проблему можно назвать первостепенной. Частичные решения уже давно есть. Например, GoogleGears позволяет работать с GoogleDocs или Gmail не будучи подключенным к сети, а при первом же подключении синхронизирует всё с сервером. Microsoft в рамках парадигмы Software + Services предлагает комбинированный подход - часть данных хранится и обрабатывается локально, а остальное отдаётся "облаку". Но в данном случае упор всё же делается на решение другой проблемы - безопасности[4].
Главный вопрос, который волнует очень многих, звучит так: "Насколько надёжно хранить все свои данные в облаке?" По идее, облачные вычисления тем и хороши, что данные хранятся в распределённом виде и периодически архивируются. Однако никто не застрахован от сбоев. Подобные прецеденты уже были, например, с Gmail. Тогда удалось восстановить информацию большинства учетных записей, но часть всё-таки пропала навсегда. А это может грозить как минимум вынужденным простоем и потерей прибыли. Не случайно многие бизнес-пользователи предпочитают хранить всё на собственных серверах с настроенной системой резервного копирования. В конце концов, даже если произойдёт сбой, и накопители повредятся, то их хотя бы можно будет восстановить. А если такое произойдёт где-то в облаке, то всё будет зависеть уже от совести cloud-провайдера. Выходом может стать только поддержание актуальной копии всех данных вне "облака".
Если смотреть глубже, то проблема заключается скорее в доверии к облачным вычислениям. Культура аутсорсинга на данный момент слабо развита, особенно в России. Для многих центры хранения и обработки данных являются всего лишь площадками для размещения своего оборудования. Основной проблемой облачных вычислений является обеспечение конфиденциальности хранимой информации. Центры хранения и обработки данных располагаются на территории других стран и подпадают под их юрисдикцию. Например, в США ваши данные могут изъять под различными предлогами вроде борьбы с терроризмом. Более того, вас даже не обязаны уведомлять о самом факте изъятия и о том, куда потом попадут данные. В качестве решения предлагается шифровать всю информацию, которая передаётся и хранится в "облаке". Альтернативный вариант - наиболее критические данные хранить и обрабатывать локально, а всё остальное переложить на облачные вычисления[4].
В целом, облачные вычисления - это очень обширная тема. Очень многие путают облачные вычисления с обычными расчётами на GRID-системах, а то и просто с кластерами удалённых серверов. Да, они имеют некоторые общие черты, но при этом очень сильно отличаются. Разделение IaaS, PaaS, SaaS и прочие *aaS носит, на самом деле, довольно условный характер.
В строительстве использование облачных технологий связано с решением задач распределенных вычислений, удаленного мониторинга, создания и использования электронных архивов проектной документации и прочее.
Литература
1. Кузнецов С. Облака: выгоды и проблемы. Открытые системы. 03/2011. с. 59-62
2. Чжанг М., Кандула С. Янг С., Ли Э. Выбор провайдера облачных сервисов. Открытые системы. 03/2011. с. 45 -47
3. http://www.computerra.ru/vision/484324/
4. http://www.computerra.ru/vision/485315/
Literature
1. Kuznetsov S. Clouds: Benefits and problems // Open systems. 03/2011. p.. 59-62
2. Zhang M., Kandula S. Young, S., Lee E. The choice of provider cloud // Open systems. 03/2011. p. 45 -47
3. http://www.computerra.ru/vision/484324/
4. http://www.computerra.ru/vision/485315/
Ключевые слова: облачные вычисления, информационные технологии, интернет.
Keywords: cloud computing, computer modeling, Internet
129337, Россия, г. Москва, Ярославское шоссе, д.26; тел./факс: +7 (499) 183-59-94; e-mail: [email protected]
Рецензент: Вайнштейн М.С., д.т.н., проф., ОАО «Моспроект»