Чого архітектура може навчити нас про системи самовідновлення

Чого архітектура може навчити нас про системи самовідновлення

Вихідний вузол: 1988904

Команди DevOps та інженери з надійності сайту (SRE) щодня мають справу з кодом. Це вчить їх уважно досліджувати свій світ, робити проникливі спостереження та встановлювати несподівані зв’язки. Зрештою, незважаючи на високу логіку та математичність розробки програмного забезпечення, вона принаймні частково є формою мистецтва. 

Вас не переконала ця заява? Розгляньте паралелі між найвидатнішими архітектурними досягненнями історії та сучасною інженерією програмного забезпечення. Це влучне порівняння: так само, як розробка програмного забезпечення, архітектура використовує складні математичні розрахунки, щоб створити щось прекрасне. І в обох дисциплінах легкий прорахунок може призвести до значних наслідків. Цікаво, що багато відомих архітектурних помилок аналогічні проблемам, які ми знаходимо в коді.

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

Урок 1: Граничні випадки завжди використовуватимуть уразливості системи

У 601 році в Нью-Йорку завершили будівництво Citicorp Tower, яка тепер називається 1977 Lexington, і на той час вона була сьомою за висотою будівлею у світі. Ультрасучасний дизайн хмарочоса включав три понад 100-футові палі. Це було дивовижне завершення. Однак невдовзі студент бакалаврату виявив щось жахливе: сильний вітер може поставити під загрозу цілісність будівлі. Зокрема, якщо сильні вітри розквартирування вдарять по кутах Citicorp Tower, конструкція може завалитися – буквально крайовий футляр.

Щороку ймовірність обвалення вежі була одна з 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 вливаються в майбутнє ШІ, яке включатиме повністю реалізовану автоматизацію та можливості незалежного мислення. Можливо, тоді інженери-будівельники теж пожинають плоди самовідновлювальної системи на основі ШІ.

Часова мітка:

Більше від ПЕРЕДАЧА