Добавлен: 15.06.2023
Просмотров: 319
Скачиваний: 2
СОДЕРЖАНИЕ
1. Облачные сервисы: основные понятия и возможности
1.1. Понятие и свойства облачных технологий
1.2. Модели и стандарты облачных сервисов
1.3. Тенденции развития облачных технологий
2. Особенности развертывания облачной среды в исследовательской лаборатории
2.1. Обзор технологий внедрения и адаптации облачных сервисов
Ограниченный объем работы не позволяет детально остановиться на каждом из них, однако даже представленный перечень логотипов облачных Web-служб позволяет оценить многогранность предоставляемых услуг.
Рис. 1. Семейство логотипов сервисов облачных провайдеров
Отметим лишь некоторые из них.
- сервис Airbrake обрабатывает исключительные ситуации;
- сервис MailGun преобразовывает почту в POST запросы;
- сервис New Relic - один из общепризнанных лидеров анализа производительности в реальном времени;
Amazon CloudFront - сервис для территориально распределенной системы дистрибьюции громадных объемов данных, что характерно в современном мире для хранения медиа-контента.
В заключение отметим, что развитие облачных технологий на современном этапе имеет в большей степени интенсивный характер, в отличие от экстенсивного подхода предыдущего десятилетия когда основные усилия были направлены на организацию новых облачных провайдеров. В наше время основные усилия разработчиков сосредоточены на создании сервисов “внутри” провайдеров и широкой интеграции сервисных возможностей различных провайдеров.
1.3. Тенденции развития облачных технологий
Облачные вычисления можно рассматривать как новый подход, который даст мощный импульс дальнейшему развитию информационных технологий и вычислительных наук. Отметим, что распределенные и параллельные вычисления в Европе и Америке были поддержаны в широких масштабах. Например, за последние 10 лет в Европе в распределенные и параллельные вычисления было вложено свыше 1 миллиарда евро. В настоящее время в Европе развивается проект VENUS-C, который финансируется, чтобы более детально выявить возможности использования облачных вычислений для исследований и в промышленности.[10]
Предшественниками облачных вычислений принято считать многочисленные и широко известные технологии, такие как ресурсные вычисления, grid-вычисления, виртуализация, гипервизоры и многое другое.[11] Сервис-ориентированная архитектура (Service-Oriented Architecture - SOA) также сыграла важную роль в развитии облачных вычислений. Облачные вычисления являются в некотором смысле расширением SOA-приложений. В последнее время с SOA наравне с Web 2.0 более тесно связывают технологию мэшапов (Mashup). С технической точки зрения мэшап - это web-приложение, которое объединяет в один интегрированный инструмент данные, полученные из нескольких источников. Известными примерами мэшапов являются web-сервисы, использующие картографические данные Google Maps.
Однако это далеко не единственное направление развития мэшапов. Дальнейшее совершенствование связано с методами получения агрегированной информации из сети - web-потоки (RSS, Atom).[12] Многое делается в развитии методов ускоренного разбора HTML-страниц, когда от задачи требуется не получение макета страницы, а выборка определенной информации, представленной там. Интересны эксперименты с мэшапами, которые проводятся с использованием API для доступа сразу к нескольким сайтам. В связи с этим часто упоминают об интегрированной выборке информации с сайтов Amazon, eBay, Flickr, Google, Microsoft, Yahoo, YouTube. Еще один пример - недавно открытые API для российского почтового портала Mail.ru. Подобные приложения позволяют активно использовать российский информационный контент с переходом к облачным моделям вычислений.
Основная цель предприятий и поставщиков, осваивающих облачные решения[13], заключается в том, чтобы обеспечить предприятию ИТ-инфраструктуру как услугу. Опыт, накопленный при интеграции и предоставлении корпоративных приложений как отдельных услуг, сегодня пытаются применять и при организации уровней инфраструктуры. Предполагается, что ПО и физическая инфраструктура, как и приложения в SOA, должны быть доступными для обнаружения, управляемыми и регулируемыми. Естественно, возникает необходимость создания специальных стандартов, которые описывали бы, как обнаруживать, потреблять, администрировать и регулировать услуги. Открытые стандарты имеют ключевое значение для получения максимальной мощности и гибкости от использования облачных технологий.[14] И хотя в настоящее время разработка новых стандартов еще продолжается, часть новых технологий находится на стадии активного внедрения. Например, для взаимодействия с облачными сервисами сейчас действует стандарт, предусматривающий использование браузеров на стороне клиента, которые поддерживают технологию AJAX. Их работа в автономном режиме должна соответствовать открытой спецификации HTML5.
Сегодня существует масса технологий, обеспечивающих решения на основе облачных вычислений. Если несколько лет назад их было трудно реализовать из-за отсутствия всеобъемлющих, понятных инструментов, таких как средства для упаковки и развертывания приложения в облачной инфраструктуре или привязки к инфраструктуре поставщика облака, то сейчас существуют стандарты, которые призваны обеспечить всеобщую поддержку средств виртуализации. Открытым стандартом для работы в облачной среде является OVF (Open Virtual Machine Format). Он описывает предъявляемые к поставщикам виртуальных услуг требования по упаковке и развертыванию виртуальных объектов, передаваемых клиентам облачных сервисов. Важно отметить, что OVF не накладывает ограничений на выбор гипервизора или применение определенной процессорной архитектуры. Это делает его открытым для платформ от разных поставщиков, что нашло подтверждение в полной поддержке предварительной версии OVF, оказанной практически всеми основными поставщиками средств виртуализации: Dell, HP, IBM, Microsoft, VMWare и XenSource.[15]
Облачный стандарт также не ограничивает выбор программных решений, которые могут применяться для работы. Современный набор решений называют LAMP (акроним от Linux, Apache HTTP Server, MySQL и Perl/PHP/Python); обмен данными выстраивается на технологиях XML и JSON (текстовый формат обмена данными, основанный на JavaScript), для работы с web-сервисами предусматривается использование REST (REpresentational State Transfer). Эта технология описывает подход, когда для работы с данными должен применяться достаточно узкий набор стандартных форматов. Тем самым строго ограничивается разнообразие методов взаимодействия между объектами и снижается сложность задействованных протоколов.[16]
Важными являются стандарты, обеспечивающие работу прикладных программ: поддержку коммуникационных функций на базе HTTP и XMPP (Extensible Messaging and Presence Protocol, открытый коммуникационный протокол для ПО класса Middleware, основанный на XML), средства безопасности (OAuth, OpenlD, SSL/TLS) и агрегирования при передаче данных (Atom).
Для разработки ПО и тестирования необходимо приобретать, разворачивать, настраивать и содержать среду для выполнения тестирования. Ясно, что для быстрого создания и размещения такой среды как раз подходят облачные вычисления. В этом случае для групп разработчиков упрощаются непрерывная интеграция кода и процесс обновления продукта. Группы тестирования могут уделять больше времени проверке качества программного продукта и меньше заниматься организацией процесса тестирования.
Для групп разработчиков, помимо готовой среды исполнения, облако дает еще одно преимущество: оно может предложить такую разновидность SaaS, как инструменты как услуги. Вследствие этого интегрированная среда разработки (IDE - Integrated Development Environment) и простые редакторы кода становятся хостируемыми программами, доступными любому разработчику в любое время. Это исключает потребность в локальных средах разработки и, соответственно, в лицензиях на каждую машину, что, несомненно, удобно.
Существует еще один фактор влияния облачных вычислений на разработчиков. Для того чтобы облегчить понимание и поддержку исходного кода, упростить взаимодействие между разработчиками при создании одного и то же программного обеспечения, создаются стандартные интерфейсы прикладного программирования (API). Конечно, разработчики стремятся придерживаться стандартов, но в некоторых случаях нестандартные API дают определенную выгоду в производительности. В облаке же любые отклонения от стандартных API особенно опасны. Потребители знают, что получают услуги от поставщика облака, но могут не знать деталей реализации этих услуг. Таким образом, преимущество облачных технологий - в универсальности решения. Но вместе с тем это достоинство оборачивается некоторым неудобством для разработчиков.
Как уже отмечалось ранее, слабым местом облачных технологий является безопасность информации. До сих пор стандартизация в этой области отсутствует. Это привело к тому, что каждый разработчик облачной платформы выбирает сегодня собственную модель обеспечения безопасности. Например, для Amazon EC2 и Eucalyptus (решение Open Source с целью создания частного облака) применяются пары из сертификатов X.509 и персональных ключей для аутентификации; в Google App Engine используется предварительная аккредитация через Google Accounts.
В результате возникшей разнородности пока наблюдаются трудности при обеспечении взаимодействия решений, построенных в разных облачных платформах. Одновременно это сдерживает внедрение новых функций защиты. Необходимость решения этих вопросов послужила причиной для создания в 2010 году рабочей группы Open Cloud Computing Interface (OCCI) Working Group, которая занимается разработкой стандартов в этой области. Сейчас ее деятельность затрагивает также выпуск стандартизированного набора допустимых операций, а также предоставление полной спецификации на процедуры аутентификации с применением стандартных для HTTP механизмов и средств шифрования на базе криптографических протоколов SSL/TLS.[17]
Таким образом, можно выделить четыре направления, которые необходимо развивать для обеспечения безопасности построения облачного ЦОД:
- безопасное хранение данных в облачных хранилищах;
- безопасное исполнение заданий;
- безопасная передача данных;
- безопасный доступ к данным.
Однако, как можно заметить, облачные технологии имеют больше преимуществ, чем недостатков. К тому же нельзя не учитывать современные тенденции развития ИТ-индустрии, в которых все больше просматривается необходимость обращаться к облачным вычислениям, несмотря на отставание систем защиты информации.
Создание новых стандартов, в том числе для обеспечения безопасности облачных технологий, на сегодняшний день является приоритетной задачей, а дальнейшее развитие облачных решений будет осуществляться вместе с возникновением новых, более надежных способов защиты данных.
2. Особенности развертывания облачной среды в исследовательской лаборатории
2.1. Обзор технологий внедрения и адаптации облачных сервисов
Одним из наиболее известных проектов в сфере облачных вычислений является OpenStack — международное сообщество разработчиков и технологов, занимающихся выпуском общедоступных аппаратных платформ как для бизнеса, так и для частного использования.
Сотрудничество OpenStack, начало которому положила компания Rackspace Hosting совместно с НАСА, со временем переросло в глобальное сообщество по программному обеспечению разработчиков, сотрудничающих в сфере стандартных и широкомасштабных облачных технологий на базе существующих операционных систем.[18]
Есть пять основных семейств сервисов в OpenStack:
- Nova - сервис вычисления;
- Swift - сервис хранения данных;
- Glance - сервис образов;
- Keystone - сервис авторизации;
- Horizon - UI сервис.
Базовая архитектура OpenStack представлена на рис. 2.
Рис. 2. Обобщенная архитектура OpenStack
Три элемента архитектуры взаимодействуют со всеми компонентами системы. Horizon - это графический интерфейс пользователя, который позволяет администраторам с максимальной легкостью управлять всеми проектами. Keystone осуществляет управление авторизованными пользователями, а Neutron позволяет определять сети, которые обеспечивают связи между компонентами. Nova осуществляет распределение рабочих нагрузок. Вычислительным машинам обычно требуется та или иная разновидность персистентного хранилища, которое может быть либо блочным (Cinder), либо объектным (Swift). Кроме того, Nova требуется образ для запуска экземпляра. Glance обрабатывает этот запрос и может использовать Swift в качестве внутреннего хранилища.
Архитектура OpenStack поощряет максимальную независимость каждого проекта. Это позволяет пользователям развертывать лишь требуемое им подмножество функциональности и интегрировать это подмножество с другими системами и технологиями, которые предлагают подобные или дополняющие функции. Тем не менее эта независимость не должна маскировать тот факт, что для беспрепятственной деятельности полнофункциональному частному облаку, скорее всего, потребуется практически вся функциональность, при этом все элементы должны быть тесно интегрированы.[19]
В данной главе работы рассматривается развертывание и настройка минимальной облачной инфраструктуры на платформе OpenStack. Основная задача - настроить среду для тестирования программного обеспечения исследовательской лаборатории, с возможностью размещать N виртуальных машин (ВМ) с различными операционными системами (ОС) на минимальном количестве «реальных» устройств.