Автономная компьютерная система

Автономная компьютерная система — это распределённые вычислительные ресурсы с признаками самоуправления, способные адаптироваться к непредсказуемым изменениям, скрывая при этом свою внутреннюю сложность от операторов и пользователей. Инициатива была предложена компанией IBM в 2001 году с целью разработки вычислительных систем, способных к самоуправлению, для преодоления быстрого роста сложности управления информационными системами и снижения препятствий для их дальнейшего развития[1].

Описание

Цель автономной компьютерной системы — принятие адаптивных решений на основе политик высокого уровня. Система постоянно проверяет и оптимизирует своё состояние, автоматически приспосабливаясь к изменяющимся условиям. Автономное вычисление организовано из самостоятельных компонентов, которые взаимодействуют между собой. Такой комплекс можно моделировать двумя основными схемами управления: локальной и глобальной, обе из которых используют сенсоры (для автоматического мониторинга), эффекторы (для автоматической корректировки), модули знания и планирования/адаптации, чтобы реализовать политики, основанные на осознанности себя и среды. Эта архитектура известна как наблюдение-анализ-планирование-выполнение (Monitor-Analyze-Plan-Execute, MAPE).

Вычисления, ориентированные на автономность — это парадигма, предложенная Джимингом Лю в 2001 году; она использует искусственные системы, имитирующие коллективное поведение общественных животных для решения сложных вычислительных задач. Например, алгоритмы муравьиной колонии могут рассматриваться как типичная реализация этого подхода[2].

Проблема возрастающей сложности

Прогнозируется ежегодный рост числа используемых вычислительных устройств на 38 %[3], а также увеличение сложности каждого отдельного устройства[3]. В настоящее время этот объём и сложность обрабатываются высококвалифицированными специалистами; однако спрос на ИТ-персонал уже превышает предложение, а расходы на рабочую силу могут превышать стоимость оборудования в соотношении до 18:1[4]. Несмотря на значительные преимущества в скорости и автоматизации, возникает острая необходимость в автоматизации обслуживания вычислительных систем для сокращения затрат.

В статье, опубликованной в журнале Computer в 2003 году, Кефарт и Чесс[1] предупреждали, что стремление к максимальной взаимосвязи вычислительных систем и устройств может привести к «кошмару повсеместных вычислений», когда проектировщики окажутся неспособными предвидеть, спроектировать и контролировать возникающую сложность их взаимодействия. Авторы отмечают, что сущность автономных вычислений — это система с возможностью самоуправления, освобождающая администраторов от рутинных операций и демонстрирующая при этом более предсказуемое поведение системы.

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

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

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

По оценкам, 80 % проблем в инфраструктуре приходится на базы данных и специализированные приложения клиентов. Большинство поставщиков «автономных» сервисов обслуживают базовые уровни — электропитание, оборудование, операционные системы, сети и базовые параметры баз данных.

Характеристики автономных систем

Одна из возможных стратегий решения — позволить вычислительным сетям самостоятельно управлять собой без прямого человеческого вмешательства. Автономные вычисления призваны сформировать основу таких систем, вдохновлённую автономной нервной системой человека[5], которая управляет важнейшими процессами нашего организма неосознанно.

В самоуправляющейся автономной системе человек-оператор выполняет новую роль: он не управляет системой напрямую, а определяет политики и общие правила, руководящие процессом самоуправления. IBM выделяет четыре основных свойства самоуправляющихся систем — так называемые self-star (self- *, self-x или авто- *):[6]

  1. Самоконфигурирование (self-configuration): автоматическая настройка компонентов;
  2. Самовосстановление (self-healing): автоматическое обнаружение и устранение неисправностей[7];
  3. Самооптимизация (self-optimization): автоматический мониторинг и управление ресурсами для обеспечения оптимальной работы системы;
  4. Самозащита (self-protection): проактивное выявление и противодействие внешним и внутренним угрозам.

По мнению Позлада[6] и исследователей Нами и Шарифи, список self-* свойств можно расширить следующим образом:

  1. Саморегуляция: поддержание определённых параметров (например, качество обслуживания) в допустимых пределах без внешнего контроля;
  2. Самообучение: применение методов машинного обучения (например, обучение без учителя) без внешней коррекции;
  3. Самосознание (также автоинспекция и автопринятие решений): автономная система осознаёт свои ресурсы и связи с внешним миром, контролируя и администрируя свои компоненты и внешние связи;
  4. Самоорганизация: структура системы определяется внутренними механизмами, без внешнего давления или прямого управления;
  5. Самосоздание (аналогично самосборке, саморепликации): развитие системы по экологическим и социальным моделям без внешних стимулов, что приводит к появлению сложности и порядка как отклика на стратегические изменения;
  6. Самоуправление (или самоуправляемость): способность системы самостоятельно регулировать свою деятельность без внешнего вмешательства, что может значить совокупность self-* процессов (автономные вычисления) или единичные акты самоуправления;
  7. Самоописание (также автообъяснение или самопредставление): система описывает и объясняет себя, оставаясь понятной для пользователей.

IBM выделила восемь условий, определяющих автономную систему:[8][9]

  1. Система должна знать доступные ей ресурсы, их возможности и ограничения, а также связи с другими системами;
  2. Быть способной к автоматической (ре)конфигурации под изменяющиеся условия;
  3. Оптимизировать производительность для эффективного функционирования;
  4. Самостоятельно устранять найденные проблемы, либо перераспределять функции в случае отказа;
  5. Обнаруживать, идентифицировать и предотвращать различные атаки, защищая целостность системы;
  6. Адаптироваться к изменяющейся среде, взаимодействуя с соседними системами и устанавливая коммуникационные протоколы;
  7. Использовать открытые стандарты и быть независимой от проприетарных решений;
  8. Прогнозировать спрос на свои ресурсы, оставаясь при этом прозрачной для пользователей.

Хотя поведение и назначение конкретной автономной системы могут различаться, она должна обладать следующими ключевыми свойствами:

  1. Автоматизм: способность к самоконтролю внутренних функций и операций без вмешательства извне. Необходимые для запуска знания (know-how) должны быть внутренне присущи системе.
  2. Адаптивность: самостоятельное изменение конфигурации, состояния и функций для приспособления к долгосрочным (персонализация/оптимизация) и краткосрочным (например, атаки, отказы) изменениям среды.
  3. Осознанность: осуществление мониторинга внешнего контекста и внутреннего состояния для оценки достижения целей и своевременной адаптации поведения.

Эволюционные уровни

IBM определила модель внедрения автономных систем с пятью эволюционными уровнями:

  • Уровень 1 отражает нынешнее положение, когда системы управляются преимущественно вручную.
  • Уровни 2–4 характеризуются возрастающей степенью автоматизации управления.
  • Уровень 5 соответствует полной автономности и самоуправлению[10].

Шаблоны проектирования

Сложность проектирования автономных систем может быть снижена с помощью шаблонов проектирования, например, модели модель–вид–контроллер (MVC), обеспечивающей разделение обязанностей и инкапсуляцию функциональных аспектов[11].

Контуры управления

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

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

Концептуальная модель

AutonomicSystemModel.png

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

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

Примечания

Ссылки