Дмитрий Коротаев
Вот уже два месяца как прошла
очередная знаковая конференция Microsoft «Платформа 2009». В этом году она была юбилейной, десятой по
счету. Отгремели фанфары, на сайте выложены
все доклады конференции, и пришло время осмыслить, что же все-таки может
вынести с Платформы ИТ-бизнес?
По результатам посещения лично для
себя я выделил следующие тренды, на которых Microsoft делает акцент. Это:
● виртуализация
и ее практическое использование,
● облачные
вычисления (cloud computing),
● концепция
Software + Services и платформы для ее
реализации.
Естественно,
такое мероприятие не могло обойти стороной сложную
экономическую ситуацию, которая
возникла в мире. Поэтому акценты во многих докладах сменились именно в сторону «А
как же ИТ может помочь бизнесу в условиях кризиса? Что же предлагает Microsoft, на что делает
ставки?»
Виртуализация
О виртуализации в последнее время не писал только ленивый
(хотя сейчас силу набирает другая тема – облачные вычисления, о которых – ниже).
Не буду сильно углубляться в технические подробности (о них можно почитать,
например, в статье TechNet Magazine,
на сайте Microsoft
также есть отдельный раздел,
посвященный проблемам виртуализации). В новой версии Hyper-V, которая войдет в Windows Server 2008 R2, основной упор сделан на
энергосберегающие технологии и на высокую отказоустойчивость и масштабируемость
виртуальных машин.
Например, будет доступна такая возможность, как «горячая»
миграция виртуальных машин с одного физического хоста на другой. При этой
миграции сохраняются все открытые TCP/IP-соединения
к виртуальной машине. Принцип переноса достаточно прост. Сначала переносятся
конфигурация виртуальной машины (ВМ). Потом переносятся фрагменты ОЗУ. При этом
в первый проход они переносятся по порядку, а в следующие разы – только
изменившиеся области памяти. Когда память полностью перенесена, ВМ сохраняет
свое состояние, и оно переносится на другой хост, где и успешно запускается.
Подобная возможность позволяет реализовать более
динамические сценарии для управления ЦОД, что активно используется в тех же
самых облачных вычислениях. И вообще, как мы ниже увидим, виртуализация – один
из «китов» других основных трендов Платформы.
Другая интересная «фишка» нового Hyper-V – улучшенное управление электропитанием и процессом перехода
процессора в режим пониженного энергопотребления. Здесь знатокам что-то могут
сказать такие термины, как Парковка ядра
и Коалесцирующий таймер (часть
пленарного доклада, посвященную виртуализации, вел Марк Руссинович, известный
технический эксперт и член технического совета Microsoft Corp.). Лично для себя я вынес, что это – интересные находки для
улучшения управления питанием процессоров. Сюда же можно отнести такую
технологию, как SLAT (Second LevelAddressTranslation) – улучшенное управление
адресацией памяти, что позволяет снизить нагрузку на процессор.
Некий ажиотаж во время пленарного доклада в зале вызвала
демонстрация технологии Kidaro.
По сути, Kidaro – это
возможность удобного доступа к различным приложениям, которые реально
установлены на разных виртуальных машинах.
У пользователя на рабочем столе как обычно – ярлыки
приложений. Он их запускает и работает в нормальном окне, характерном для этого
приложения. И при этом даже не подозревает о том, что физически приложение
работает не у него на локальном компьютере, а на некой виртуальной машине,
которая хранится и работает в недрах сети компании. Основные сценарии, которые Microsoft выделил
для этой технологии, это:
● быстрое
воспроизведение корпоративных настроек на любом ПК;
● миграция
на Vista с сохранением работоспособности старых приложений;
● реализация
корпоративных настроек на сторонних ПК (контрактники, оффшоры и т.п.);
● контроль
доступа к VirtualPC;
●
увеличение эффективности службы поддержки.
Облачные вычисления (cloudcomputing)
Облачные
вычисления – новое веяние современного ИТ-мира. В рамках мировых тенденций Microsoft выпускает
новую платформу – Microsoft Azure. Помимо Microsoft на
этом рынке есть решения от таких
компаний, как Google (AppEngine),
Amazon (S3) и Force.com (SimpleDB). Однако они (по словам независимого эксперта Дэвида
Чеппеля/David Chappel), реализуют лишь части
инфраструктуры, которая понимается под облачными
вычислениями. И только у Microsoft есть все элементы.
Что же представляет собой Azure? Для особо интересующихся сразу
предлагаю ссылку на статью Дэвида Чепелля - Introducing the Azure
Services Platform. Для всех остальных, Azure – это совокупность
собственно платформы Windows Azure и
многочисленных сервисов, которые предоставляет Microsoft (работает это все
на серверах Microsoft):

Платформа WindowsAzure,
в свою очередь, состоит из:
● фабрики
(Fabric), которая управляет
приложениями, работающими в облаке,
● механизмом
хранения данных (storage),
● конфигурацией
приложения.

Фабрика управляет работой различных приложений (нужно
отметить, что они размещаются в рамках отдельных виртуальных машин), а также
обеспечивает инфраструктуру для выполнения общих задач, например, логирования.
Стоит отметить, что одновременно в Azure может работать несколько
экземпляров одного и того же приложения (т.е. потенциально бесконечная
масштабируемость), что накладывает серьезные ограничения на прикладное ПО (в
некотором роде похоже на разработку многопотоковых приложений, но только в
некотором роде). Именно такие задачи и решает фабрика.
Механизмы хранения в Azure представлены пока в трех видах –
это Tables, BLOBs и Queries. Tables – это не реляционные таблицы (как
в SQL), а иерархические,
что приводит к существенным ограничениям по работе с данными в Azure (например,
без сложных выборок и мощи Т-SQL).
Microsoft сознательно пошла на этот шаг по одной простой причине –
иерархические таблицы намного легче масштабируются по разным серверам.
Сейчас в Azure можно хостить только .NET-приложения. В дальнейшем планируется добавить поддержку native-кода.
Microsoft позиционирует Azure как идеальную площадку для размещения стартапов. Две
основные проблемы стратапов – это высокий риск неудачи и лавинообразный рост
нагрузки в случае удачи. Первая проблема решается тем, что сейчас хостинг в WindowsAzure бесплатный.
Вторая проблема решается самой идеологией облачных вычислений: потенциально
бесконечный запас масштабируемости.
Software + Services
Много, много было сказано на Платформе
по этой концепции, которую двигает Microsoft вместо всем набившей оскомину
аббревиатуры SOA. И двигал ее не кто-нибудь, а
такой гуру как Дэвид Чеппел. Дэвид
позиционируется как независимый эксперт, что не мешает ему присутствовать на
Платформе уже второй раз подряд.
Итак, по мнению Дэвида SOA – это идиллия для программистов. Почему? Потенциально,
что может дать SOA:
● более
простое создание приложений с множеством точек доступа (браузер, мобильные
устройства, desktop-приложения);
● более
быстрое создание новых приложений за счет использования существующих, ранее
разработанных сервисов;
● больше
возможностей по изменению связей между компонентами системы, что позволяет
сделать бизнес-приложения более гибкими.
Однако реальность и потребности бизнеса вносят свои
коррективы в идиллию SOA,
а точнее:
● создание
SOA-ориентированных
систем является более затратным по сравнению с традиционной n-звенной архитектурой и дает отдачу в
более длительной перспективе;
● к
сервисам, которые разрабатываются для повторного использования, предъявляются
повышенные требования по масштабируемости, безопасности и быстродействию;
● сложный
выбор нужного сервиса при разработке нового приложения – как разработчик может
предугадать, что какая функциональность понадобиться пользователю в будущем;
● соответственно,
повторное использование сервисов затрудненно.
В чем же Microsoft видит выход? Это - концепция Software + Services (S+S). Особенно, когда она дополнена облачными вычислениями
в Azure, новой версией Worflow 4.0, Dublin и другими технологиями.
Более подробно ознакомиться с видением Дэвида по этому вопросу можно в его
официальном блоге.
Для интересующихся техническими подробностями новых технологий, используемых в
рамках S+S, рекомендую почитать статью
A First Look at WF 4.0, “Dublin”,
and “Oslo”.
Кризис – ответMicrosoft
Сложная
экономическая ситуация оказала существенное влияние на программу
конференции, по крайней мере, расставила некие акценты. По большому счету все
основные темы конференции были преподаны с точки зрения оптимизации бизнеса.
Напомню их еще раз:
● виртуализация
как путь к уменьшению затрат на электричество и инфраструктуру поддержки
серверов компании, а также более рациональное их использование;
● Azure как
один из дешевых способов повысить масштабируемость и быстродействие приложений;
● новые
технологии (WF 4.0, Dublin, WF и WCF, LiveServices, .NETServices) как способ быстрее,
качественнее и дешевле создавать новые приложения, нужные пользователям.
Все, кто хочет более подробно узнать о том, что еще было
интересного на конференции, добро пожаловать на официальный сайт.