Недавно аналитики компании Gartner представили свой взгляд на десять наиболее важных, «стратегических" — т. е. способных оказать значительное влияние на предприятия — технологий и тенденций наступившего года (и нескольких последующих лет) в области ИТ. Первой из тенденций названа виртуализация (причем не только серверов, но и хранилищ данных и клиентских компьютеров), а второй — Cloud Computing.

Немного о терминах и о выживании

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

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

ИТ не важны, но вот цена…

Современная ИТ-инфраструктура компаний, по мнению аналитиков, утратила свое влияние на стратегию бизнеса. IT doesn't matter («ИТ не важны») — так известный эксперт Николас Карр озаглавил статью, опубликованную в Harvard Business Review. По его мнению, сегодня затраты на ИТ — не более чем затраты на ведение бизнеса, а конечная профессиональная цель хороших ИТ-директоров должна состоять в том, чтобы «постепенно стать ненужными». При этом ИТ-инфраструктура должна быть настолько надежной и настолько само собой разумеющейся, что больше не будет требовать внимания высшего руководства компании.

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

Если появится возможность получить ИТ-услугу со стороны и дешевле от массового производителя, то многие компании сильно сократят свои внутренние ИТ-департаменты или даже совсем откажутся от их услуг. Последнее время все четче прорисовываются контуры нового порядка вещей в ИТ, где одной из ключевых тенденций становится Cloud Computing.

Как работают облака

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

Пользователь имеет устройство, позволяющее соединяться с Интернетом или провайдером облака. Заглянуть в справочник или в карту, проверить получение важного письма по электронной почте или связаться по VoIP-каналу можно сидя за рулем, или на ходу, или из общественного транспорта. Вопрос лишь в наличии связи с Интернет-провайдером в этой точке пространства. Помните: облака видны с земли? В случае ИТ-облака оно обязано быть видно практически отовсюду.

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

Ба, скажут многие, а чем это отличается от того, что уже есть в Интернете? Ответ прост до безобразия — по существу ничем. Не случайно многие крупные ИТ-специалисты, такие как CEO Oracle Ларри Эллисон, говорят, что Cloud Computing включает в себя все, что делалось и без этого термина, и его появление есть результат «моды».

Немного о виртуализации

Поговорим еще немного о другом давно известном понятии — виртуализации, в последнее время вошедшем в состояние «общепризнанной нужности» (все современные ОС в том или ином виде поддерживают создание виртуальных сред, машин или приложений). Авторы статьи уже рассматривали разные подходы к виртуализации (см, например, "Технология виртуализации ОС на предприятиях", «BYTE/Россия» № 5/2006). Напомним вкратце основные идеи, лежащие в основе виртуализационных технологий.

Обычно, говоря о ПО, рассматривают два уровня виртуализации — виртуализацию оборудования и виртуализацию ОС (рис. 2). Далее в качестве примеров будем ссылаться на программные продукты компании Parallels — Parallels Desktop/Parallels Workstation (виртуальные машины) и Parallels Containers (контейнеры уровня ОС), хотя, естественно, существуют и другие открытые и закрытые решения.

Виртуализация оборудования занимается тем, что предоставляет набор виртуальных процессоров, памяти, сетевых карт, видеокарт, BIOS и т. д., практически полностью эквивалентный такому же набору физического оборудования — "ящику с компьютерным железом". Естественный следующий шаг — установка самой обычной ОС внутрь такого "виртуального ящика" и использование его для предоставления какого-либо сервиса. Виртуальные машины сейчас применяются на предприятиях для консолидации серверов (когда на одном физическом сервере можно разместить несколько виртуальных), а с появлением ПО виртуализации Parallels Desktop — и на клиентских компьютерах пользователей. Например, на ПК, производимых фирмой Apple, они выступают как средство запуска программ Windows (без которых работа большинства корпоративных пользователей, увы, невозможна).

Теперь такие системы предоставляют возможности реальной интеграции нескольких ОС в единое целое, когда пользователь на экране видит окна, принадлежащие виртуальным машинам или основной ОС — фактически его локальному «облаку ОС» (в Parallels Desktop это называется «когерентность»). Виртуализация уровня ОС, в отличие от виртуализации оборудования, позволяет создать на одном физическом компьютере множество контейнеров с однотипным ядром ОС (скажем, только контейнеры с разными версиями ОС Linux или только контейнеры с разными видами ОС Windows). Ее существенные преимущества — возможность достичь высокой «плотности» размещения контейнеров по сравнению с виртуальными машинами, и возможность выделения всех ресурсов компьютера одному контейнеру — скажем, все 128 процессоров основного сервера могут быть использованы одним приложением одного контейнера.

Обе эти технологии имеют свои преимущества и недостатки. Но одно из самых существенных «общих» преимуществ обеих технологий — «отрыв» программ от физического оборудования. Даже для разных физических компьютеров виртуальные машины и контейнеры имеют однотипную конфигурацию, и их можно перенести с одного физического компьютера на другой без остановки сервиса. По этим причинам технологии виртуализации стали широко применяться как на предприятиях, так и для пользователей. И, естественно, эти же технологии, по мнению экспертов, станут основой и для других решений, в частности, для Cloud Computing.

Cloud Computing — выгоды для потребителя и провайдера

В идеале Cloud Computing дает вот что. Пользователь автоматически получает доступ к последним версиям рабочего ПО. Резко сократится количество проблем типа «как мне восстановить свои данные», если отказало «железо» рабочей станции. Данные пользователей будут храниться децентрализованно и с гораздо более высокой надежностью (не надо думать о резервном копировании). Пользователи смогут с легкостью масштабировать свои серверы в зависимости от потребностей — просто несколькими щелчками мыши или вообще автоматически. Собственно, некоторое время назад Amazon окончательно запустил в промышленное производство свой Elastic Compute Cloud (EC2), обладающий именно такими возможностями. Без сомнения, за Amazon последуют и другие провайдеры Cloud Computing . Таким образом, у пользователя отпадет необходимость закладывать в свою ИТ-инфраструктуру ресурсы, обеспечивающие работу при пиковой нагрузке.

Как отмечалось выше, универсальный провайдер Cloud Computing должен обеспечить прежде всего видимость своего облака, малую латентность (задержку в ответе) соединения. Другими немаловажными факторами должны стать масштабирование запросов пользователей, балансировка нагрузки внутри облака и резервирование на уровне центров обработки и хранения данных. Удобными должны быть и средства создания стандартных «комплектов» ПО.

Интересен вопрос: а что же помимо платы может получить провайдер Cloud Computing? Очевидно, он получает некоторый уровень контроля над прикладным ПО пользователя, а значит, проблема пиратского ПО потеряет остроту. Совершенно естественным образом для решения задач балансировки нагрузки провайдер просто будет вынужден собирать огромные объемы различной статистической информации об ИТ-активности своих клиентов — бесценный материал для маркетологов и рекламных агентов. Самым же радикальным и неоднозначным эффектом будет то, что все рабочие данные пользователя будут находиться на носителях провайдера. Иными словами, провайдер Cloud Computing станет основой нервной системы любого бизнеса, его использующего, а сам бизнес попадет в гораздо более сильную, чем ранее, зависимость от провайдера.

Какие опасности встречаются в облаках

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

Есть также потенциальная возможность фактического вытеснения небольших независимых производителей ПО гигантами софтверной индустрии. Действительно, если у пользователя просто не будет практической возможности установить на клиентской машине ПО от стороннего поставщика, это станет приговором для многих малых компаний. Кстати, вы не пробовали создавать ПО для Apple iPhone? Если нет, то после изучения лицензии на его SDK (комплект разработчика программ) вас ждет много новых интересных открытий в области способов ограничения прав пользователей и разработчиков …

Основные типы облаков

Сергей Белоусов, глава компании Parallels, считает, что в скором времени мы столкнемся с пятью основными типами «облаков».

Самым крупным из них станет «облако Google». Google использует все достижения ИТ-отрасли, но при этом не зависит от какого-то одного производителя оборудования или ПО, поскольку хочет полностью контролировать своих пользователей и поставщиков.

Второе крупное «облако» создаст Microsoft. Как и у Google, у софтверного гиганта есть обширные возможности контроля потребителей.

Третий тип «облаков» будет характерен для таких компаний, как IBM, Apple, EMC, HP, Amazon, Facebook, Adobe, которые предложат своим клиентам услуги удаленных вычислений и хранения данных на базе ежемесячной платы.

Четвертый тип «облаков» образуют небольшие независимые разработчики ПО (Independent Software Vendor, ISV) — их обороты, по оценкам г-на Белоусова, в данный момент составляют порядка 15% от мировой ИТ-индустрии.

Пятый тип сформируют внутренние облака больших компаний.

Главная особенность такого ИТ-рынка будущего, по мнению Белоусова, состоит в том, что «если предпосылки для обвинений в тотальном контроле есть, то обвинения будут иметь место. В результате пострадают клиенты, а значит, изменится вся ИТ-экосистема».

Технические аспекты облаков

Уже сейчас большинство решений, связанных с существующими «облаками», прямо или косвенно использует виртуализацию. Она предоставляет возможность «оторваться» от оборудования, получить мобильность сервиса и повысить гибкость использования набора физических серверов — т. е. фактически виртуализация становится ключевым фактором возможного успеха провайдеров Cloud Computing. В качестве примера можно привести сервис, который недавно (после нескольких лет тестирования) перешел в промышленное состояние — сервис компании Amazon EC2 (см. врезку «Организация сервисов Amazon»).

Как отмечают аналитики Gartner, ключевыми характеристиками Cloud Computing в ближайшее время будут:

  • возможность реализации модели SaaS (Software as a Service);
  • доставка сервиса с высокой масштабируемостью и эластичностью;
  • использование технологий Интернета для развития и доставки сервисов;
  • разработка компонентов для доставки услуг внешним (по отношению к облаку) потребителям.

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

Организация сервисов Amazon

Для хранения данных Amazon EC2 использует сервис Amazon Simple Storage Service (AS3), который характеризуется тремя основными понятиями.

Объект (object) — типовая единица хранения; состоит из данных и метаданных, имеет размер от 1 байт до 5 Гбайт. Собственно данные представляют собой бинарный файл и никак не интерпретируются хранилищем, тогда как метаданные представляют собой набор пар имя — значение, описывающих объект.

Емкость (bucket) — совокупность нескольких объектов, имеющая уникальное пространство имен. Пользователь создает емкость и является ее полным обладателем.

Ключ (key) — уникальный идентификатор объекта внутри емкости, один для каждого объекта.

Таким образом, комбинация имени емкости и ключа позволяет обратиться к любому объекту хранилища, например, http://doc.s3.amazonaws.com/2006-03-01/AmazonS3.wsdl, где doc — имя емкости, а 2006-03-01/AmazonS3.wsdl — ключ.

Пользователю предоставляется интерфейс в виде библиотеки на одном из языков программирования (на момент написания статьи поддерживались языки Perl, Php, Ruby, Python, С#, Java), с помощью которого можно создать емкость, загрузить объект, считать его, удалить и составить список объектов емкости.

В собственно EC2 всего два основных понятия. Образ машины Amazon (Amazon Machine Image, AMI) представляет собой зашифрованный файл-образ виртуальной машины, хранящийся в S3. Он содержит абсолютно все данные, нужные для старта экземпляра машины.

Экземпляр (instance) — запущенная виртуальная машина, использующая какой-либо AMI. Для одного образа машины может существовать несколько запущенных виртуальных машин, работающих, естественно, одинаковым образом. Пользователь должен позаботиться о сохранении своих полезных данных сам, в процессе работы машины (например, в том же S3).

Чтобы начать работу с EC2, пользователь должен:

  • создать где-либо AMI, который включает в себя обычную ОС, настройки, прикладные программы и т. д.;
  • загрузить AMI в S3;
  • зарегистрировать AMI в EC2 и получить соответствующий идентификатор;
  • использовать идентификатор для запуска экземпляров машин, управлять ими, останавливать и т. д.;
  • получить и оплатить счет за использованное машинное время и сетевой трафик.

Недавно об аналогичном продукте заявил и один из крупнейших в мире поставщиков услуг хостинга — провайдер rackspace.

А послезавтра будет облачно?

Метеопрогнозы — занятие неблагодарное, но тем не менее мы рискнем. Скорее всего послезавтра будет именно облачно, и технологии «облаков» шагнут заметно дальше крупных провайдеров. Итак, сценарий «облачного далека», когда облака спустятся на землю.

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

А теперь представьте себе, что вы побывали с ребенком в зоопарке, сделали сотни мегабайт снимков и анимационных роликов. Вы приехали домой, просто положили свой фотоаппарат на стол, и он начал перекачивать вашу добычу в хранилище данных через беспроводное соединение (рис. 3).

Медиацентр подключился к обработке информации, проводя стандартную цифровую обработку изображений с учетом метеоданных в точке съемки, загруженных из облака провайдера, индексируя фотографии по метаинформации из снимков, например, по GPS-координатам и направлению объектива фотоаппарата или по RFID-подобной метке вольера с животными, около которых были сделаны снимки….. Однако, не дойдя до обработки видеоролика, где ваш ребенок развлекается на недавно установленном в парке аттракционе, ПО медиацентра пришло к выводу, что для адекватной индексации очередного снимка нужна система распознавания образов, которая была запрошена у облака провайдера (рис 3, ВМ провайдера). Данные в любой стадии обработки доступны через домашний Web-сайт, чтобы отсутствующие сейчас в городе члены вашей семьи могли просмотреть свежий видео- и фотоотчет (рис. 4).

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