`

СПЕЦИАЛЬНЫЕ
ПАРТНЕРЫ
ПРОЕКТА

Архив номеров

Что для вас является метрикой простоя серверной инфраструктуры?

Best CIO

Определение наиболее профессиональных ИТ-управленцев, лидеров и экспертов в своих отраслях

Человек года

Кто внес наибольший вклад в развитие украинского ИТ-рынка.

Продукт года

Награды «Продукт года» еженедельника «Компьютерное обозрение» за наиболее выдающиеся ИТ-товары

 

Про автономные вычисления

+22
голоса

В последнее время растет интерес к решениям, которые относятся к классу так называемых, автономных вычислений, термин, который возник почти двадцать лет назад. Итак, автономные вычисления (Autonomic Computing, AC) — это подход к решению проблем сложности и эволюции в программных системах.

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

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

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

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

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

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

Единственный оставшийся вариант — автономные вычисления, или вычислительные системы, которые могут сами управлять заданными администраторами задачами высокого уровня.

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

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

Про автономные вычисления

Автономный элемент

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

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

Системы управления бывают двух типов. Системы управления без обратной связи (например, автоматические тостеры и часы) — это те, в которых выход не влияет на вход. Системы управления с обратной связью (например, термостаты или автомобильные системы круиз-контроля) — это системы, в которых выход влияет на вход таким образом, чтобы поддерживать требуемое выходное значение. Автономная система включает в себя один или несколько замкнутых контуров управления.

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

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

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

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

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

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

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

IBM часто цитирует четыре аспекта самоуправления: самоконфигурация, самооптимизация, самовосстановление и самозащита.

Про автономные вычисления

Аспекты самоуправления

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

Самоконфигурация. Установка, настройка и интеграция больших, сложных систем трудоемка и подвержена ошибкам даже для специалистов. Большинство крупных веб-сайтов и корпоративных ЦОД характерны случайным увеличением количества серверов, маршрутизаторов, баз данных и других технологий на разных платформах от разных поставщиков. Группам опытных программистов могут потребоваться месяцы, чтобы объединить две системы или установить крупное приложение электронной коммерции, такое как SAP.

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

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

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

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

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

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

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

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

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

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

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

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

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

Жесткие отношения перерастут в гибкие отношения, которые устанавливаются путем переговоров. Элементы будут автоматически обрабатывать новые способы отказа, такие как нарушение контракта поставщиком, без вмешательства человека.

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

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


Вы можете подписаться на наш Telegram-канал для получения наиболее интересной информации

+22
голоса

Напечатать Отправить другу

Читайте также

 
 
IDC
Реклама

  •  Home  •  Рынок  •  ИТ-директор  •  CloudComputing  •  Hard  •  Soft  •  Сети  •  Безопасность  •  Наука  •  IoT