Автономная компьютерная система
Автономная компьютерная система — это распределённые вычислительные ресурсы с признаками самоуправления, способные адаптироваться к непредсказуемым изменениям, скрывая при этом свою внутреннюю сложность от операторов и пользователей. Инициатива была предложена компанией 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]
- Самоконфигурирование (self-configuration): автоматическая настройка компонентов;
- Самовосстановление (self-healing): автоматическое обнаружение и устранение неисправностей[7];
- Самооптимизация (self-optimization): автоматический мониторинг и управление ресурсами для обеспечения оптимальной работы системы;
- Самозащита (self-protection): проактивное выявление и противодействие внешним и внутренним угрозам.
По мнению Позлада[6] и исследователей Нами и Шарифи, список self-* свойств можно расширить следующим образом:
- Саморегуляция: поддержание определённых параметров (например, качество обслуживания) в допустимых пределах без внешнего контроля;
- Самообучение: применение методов машинного обучения (например, обучение без учителя) без внешней коррекции;
- Самосознание (также автоинспекция и автопринятие решений): автономная система осознаёт свои ресурсы и связи с внешним миром, контролируя и администрируя свои компоненты и внешние связи;
- Самоорганизация: структура системы определяется внутренними механизмами, без внешнего давления или прямого управления;
- Самосоздание (аналогично самосборке, саморепликации): развитие системы по экологическим и социальным моделям без внешних стимулов, что приводит к появлению сложности и порядка как отклика на стратегические изменения;
- Самоуправление (или самоуправляемость): способность системы самостоятельно регулировать свою деятельность без внешнего вмешательства, что может значить совокупность self-* процессов (автономные вычисления) или единичные акты самоуправления;
- Самоописание (также автообъяснение или самопредставление): система описывает и объясняет себя, оставаясь понятной для пользователей.
IBM выделила восемь условий, определяющих автономную систему:[8][9]
- Система должна знать доступные ей ресурсы, их возможности и ограничения, а также связи с другими системами;
- Быть способной к автоматической (ре)конфигурации под изменяющиеся условия;
- Оптимизировать производительность для эффективного функционирования;
- Самостоятельно устранять найденные проблемы, либо перераспределять функции в случае отказа;
- Обнаруживать, идентифицировать и предотвращать различные атаки, защищая целостность системы;
- Адаптироваться к изменяющейся среде, взаимодействуя с соседними системами и устанавливая коммуникационные протоколы;
- Использовать открытые стандарты и быть независимой от проприетарных решений;
- Прогнозировать спрос на свои ресурсы, оставаясь при этом прозрачной для пользователей.
Хотя поведение и назначение конкретной автономной системы могут различаться, она должна обладать следующими ключевыми свойствами:
- Автоматизм: способность к самоконтролю внутренних функций и операций без вмешательства извне. Необходимые для запуска знания (know-how) должны быть внутренне присущи системе.
- Адаптивность: самостоятельное изменение конфигурации, состояния и функций для приспособления к долгосрочным (персонализация/оптимизация) и краткосрочным (например, атаки, отказы) изменениям среды.
- Осознанность: осуществление мониторинга внешнего контекста и внутреннего состояния для оценки достижения целей и своевременной адаптации поведения.
Эволюционные уровни
IBM определила модель внедрения автономных систем с пятью эволюционными уровнями:
- Уровень 1 отражает нынешнее положение, когда системы управляются преимущественно вручную.
- Уровни 2–4 характеризуются возрастающей степенью автоматизации управления.
- Уровень 5 соответствует полной автономности и самоуправлению[10].
Шаблоны проектирования
Сложность проектирования автономных систем может быть снижена с помощью шаблонов проектирования, например, модели модель–вид–контроллер (MVC), обеспечивающей разделение обязанностей и инкапсуляцию функциональных аспектов[11].
Контуры управления
Базовым понятием, реализуемым в автономных системах, выступают замкнутые контуры управления. Это классическая идея теории систем автоматического управления, суть которой — автономное поддерживание параметров (вычислительных компонентов или аппаратных ресурсов) в допустимых пределах посредством непрерывного мониторинга.
По прогнозам IBM, в масштабных самоуправляющихся вычислительных системах параллельно действуют сотни и даже тысячи таких контуров управления.
Концептуальная модель
Ключевым компонентом автономной системы является способность к детекции, позволяющая системе отслеживать внешний рабочий контекст. Автономная система обладает знанием своей цели (миссии) и необходимыми знаниями (know-how) для ведения самостоятельной работы (например, автозагрузка, конфигурирование, интерпретация сенсорных данных и др.) без внешнего управления. Непосредственная работа автономной системы определяется логикой, отвечающей за принятие решений для достижения целей, а также зависит от наблюдения текущей среды через сенсоры.
Эта модель подчёркивает, что поведение автономной системы определяется её целью: задачей сервиса, политиками (правилами основного функционирования) и элементом «инстинкта выживания». С точки зрения теории управления, всё это может быть реализовано как функция обратной связи, а в эвристически управляемых системах — как алгоритм, дополненный набором эвристик, сужающих рабочее пространство.
Примечания
Ссылки
- Международная конференция по автономным вычислениям (ICAC 2013)
- Статьи и руководства по автономным вычислениям
- Практика автономных вычислений: план перехода к технологиям самоуправления
- Блог по автономным вычислениям
- Whitestein Technologies: разработка и интеграция программного обеспечения для автономных вычислительных систем
- Applied Autonomics: поставщик автономных веб-сервисов
- Enigmatec: программное обеспечение для автономных вычислительных систем
- Handsfree Networks: поставщик автономного ПОАрхивная копия от 17 августа 2013 на Wayback Machine
- Проект CASCADAS (ЕС): автономные коммуникационные и адаптивные среды
- Инструменты CASCADAS Autonomic Tool-Kit
- Проект ANA: архитектура автономных сетей (ЕС)
- JADE: фреймворк для создания программного обеспечения автономного администрирования
- Барселонский суперкомпьютерный центр — автономные системы и платформы для электронной коммерции
- Проект СОКРАТ: самооптимизация и самоконфигурирование в беспроводных сетях
- Динамически настраиваемые автомобильные системы
- ASSL — язык спецификации автономных систем: средства описания, проверки и генерации
- Объяснение автономных вычислений и их применение для бизнес-процессов (на нем.)
- Архитектура автономных вычислений в RKBExplorer
- International Journal of Autonomic Computing
- BiSNET/e: когнитивная сенсорная сетевая архитектура с эволюционной многоцелевой оптимизацией
- Licas: открытая среда для создания сервисно-ориентированных сетей с интегрированным автономным менеджером



