Шаблоны приложений для «зеленых» ИТ

Дэн Роджерс (Dan Rogers)

Ульрих Хоманн (Ulrich Homann)

Краткое содержание.

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

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

Содержание

В чем заключается проблема

Теория ограничений

Вызовы и реалии

Какие ограничения следует оптимизировать?

Комментарии к моделям затрат на электроэнергию

Тактика

Архитектура и проектирование на основе единиц масштаба

Виртуализация

Перспективы на будущее

Инвестиции Microsoft в System Center

Заключение

Ресурсы

В чем заключается проблема

Многие компании по всему миру уже столкнулись с жесткими ограничениями на объем электроэнергии, которую они могут себе позволить – или которую им разрешено – потреблять; для остальных предприятий – это перспектива недалекого будущего. На рисунке 1 показано, что на управление и администрирование серверов приходится большая часть расходов центра обработки данных. Мы будем рассматривать этот фактор в качестве ограничивающего рост центра обработки данных. Однако если ввести лимиты на потребление электроэнергии, то они превратятся в ограничения дальнейшего роста; именно это показано на диаграмме, отражающей результаты исследования (на рисунке справа).

Рис. 1. Затраты в центре обработки данных (щелкните рисунок, чтобы увеличить изображение)

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

Теория ограничений

Подходящей отправной точкой является «Теория ограничений» (Theory of Constraints, TOC) доктора Голдратта (Dr. Goldratt), знакомая многим читателям. TOC утверждает, что подход, связанный с выявлением и устранением ограничений (или взаимозави­симостей) на уровне системы, является более эффективным, чем попытки оптимизации каждой отдельной подсистемы. ТОС возникла в сфере управления производством и затем была расширена; обобщенная теория применима и к концепции «зеленых» ИТ. Наиболее актуальный принцип TOC – оптимизация пропускной способности. Согласно этому подходу, можно достичь максимальной производительности за счет контролирования узких мест в системе, то есть путем их оптимизации таким образом, чтобы обеспечить максимально возможную пропускную способность имеющихся ресурсов. В случае с ИТ ограничениями являются компоненты инфраструктуры – серверы, образы, виртуальные машины, память, пропускная способность и т. д. Эти компоненты влияют на скорость получения ценных для бизнеса результатов.

Вызовы и реалии

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

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

Ожидаемый «успех» с точки зрения использования приложения как принцип проектирования.Большинство современных решений разрабатывается с учетом гипоте­тического конечного состояния, а не как органичная система, расширяемая по мере необходимости. Например, компания со 150 000 пользователей может развернуть решение SharePoint с 50 ГБ дискового пространства для каждого пользователя. В процессе планирования структуры, производительности и подхода к развертыванию решения специалисты ориентируются на «успех». В данном случае это предполагает немедленную доступность 50 ГБ дискового пространства для каждого пользователя.

На рисунке 2 показан типичный профиль нагрузки, характеризующий предполагаемое использование развернутого приложения или решения; нагрузка увеличивается в течение двух лет. Запасы мощности обнадеживают, однако они, как правило, бесполезны: ресурсы – электроэнергия, пространство для хранения данных и т. д. – выделяются с учетом пикового потребления в ходе развертывания решения, вместо того чтобы обеспечить распределение «точно в срок» (последнее гарантировало бы экономию дефицитных ресурсов и способствовало бы снижению затрат).

Рисунок 2. Профиль нагрузки для развернутого решения (щелкните рисунок, чтобы увеличить изображение).

Что нужно? Когда это нужно?В середине 90-х годов ИТ-подразделение корпорации Microsoft использовало HR-приложение совместно с отдельным решением для расчета заработной платы; для этого требовалось значительное количество серверов, которые работали всего два дня в месяц, а все остальное время простаивали. Менеджеры по бережливому производству обращали внимание на эту проблему, однако ИТ-персонал не мог предложить подходящий вариант использования систем для решения других задач. Учитывая тот факт, что все любят получать зарплату, ИТ-специалисты каждый раз успешно отстаивали свою позицию. Сегодня все изменилось. Вариант «Мы развернем еще один компьютер или центр обработки данных» уже никого не устраивает. Теперь в порядке вещей подход «Мы сделаем все возможное, чтобы свести к минимуму потребление ресурсов». С этой целью необходимо проанализировать динамику потребления доступных мощностей и ответить на вопросы «Что требуется?» и «Когда это требуется?».

Проектирование «по наитию» (Seat Of Your Pants, SOYP). Использование подхода SOYP в процессе планирования – верный способ получить неэффективную систему. Но сегодня даже крупные проекты зачастую основываются на предположениях и расплывчатой информации о потребности в ресурсах. Комбинация входных факторов, как правило, приводит к разработке решения, ориентированного на пиковую нагрузку плюс n % [20 % < n < 50 %]. Алгоритм, который используется для планирования сроков реализации проекта, применяется и к производительности решений, потому что никто не хочет быть «слабым звеном» – единственным человеком, который портит весь проект из-за своей неверной оценки.

Подход к проектированию решений «ремень и подтяжки» (Belt-and-Suspenders).Книги по клиент-серверным технологиям учили нас быть максимально осторожными. Наши системные решения были не столь надежны, как требовалось, поэтому мы двигались долгим путем, чтобы избежать рисков, раскрытия конфиденциальной информации или уязвимостей: если пояс порвется, подтяжки по-прежнему будут поддерживать штаны. В процессе разработки приложений мы привлекали партнеров по решениям и инфраструктурам, которые предоставляли несколько методов устранения любой из возможных неисправностей. Выражение «единственная точка отказа» стало оправданием для бесчисленных ненужных расходов: три веб-сервера там, где хватило бы двух, две подсистемы балансировки нагрузки просто потому, что одна из них может однажды выйти из строя, две базы данных в рамках кластеризованных избыточных сетей хранения данных (storage area networks, SAN) и т. д.

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

Какие ограничения следует оптимизировать?

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

Рисунок 3. Вне зависимости от того, включены серверы или нет, они потребляют ценные ресурсы

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

Комментарии к моделям затрат на электроэнергию

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

Тактика

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

Измерения, измерения, измерения

Возможности для сбора и анализа данных о поведении систем и их компонентов отсутствуют, поэтому меры, направленные на оптимизацию, приходится строить на пред­положениях. Следующие рекомендации взяты из внутреннего документа Microsoft, разработанного Джеймсом Гамильтоном (James Hamilton): в нем автор обобщил уроки, извлеченные из наших крупномасштабных интернет-проектов.

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

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

Полезный инструмент присутствует в библиотеке Enterprise Library – это блок для прило­жений, отвечающих за ведение журнала; он подготовлен группой специалистов по шабло­нам и практикам корпорации Microsoft. Этот блок, в частности, защищает ваши инвестиции в разработку инструментальных средств.

Композиционные модели

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

Один из методов проверки мы определили ранее – это подход «что требуется и когда». Эта проблема важна с точки зрения как программного кода, так и оборудования. Код, компоненты и модули приложения могут быть развернуты и будут потреблять ресурсы, несмотря на то что необходимость в них возникает лишь изредка, а иногда они вообще не нужны. Даже системы, которые отлично подходят для секционирования, часто выполняются как монолиты. Такой подход влечет за собой наименьший риск с точки зрения доступности, но при этом разработчик делает опасное предположение о том, что ресурсы неограниченны. Известны подходы и методы композиции и фактори­зации, которые помогают создать дружественные для ресурсов структуры и при этом удовлетворить потребности пользователей.

Детализация

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

В Windows Server 2008 реализована именно эта модель. На рисунке 4 показана таксономия, которую использовала команда разработчиков ОС Windows Server при реализации подхода, позволяющего оптимизировать системы клиентов с учетом специфических ограничений.

Рисунок 4. Композиция и зависимости для одного сервера или рабочей нагрузки (щелкните рисунок, чтобы увеличить изображение)

Windows Server Manager использует роли для развертывания функций и управления ими. Масштаб развертывания регулируется на уровне функций и ролей, которые теперь не имеют тесной взаимосвязи друг с другом в рамках избыточных структур, таких как рабочие нагрузки, решения или продукты (компоненты Windows Server невидимы). Все приложения Windows, которые входят в релиз Windows Server 2008, соответствуют этой таксономии. Другие продукты Microsoft, например Exchange 2007, придерживаются аналогичного подхода к факторизации на основе ролей.

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

Зависимости

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

Таксономия, представленная на рисунке 4, описывает композицию и зависимости для одного сервера или рабочей нагрузки. Большинство решений в современных центрах обработки данных являются распределенными и включают несколько уровней. На рисунке 5 мы увеличили размерность модели, что позволяет описать зависимости между серверами и уровнями. Сервер/рабочая нагрузка и роль сервера такие же, как в таксономии Windows Server на рисунке 4, что дает возможность легко соединить модели.

Рисунок 5. Размерность модели распределенного приложения

  • Приложение: логическое представление развертываемых приложений или функ­циональных возможностей. Физически приложения предоставляют конечные точки определенного типа – HTTP/HTTPS, TCP/IP и т. д. Приложения иногда выражают зависимости от других приложений, например, для работы с SharePoint требуется SQL Server и Active Directory.
  • Узел: представляет собой развертывание функциональности в центре обработки данных или помещении центра обработки данных. Приложение может быть связано с множеством узлов.
  • Группа серверов: серверы с общими признаками, такими как высокая доступность (балансировка сетевой нагрузки или отказоустойчивый кластер). Приложение может иметь любое количество групп серверов, это помогает выразить уровни в рамках узла.

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

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

Архитектура и проектирование на основе единиц масштаба

Ранее мы обсуждали проблему систем, которые разрабатываются с нацеленностью на «успех» – гипотетическое максимальное количество пользователей. Если вы разраба­тываете приложение, изначально готовое обслуживать каждого пользователя, который появится в будущем, – это верный путь к перерасходу ресурсов. Избыточная система повышает риск возникновения точки отказа, ее использование нецелесообразно с финан­совой точки зрения с самого начала.

Простой пример: вы не можете купить устройство для балансировки нагрузки, которое поддерживает динамическое масштабирование. Все подобные инструменты предостав­ляют фиксированное количество портов. Производительность физического оборудования становится лимитирующим фактором для расширения, этот фактор имеет огромное влияние на стоимость. Можно приобрести устройство для балансировки нагрузки с 500 портами. Однако если вам потребуется только 100 портов в первый год, то такая избыточность сведет на нет экономию от покупки более производительного оборудования. Вы не можете построить стену из одного огромного кирпича, аналогичным образом не стоит развертывать ИТ, ориентируясь на максимальную мощность.

Для интеллектуального масштабирования необходимо использовать подход, основанный на единицах масштаба. Единицы масштаба инициируют «управляемый рост», основанный на четко определенных «факторах роста». Сочетание такого подхода с инструментирова­нием и композицией/факторизацией, описанными ранее, позволяет разворачивать функциональность точно в срок, согласовывать использование ресурсов с фактическими потребностями пользователей без ущерба для архитектуры. Такой подход практикуется в рамках крупных интернет-проектов.

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

Факторы роста, как правило, скрыты в документах о планировании мощностей для каждого конкретного продукта. Например, в руководстве по планированию Microsoft SharePoint Server говорится, что планировать ресурсы (серверы, системы хранения, пропускную способность и т. д.) нужно в зависимости от количества и размеров сайтов SharePoint, требуемого количества откликов в секунду и ожидаемого числа активных пользователей. Аналогичные факторы роста используются и для SharePoint Server. В рамках модели «успех как принцип проектирования» прогнозируемая мощность, как правило, сопоставляется с архитектурой, а затем эти предположения определяют запросы ресурсов и развертывание. Наша задача: мы не хотим ориентироваться на «успех» в процессе развертывания. Мы стремимся осуществлять развертывание точно в срок и использовать ресурсы максимально эффективно.

Процесс проектирования довольно прост:

  1. Проектируйте развертывание решения с учетом имеющихся данных о планирова­нии мощностей.
  2. Определите факторы роста для решения. В идеале эту информацию предоставляет поставщик программного обеспечения или группа разработчиков. В противном случае вы можете проанализировать руководство по планированию и определить, какие изменения в архитектуре решения вызывает масштабирование (обычно затрагивается пользовательский трафик, обработка запросов, «статические» эле­менты, такие как веб-сайты, контент веб-сайтов и т. д.).
  3. Определите подходящие единицы масштаба для каждого обозначенного фактора роста. Если это ваш первый опыт развертывания с учетом единиц масштаба, начните с одного-двух факторов роста.
  4. Разделите свой проект на секции с учетом выявленных единиц масштаба.
  5. Убедитесь в полной работоспособности первоначального развертывания, а также в том, что добавляемые в дальнейшем единицы масштаба не нарушают нормальное функционирование систем.
  6. Разверните решение, включающее только исходную единицу масштаба.

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

Пример

Приведем пример использования SharePoint. Давайте рассмотрим вымышленное развер­тывание SharePoint Server в столь любимой нами производственной компании Contoso. Желаемого конечного состояния компания достигнет в 2010 г., когда бизнес-под­разделения по всему миру завершат внедрение решения. Единицы масштаба и факторы роста для решения приведены в таблице 1.

Таблица 1. Единицы масштаба и факторы роста для примера развертывания SharePoint

Фактор роста Единица масштаба
Количество активных пользователей влияет на требуемое число откликов в секунду Сервер приложения SharePoint
Ограничение в 1 ТБ на размер всех баз данных контента для одного экземпляра SQL Server Экземпляр SQL Server

На рисунке 6 показаны единицы масштаба, которые влияют на увеличение развертывания с учетом факторов роста, указанных в таблице 1, а также на возможное максимальное развертывание.

Рисунок 6. Рост на базе единиц масштаба (щелкните рисунок, чтобы увеличить изображение)

Решение изначально развернуто как комплексное с двумя экземплярами сервера приложений SharePoint и одним экземпляром SQL Server. Казалось бы, на графике показано последовательное срабатывание, факторы роста являются независимыми друг от друга, однако развертывание одной единицы масштаба может повлиять на некоторые аспекты развернутого решения.

Обобщение

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

Посмотрите на шкалу «Использованные единицы обслуживания», представленную в виде красной линии в правой части графика на рисунке 3. В начальный момент времени Т0 центр обработки данных был построен, но его мощность не используется. Мы начинаем потреблять ресурсы, имеющиеся в центрах обработки данных, и через некоторое время спрос превышает предложение. Область ниже фиолетовой линии – задействованная мощность, выше фиолетовой линии – незадействованная мощность. Эффективное управ­ление неиспользуемыми мощностями обеспечивает реальную экономию электроэнергии.

Виртуализация

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

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

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

Перспективы на будущее

Хранение и переадресация, постановка в очередь и возобновление

Архитекторы должны проектировать приложения, составные части которых функци­онируют независимо друг от друга, поддерживая обмен данными и обеспечивая требуемый результат. Возвратимся к примеру с системой начисления заработной платы, которая работает только два дня в месяц: наша задача состоит в том, чтобы найти вариант использования этих ресурсов в течение остальных 28 дней. Вместо того чтобы конфи­гурировать программное обеспечение на фиксированном оборудовании, нужно раз­работать приложения, которые могут храниться на виртуальных «полках» в виде отдельных частей, готовых к активации в различных сочетаниях точно в срок.

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

Рисунок 7. Упрощенный профиль нагрузки в течение 24 часов

Управление портфелем

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

Инвестиции Microsoft в System Center

Так же, как мы начали разделять операционную систему на компоненты, корпорация Microsoft реализует стратегии в сфере мониторинга, распространения программного обеспечения, диагностики проблем и виртуализации. Семейство продуктов Microsoft System Center – одна из ключевых инвестиций в инструменты управления, средства управления инфраструктурой и автоматизации операций. Приложения Microsoft Operations Manager, Virtual Machine Manager и Configuration Manager находятся на пути к слиянию и предоставляют динамичную и гибкую систему управления, которая необходима для эффективного использования ресурсов. В будущем ожидается быстрое схождение всех возможностей в рамках комплексных решений для управления системой, которые позволят клиентам оптимизировать инфраструктуру и достигать большего, используя меньше ресурсов – будь то площадь помещения, производительность системы охлаждения или вычислительная мощность.

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

Пакеты управления станут ключевым компонентом управления для каждой секции – элемента системы. Архитектура пакета управления проста – это XML-файл, который соответствует определенному набору схем. Данный подход весьма эффективен, поскольку файл содержит метаданные, описывающие состояние и работоспособность факторизован­ных компонентов. То, что работает для больших синхронных приложений, подходит идля факторизованных. В действительности лучшие из современных пакетов управ­ления – например, для Windows Server 2008, SharePoint и приложений Dynamics – изначально имели несколько слоев и состояли из отдельных компонентов.

System Center развивается, и пакеты управления станут ключевыми составляющими бизнес-приложений и инфраструктуры, базовыми элементами в стеке. System Center уже умеет отслеживать состояние и работоспособность серверов под управлением Linux и Unix, поэтому сейчас закладывается фундамент для революционных изменений с точки зрения гибкости приложений. Предприятие будет управлять системой, потребляя значительно меньше вычислительных ресурсов, но при этом по-прежнему сможет выбирать поставщиков операционных систем и программного обеспечения. Независимо от того, на каких технологиях построена система, переход к секционированным прило­жениям позволит представить слой мониторинга и анализа потребляемых мощностей в виде пакета управления. Это даст возможность управлять приложениями экономично и эффективно; аппаратные ограничения, лимитирующие эффективность современных приложений, утратят свою актуальность.

Заключение

Архитекторы приложений могут проектировать распределенные системы с более эффек­тивным управлением ресурсами. Во-первых, можно согласовать четко определенные цели оптимизации с факторизацией. Единицы масштаба позволяют группировать и согласовы­вать секционированные решения с минимальными развертываниями без ущерба для общей архитектуры развертывания. Единицы масштаба в сочетании с инструментированием позволяют программному обеспечению для управления, такому как System Center, управлять портфелем приложений на основе поставленной цели и утвержденного подхода к оптимизации. Эти возможности очень скоро воплотятся в реальность. В мире, где существуют жесткие ограничения на потребление энергии, скорейшая реализация этих возможностей будет в наших общих интересах.

Ресурсы

Measuring National Power in the Postindustrial Age, Ashley J. Tellis et. al, RAND Corporation, 2000

http://www.rand.org/pubs/monograph_reports/MR1110/

Wikipedia – Theory of Constraints

http://en.wikipedia.org/wiki/Theory_of_constraints

Об авторах

Дэн Роджерс пришел в корпорацию Microsoft в 1998 г., он занимался разработкой ряда продуктов, включая BizTalk, Visual Studio и MSN. В настоящее время входит в состав команды разработчиков System Center и формирует стратегии мониторинга, которые поз­воляют создавать динамичные ИТ-решения. В MSN Дэн помогал разрабатывать решения для мониторинга в рамках крупномасштабных динамичных проектов, таких как популяр­ные файловые хранилища и почтовые сервисы, а также участвовал во множестве проектов, связанных с комплексной автоматизацией глобального центра обработки данных.

Ульрих Хоманн – ведущий архитектор решений в группе стратегических проектов подразделения глобальных услуг Microsoft. Эта группа относится к службе технического директора и отвечает за управление и корпоративные архитектуры в рамках ключевых стратегических проектов по всему миру.