Могущество идей виртуализации поистине безгранично. Более того, со временим ценность и результативность такого подхода становятся все очевиднее. Пожалуй, первым серьезным приложением, в котором нашли применение идеи виртуализации, были базы данных. Величайшее наследие, оставленное доктором Эдгаром Ф. Коддом, - реляционная модель.
Судите сами. В начале 1980-х годов клиентский спрос вызвал невероятно быстрый рост рынка реляционных баз данных, что привело к бешеной лихорадке выпуска программных продуктов, которые обеспечивали соответствие (по крайней мере на словах) бизнес-требованиям по скорости, доступности, надежности и доступу к данным. Эти продукты должны были стыковаться с существующими операционными средами, а также с традиционными знаниями и опытом ИТ-менеджеров, разработчиков и программистов, большинство которых привыкли работать с мейнфреймами. Затем, начиная с середины 1980-х годов и вплоть до середины 1990-х, реляционные базы данных развивались вместе с развитием компьютеров средней мощности, а затем и клиент-серверной модели, когда новые типы клиентов информационных технологий стали предъявлять значительно изменившиеся по сравнению с пользователями мейнфреймов требования к технологиям и продуктам.
Но каким-то загадочным образом, несмотря на все эти изменения, могущество реляционной идеи не угасало. Напротив, ее потенциал еще больше раскрылся с появлением распределенной компьютерной модели. "Ошеломляюще оригинальная работа, которая обеспечила твердую почву для всей области баз данных, - так отозвался о работе Крис Дейт, один из сотрудников исследовательского центра IBM Almaden в Сан-Хосе и соратник Кодда. - Все мы испытываем к нему глубочайшую признательность. Он заложил фундамент технологии, которая имела и продолжает иметь невероятное социальное значение".
Работа Кодда позволила системам управления базами данных стать первой процветающей индустрией приложений. Конечно, сама по себе реляционная модель включала гораздо больше новых идей. Однако с позиций сегодняшнего дня видно, что главное открытие Кодда - демонстрация того, как физический и логический уровни в системах могут отделяться друг от друга, в результате чего и тот и другой открываются для реализации инноваций.
Суть программной инновации
Сегодня виртуализация является одной из ключевых концепций, не только в базах данных, но и в большинстве современных приложений. Идея перемещения вверх уровня абстракции, охватывающего различия между отдельными элементами, которые вы хотите воспринимать как совокупность, во многих отношениях является самой сутью программной инновации. Самый яркий пример в области ПО - это Java, с идеей виртуализации уровня исполнения приложений. На идее виртуализации различных процессов во многом строятся современные бизнес-приложения, ERP-системы и т. д.
Да и в той же области управления данными виртуализация сегодня только наращивает обороты, стремясь решить главную проблему, связанную с быстрым развитием баз данных: наличие множества разнородных систем, которое затрудняет для компаний задачу извлечения полной ценности из своих информационных ресурсов. Виртуальный подход возглавляет все та же IBM, разработавшая федеративный подход к организации хранения данных, в рамках которого данные остаются там, где они есть, а вместо этого внимание фокусируется на глобальном, оптимизированном доступе к данным и функциях запросов. Что это, как не виртуализация уровня хранения данных? Федеративный подход имеет большое значение для объединения разнородные источники данных, включая неструктурированный контент. Акцент на бизнес-процессах может еще более скрыть значение базовых структур управления базами данных и скорее всего поднимет виртуализацию еще на один уровень абстракции вверх.
Более того, идеи виртуализации переходят из области чисто технической в область собственно бизнес-процессов. Например, в новых PLM-приложениях существует возможность создать до последнего винтика модель автомобиля, модели сборочных устройств и заводского конвейера, которые работают специально с алгоритмами моделирования их движения. Эти модели обладают кинематикой и динамикой реальных систем. С использованием таких технологий можно сначала построить сборочный конвейер внутри компьютера, собрать автомобиль внутри его, проверить технологические параметры, стоимость, прежде чем в реальности делать какую-либо оснастку. В результате такого подхода сами процессы производства могут становиться виртуальными. Сотрудники, находящиеся в разных концах Земли, дизайнеры в России, основное производство в Америке - и это уже не единичные случаи.
Гибкое "железо"
Идеи виртуализации дали бурные ростки и в области архитектуры собственно вычислительных систем. Так, распространение кластеризации есть не что иное, как появление нового уровня виртуализации. Заметим, что хоть идея кластеризации совсем не может считаться свежей, в последнее время интерес к таким технологиям только возрастает. Достаточно вспомнить Oracle, представившую Real Application Clusters (RAC), новый уровень виртуализации управления данными.
Другой совсем свежий пример - виртуализация ПК. Технология виртуализации ПК позволяет пользователям одновременно работать с различными операционными системами на одном физическом ПК. Зародившись лет пять назад, в последнее время идея виртуализации ПК пробила себе дорогу. Сегодня Intel и Microsoft активно работают в области встраивания аппаратной поддержки виртуализации в микропроцессоры и разработке программ виртуализации. Виртуализация ПК позволяет сделать оборудование и программы для ПК абсолютно автономными друг от друга. В результате этого все ПК будут выглядеть одинаково для корпоративных приложений, независимо от того, кем они были произведены и какая операционная система на них работает.
Одним из самых последних достижений в области виртуализации является идея динамичного использования такого количества блейд-серверов из всего их существующего набора, который необходим для вычислений. Приложения также могут легко отключаться от блейд-систем, когда они им больше не нужны. И при этом данные не теряются и не переконфигурируются, прежде чем быть изъятыми из блейд-систем. Хорошо известная концепция адаптивной инфраструктуры, которую продвигает HP, основывается, по сути, на том же подходе - гибкость оборудования достигается за счет повышения уровня виртуализации и использования этого подхода на разных уровнях информационной системы.
Grid - также очевидное движение в сторону повышения уровня абстрактности и виртуализации. "Больше не потребуется проводить статическое тестирование, для того чтобы узнать, где физически расположены данные в базе данных или на базе какого именно сервера база данных работает, - пишет Брайеш Гойал в официальном документе, опубликованном на Web-сайте Oracle. - Виртуализация позволяет каждому компоненту grid-системы реагировать на изменения ситуации быстрее и приспосабливаться к сбоям отдельных компонентов без падения производительности системы в целом". Это только маленький пример, демонстрирующий, насколько grid и виртуализация неотделимы друг от друга. Grid-технологии для разных людей означают разные вещи. И вендоры по-разному используют эту концепцию на пользу себе. И, возможно, в будущем реализации grid-систем будут существенно отличаться от тех, которые мы себе представляем сегодня (см. статью "Grid: вести из исследовательских лабораторий" в этом номере). Одно остается неизменным - идеи виртуализации.
Коммунальные компьютерные технологии (utility computing или технологии "on-demand", если использовать термин IBM), переносят виртуализацию на еще более высокий уровень. Сами вычисления становятся виртуальными. Так, например, можно использовать разницу во времени: когда в России ночь - в Канаде день. Вместо того чтобы использовать ночных операторов в call-центре в России, можно использовать канадский персонал. Переключение при этом происходит автоматически, и пользователь даже может не знать, с кем общается (при условии, конечно, языковой идентичности этих центров).
Концептуальные ИТ-архитектуры будущего смогут лишь вскользь касаться физических уровней, их поддердивающих. Эти физические уровни смогут меняться свободно, как перчатки, без всяких проблем для арендаторов этих вычислений. В определенном смысле здесь идея виртуализации доводится до своего логического конца - для заказчика коммунальных вычислений виртуальным является все, кроме конкретных результатов своего задания.
***
В общем, виртуализация везде, виртуализация процветает на всех уровнях. И практически не видно равноценной ей столь же общей концепции. Впрочем, я бы не стал абсолютизировать виртуализацию. Это, несомненно, одна из самых гениальных идей человечества. Однако история показывает, что у всех концепций есть время жизни.