Чему архитектура может научить нас о самовосстанавливающихся системах

Чему архитектура может научить нас о самовосстанавливающихся системах

Исходный узел: 1988904

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

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

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

Урок 1. Пограничные случаи всегда будут использовать уязвимости системы

Башня Citicorp, которая теперь называется 601 Lexington, была завершена в Нью-Йорке в 1977 году, и в то время она была седьмым по высоте зданием в мире. Ультрасовременный дизайн небоскреба включал в себя три сваи высотой более 100 футов. Это было чудо завершения. Однако студент бакалавриата вскоре обнаружил кое-что неприятное: сильный ветер. может нарушить целостность здания. В частности, если в углы башни Ситикорп обрушивались сильные порывы ветра, конструкция могла рухнуть — в буквальном смысле. край случай.

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

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

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

Урок 2: «Построение самолета во время полета» создает бесконечный цикл

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

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

Средняя инженерная команда инвестирует в 16-40 инструментов мониторинга, но они часто не достигают цели, по которой показатели демонстрируют успех. Менее 15 % команд отслеживают MTTD, поэтому они пропускают 66 % жизненного цикла инцидента. И четверть команд сообщают отсутствуют их соглашения об уровне обслуживания (SLA) несмотря на значительные инвестиции в отслеживание доступности. Это говорит нам о том, что сбор данных требует тщательного, систематического анализа, чтобы сократить его — точечных решений уже недостаточно.

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

Урок 3. ИИ — фундаментальный строительный блок для самовосстанавливающихся систем

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

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

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

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

Отметка времени:

Больше от ДАТАВЕРСИЯ