Александр Буйдов,
директор по информационным технологиям компании "Крок"

В конце прошлого года, на втором ежегодном форуме "IT-ЛИДЕР", технологиям которые отвечают за соответствие возможностей ИТ-решений изменяющимся требованиям бизнеса, была посвящена специальная дискуссия. Предлагаем вам доклад Александра Буйдова, директора по информационным технологиям компании "Крок", а также комментарии Сергея Кирюшина, заместителя генерального директора по информационным технологиям ОАО "Аэрофлот -- Российские авиалинии"

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

Кроме того, гибкостью для нас - это еще и возможность поддерживать определенные параметры работы системы при меняющихся условиях нагрузки. Какие параметры работы? Как правило, это время отклика тех или иных бизнес-приложений. Когда меняется количество пользователей или профиль нагрузки (днем работает больше OLTP-систем, ночью -- аналитических), поддерживать время отклика в допустимых пределах очень важно, даже критично.

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

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

Виртуализация вычислительных ресурсов

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

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

Технологиям виртуализации уже несколько лет. Пионером и лидером рынка виртуализации до недавнего времени была компания VMWare, сейчас поглощенная EMC. Однако, по моему мнению, эти технологии подошли к новому качественному этапу в своем развитии именно сейчас, не только на мировом рынке, но и на российском. Почему? Прежде всего потому, что технологии виртуализации набрали тот уровень зрелости, который позволяет решать очень важные практические задачи. Например, перемещать файловые сервисы с одного сервера на другой, не прерывая их работу для конечного пользователя. Или преодолеть порог масштабирования в один процессор. Сейчас виртуальная машина может масштабироваться до долей процессора. Мы можем делать конфигурации, когда виртуальная машина находится между аппаратным обеспечением и операционной системой. Мы можем делать конфигурацию, когда виртуальная машина выполняется в среде операционной системы, и уже в ней выполняются те или иные приложения.

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

Еще одна причина повлияла на скачок в технологиях виртуализации. Это изменения, которые происходят на уровне микропроцессоров. Некоторое время назад вышли новые процессоры, в которые встроены технологии виртуализации. Концептуально все очень просто. Как известно, разные уровни операционной системы исполняются на разных уровнях привилегий процессора. Суть технологии виртуализации заключается в том, что снова добавляется еще один уровень, в котором исполняется виртуальная машина. Не вдаваясь в технологические детали, можно сказать, что таким образом решены некоторые проблемы с невиртуализированными операциями, существовавшие в ряде операционных систем и приложений.

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

Обеспечивать гибкость становится все сложнее и дороже

Сергей Кирюшин, заместитель генерального директора по информационным технологиям ОАО "Аэрофлот -- Российские авиалинии"

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

Говоря о гибкости, часто говорят о системах терминального доступа. По моему мнению, терминальные технологии не снимают всех проблем, особенно при обеспечении доступа к уже существующим системам, а просто решают локальные задачи. Другое дело, когда терминальные системы используются для оснащения новых рабочих мест. Тогда это экономически выгодное решение.

Виртуализация систем хранения

Следующий важный шаг, который сделан совсем недавно, -- это виртуализация систем хранения данных. Кроме того, после поглощения VMWare в технологию виртуализации включили систему хранения. Ряд производителей -- IBM, Hitachi, BMC -- поступают аналогично. Подход здесь тот же самый: вводится новый уже сетевой слой, который разделяет серверы, осуществляющие доступ к данным и системам хранения. В этом слое появляются новые компоненты, которые берут на себя функцию диспетчера запросов к данным и позволяют абстрагировать от этого уровня прикладную систему. Преимущества примерно те же самые: можно использовать системы разных производителей.

Но есть ряд дополнительных моментов, появляющихся при построении полноценного центра обработки данных. Например, можно переносить какую-то большую базу данных с одного устройства хранения на другое, не прерывая работы прикладных систем. Например, надо переместить базу данных на новую более быструю и надежную систему, но вы не можете себе позволить остановить работу системы на 24 часа и заняться переводом базы. Раньше это было невозможно.

Кроме того, так можно оптимизировать использование ресурсов в различных имеющихся системах хранения, накапливая статистику по их работе. Дополнительный функционал подобных систем, который вы получили, позволяет вам задать параметры оптимизации таким образом, что если есть место на более производительных серверах, то система автоматически переместит данные с менее производительных систем хранения на более производительные.

Терминальные технологии

В клиентском слое для повышения гибкости ИТ-инфраструктуры существуют терминальные технологии. Кроме очевидных преимуществ снижения затрат на обслуживание и безопасности, терминальные технологии позволяют получить необходимую гибкость. Например, в компании может быть законсервировано аппаратное обеспечение рабочего места, но внедрение новых приложений требует усиления мощности на рабочих местах. Или нужно обеспечить работу с приложениями, которые работают под Linux и Windows, на одном рабочем месте.

Особенно интересно выглядит комбинация виртуальных и терминальных технологий. Допустим, удаленный пользователь работает на дому. И можно обеспечить ему терминальный доступ к виртуальным машинам, созданным конкретно для этого пользователя. Это сочетание решает все вопросы: безопасности и позволяет использовать любое аппаратное обеспечение на стороне клиента.

Управление приложениями

Понятно, что с каждым годом доля затрат на аппаратное обеспечение и внедрение сложных комплексных систем, уменьшается. Все больше и больше увеличивается доля затрат на операционные расходы: поддержка приложений, технологические операции, связанные с обслуживанием приложений, работой с ними и т. д. Кроме того, при росте объемов данных и количества пользователей эксплутационные характеристики приложений начинают выходить за допустимые пределы. С этим приходится бороться.
В результате появляется класс программного обеспечения, которое следит за прикладными системами. Оно понимает, какие характеристики критичны для бизнеса и в каких интервалах они должны находиться, как надо менять для этого поведение программного обеспечения. Как только эти характеристики начинают выходить из допустимых пределов, система пытается исправить ситуацию, воздействуя на те или иные элементы инфраструктуры.

Здесь существует два принципиально разных подхода. Один проводится компанией Microsoft, а яркий представитель другого подхода -- IBM. Для решения проблемы Microsoft предлагает выпустить класс программных продуктов, которые внутри будут иметь описание всей ИТ-инфраструктуры, в которой работают. На некотором языке можно будет устанавливать модели работы ПО и управлять инфраструктурой. И центральным элементом здесь станет база конфигурационных данных, которая собирается из той инфраструктуры, с которой она работает. После этого управляющее программное обеспечение приобретает множество "магических" функций, может самоконфигурироваться, самооптимизироваться и т. д. Как компания-разработчик Microsoft начинает все с того, что создает новую систему. Надо сказать, я отношусь к этой идее скептически, потому что такое описание, которое можно в сухом остатке получить, перерыв маркетинговые тома Microsoft, очень сильно упрощено по отношению к практическому воплощению этой идеи.
Что предлагает IBM? Она сдвигает акценты с разработки новой системы в сторону ИТ-инфраструктуры. С точки зрения IBM, если у нас много-много различных серверов, то нам нужно ввести некий интеллектуальный слой программного обеспечения, которое будет понимать профиль загрузки. Если у нас днем запускаются OLTP-системы, то процессорное время, память, дисковые ресурсы будут выделяться приоритетно под эти системы. Если же приоритетное приложение сменилось приложением аналитической обработки данных, то соответственно наше ПО будет отрабатывать это изменение, выделяя на него больше памяти, процессорных ресурсов и так далее.

Важно, что при этом не создается новых продуктов, а те продукты, которые уже есть, достраиваются для решения задачи. Каждый конкретный программный продукт занимается тем, что меряет определенные характеристики на разных уровнях инфраструктуры, уровне промежуточного ПО, приложений, базы данных, системы хранения и т. д. Когда происходит транзакция от пользователя к системе хранения данных и обратно, замеряются определенные параметры. Поэтому если у нас суммарное время отклика выходит за допустимые пределы при росте количества пользователей, то система понимает, в каком конкретно месте находится критический участок, каким способом можно воздействовать на ту инфраструктуру, которая находится в этом слое, чтобы ситуацию исправить. Мне этот подход кажется более реалистичным и конкретным.

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