Автор работы: Пользователь скрыл имя, 13 Сентября 2013 в 12:42, доклад
Облачные технологии - это способ увеличения пропускной способности сетей или предоставление ИТ-ресурсов в виде сервиса, который Вы можете получить не вкладываясь в создание новой инфраструктуры, при этом у Вас нет нужды готовить новые кадры или покупать лицензированное новое программное обеспечение. Сервисы входящие в облачные технологии, предоставляются на основе подписки или платы за использование услуги, в режиме реального времени через Интернет, это конечно расширяет существующие у Вас возможности.
Основные аспекты IaaS
Возможно, более правильно было бы представлять Интернет не как единое глобальное облако, а как систему, состоящую из множества облаков, похожую на грозу. Исходя из этой метафоры, логично утверждать, что молния – это погодный эквивалент обмена данными между облаками. Данная метафора, возможно, является более точной в том смысле, что облака систематически взаимодействуют между собой, создавая единый результат – Интернет.
Маловероятно, что Интернет станет единым облаком (по крайней мере в ближайшем будущем), поскольку стандарты облачных вычислений отсутствуют, а поставщики предпринимают попытки долгосрочной капитализации путем привязки пользователей. Тем не менее облачные вычисления не развились бы до текущего состояния, если бы не было инноваций в духе капитализма. Возможно, когда-нибудь Интернет действительно станет единым взаимосвязанным облаком, в котором виртуальные машины смогут без усилий переноситься в облако независимо от формата файлов, а взаимосвязанные кластеры виртуальных машин будут управляться поставщиками сервисов через единый интерфейс. Но этот день настанет не скоро. А пока мы будем рассматривать Интернет как систему, состоящую из множества облаков. (Примечательно, что для хранения этой статьи я использую облако Apple MobileMe, чтобы иметь возможность работать над ней на различных устройствах).
Эластичная инфраструктура
Эластичность (гибкость) – это первый важнейший аспект IaaS. Чтобы продемонстрировать концепцию эластичности, я попрошу использовать ваше воображение. Представьте, что облака сделаны из зефира, слепленного вместе так, чтобы на них можно было сидеть и ездить. Каждое зефирное облако может удержать определенное количество людей в зависимости от числа зефирных кластеров, составляющих облако, а также от числа отдельных зефирин, содержащихся в этих кластерах. По мере увеличения количества людей, едущих на облаке, мы можем расширять зефирные кластеры, добавляя зефирины и тем самым увеличивая площадь. Как вы уже догадались, люди представляют собой приложения, которым нужны вычислительные ресурсы (например, для размещения Web-сайтов и выполнения программных сервисов). Зефирные кластеры представляют собой кластеры виртуальных машин, а каждая зефирина – это виртуальная машина.
Хотя все это звучит как рецепт из книги доктора Сьюзза (Dr. Seuss), такая метафора облегчает понимание концепцииэластичной кластеризации, которую многие считают черной магией. Кластеризация физических серверов с целью формирования виртуального облака известна как облачная кластеризация (cloud clustering), и если бы она действительно была черной магией, мастерство мага измерялось бы масштабируемостью структуры системы.
Давайте рассмотрим пример. Представьте, что вы выполняете статистические исследования по заказу правительства. Правительство ощущает недостаток кадров, и перед вами поставлена задача обработать все данные последней переписи населения. Вы должны представить Конгрессу необходимые статистические данные в течение трех дней, чтобы он мог принять важные решения по распределению взыскиваемых сборов и налогов. Излишне говорить, что это весьма значительная работа, и вы испытываете некоторую нехватку времени. Более того, вам нужно обработать астрономический объем данных, и вы осознаете, что для его обработки понадобится трехнедельная работа всего ИТ-отдела.
Это именно тот тип проблем, которые можно легко решить при помощи IaaS. Фактически, используя IaaS, можно выполнить анализ всей переписи населения за час. Можно начать с создания одного экземпляра сервера, содержащего систему управления базами данных для выполнения запросов к данным. Этот экземпляр называется образом (image).
После развертывания образа и импорта данных в базу можно продублировать этот образ необходимое число раз и запустить задания обработки данных. В процессе выполнения заданий можно вручную или автоматически добавлять или удалять ресурсы. Например, если вычисления выполняются недостаточно быстро, можно просто добавить в кластер дополнительные дубликаты образа.
Теперь, когда вы познакомились с концепцией эластичности, рассмотрим второй важный аспект IaaS – виртуализацию.
Виртуализация машин
У Сергея Брина (Sergey Brin) и Ларри Пейджа (Larry Page), создателей Google, в 1995 году родилась правильная идея, когда они вечерами рылись в мусорных баках за факультетом компьютерных наук Стэнфордского университете, извлекая из них выброшенные компьютерные запчасти. Они приносили эти запчасти, основанные на архитектуре x86, в свою комнату студенческого общежития, и подключали к машине "Франкенштейн", на которой был размещен легендарный Web-паук, индексировавший всю сеть компьютеров Стэнфорда.
В настоящее время, по некоторым оценкам, Google имеет более 1 миллиона x86-серверов в 12 крупных центрах обработки данных и примерно 20 центрах меньшего размера, расположенных на различных континентах. Это очень большое облако. Масштабирование существа из студенческой комнаты, рожденного в 1995 году, до миллиона серверов современной сети Google стало возможным благодаря двум ключевым факторам дизайна системы. Во-первых, Google по сей день продолжает использовать недорогие x86-компоненты вместо намного более дорогих компонентов корпоративных серверов, применяемых в центрах обработки данных многих компаний. Во-вторых, восстановление после сбоев, резервирование, мониторинг, кластеризация и другие задачи управления инфраструктурой обрабатываются системой виртуализации, работающей под уровнем операционной системы, а не отдельным специализированным оборудованием, таким как распределители нагрузок.
IaaS легко определить, поскольку она обычно не зависит от платформы. IaaS состоит из комбинации ресурсов аппаратного и программного обеспечения. Программное обеспечение IaaS представляет собой низкоуровневый код, выполняющийся независимо от операционной системы и называемый гипервизором, который отвечает за инвентаризацию аппаратных ресурсов и распределение их по требованию (см. рисунок 3). Этот процесс называется организацией пулов ресурсов (resource pooling). Организация пулов ресурсов гипервизором делает возможной виртуализацию, а виртуализация делает возможными вычисления со множественной арендой (multi-tenant) – совместное использование инфраструктуры несколькими организациями со сходными интересами в области требований к защите и соблюдения нормативов.
Рисунок 3. Взаимоотношения
между виртуальными машинами, гипервизором
и компьютером
Благодаря IaaS появляется возможность предоставлять ресурсы процессора, системы хранения данных, сетевые и другие вычислительные ресурсы, на которых можно размещать произвольное программное обеспечение, такое как операционные системы и приложения. Большинство вариантов использования облачных вычислений следует единой фундаментальной многоуровневой структуре, к которой мы уже привыкли: стек программных решений или платформа развернуты на сетевой инфраструктуре, а приложения выполняются на верхнем уровне. Однако виртуализация делает парадигму облака уникальной.
Платформа как сервис.
Концепция "Платформа как сервис" вызывает больше всего разночтений, поскольку ее трудно идентифицировать и отличить от концепций "Инфраструктура как сервис" и "Программное обеспечение как сервис". В этой второй части серии рассказывается о том, что делает PaaS уникальной и как ее можно эффективно использовать в бизнесе.
Определяющим фактором уникальности PaaS является то, что она позволяет разработчикам создавать и развертывать Web-приложения на предлагаемой инфраструктуре. Другими словами, PaaS позволяет воспользоваться практически безграничными вычислительными ресурсами облачной инфраструктуры.
Естественно, безграничные вычислительные ресурсы – это иллюзия, поскольку они ограничены размером инфраструктуры. Однако, как говорилось в первой части данной серии статей, инфраструктура Google, по оценкам, содержит более миллиона компьютеров архитектуры x86. Кроме того, поскольку инфраструктура для PaaS является эластичной (эта тема тоже рассматривалась в первой части), облако может расширяться, предоставляя, при необходимости, еще большие вычислительные ресурсы, так что представление о безграничности не так уж далеко от реальности.
PaaS для разработчиков
Общее заблуждение разработчиков состоит в том, что облачные вычисления касаются только сетевых администраторов. При этом игнорируются многие возможности, которые облачные вычисления предоставляют разработчикам и отделам обеспечения качества.
Рассмотрим некоторые вопросы, которые часто приводят к проблемам в период разработки программного обеспечения. По моему опыту, очень большой проблемой может быть процесс настройки серверной среды, в которой будет размещаться Web-приложение, создаваемое группой разработчиков. Даже на самых крупных предприятиях обычно имеется только один сетевой администратор, обслуживающий все группы разработчиков. Если не использовать PaaS, настройка среды разработки или тестирования обычно требует выполнения следующих действий:
Скорее сетевой администратор уже загружен работой до предела, поэтому развертывание новой среды может представлять собой болезненный процесс. Еще одной большой проблемой для разработчиков Web-приложений (как клиентской, так и серверной части) является дублирование среды времени исполнения на локальном рабочем месте для собственного тестирования.
Теперь представьте, что вы работаете в группе разработчиков, использующей PaaS. В этой ситуации у вас будет виртуальная машина, содержащая полную серверную среду, которую буквально можно переносить на USB-флэшке.
Хочу обратить ваше внимание на перекрестную матрицу концепций, приведенную в первой части данной серии статей. Эта информация также приведена в таблице 1.
Основные компоненты PaaS
<span class="Normal__Char" style=" font-family: 'Times New Roman', 'Arial'; font-size: 1