Галоўная / Артыкулы

Автонамна система самарэмонту без прыемніка клікаў: скуранні, якія працуюць о 3 гадзіны ночы

Адаптаванне апаратнага сама-вылечэння без чалавека для запланаваных рутынаў агента: званічны наглядач зза межамі, дзеянні, заданыя па прынцыпу вярнага выконання, тэставанне з викорыстаннем «канарскіх пташакоў» і атласы статусу, падтрымваныя доказамі.

Выдавец: REACTAPP.TOP6 хв чытання1418 слоў

Крыніцы: Routines That Repair Themselves

Калі команда запускае дзесяткі зазначаных рутын і сэсыйяў агента, наступныя бажанні стаюць явнымі: калі рутына зустрэчае проблэму ў сабе самай або ў сваёй средзе, яна павінна сама вылечыць асновную прычыну, або стварыць окремую сэсыйю, якая гэта зрабіць, без таго, каб хтось апраўляў кожны крок у паўнай тымроўцы. Мета разумная. Апасцерожнасць заключаецца ў тым, што найшырэйшы спосаб прыбыць да яе — адмена процедураў апранавання або автаматызацыя клацань — ператварае незначную праблэму на інцыдент у всій сетцы, да таго ж з фальшывым паведамленнем пра усуненне проблемы. Шэйдае кансалтатывацыя паказвае, як апэнсаваць без участі людзей, заўсёды пашантуючы адну важную разліку: чы можна анулюваць певныя дзеянні.

Што пойшло не так, калі з’явіліся «вораты»

Два спосабу неудачаў практычна завжды з’являюцца ў автаматызаваных операцыйях, і оба ўартуюць дакладнага аднаработкі пры стварэнні будзь-чаго.

Правільны каманд, выконваны у масштабе

Уявіце сабоў голас або команду чату, яка була перапісана трохкі некалькрава і потрапила на шлях автаматызацыі, яка мала права на кераванне планавальнікам. За прыблізна пяць секунд было выключана 146 запланаваных задач, укладаючы ў сябе всі механізмы стежэння, якія моглі б гэта зафіксаваць. Нічага не зламалася. Система зрабіла абсолютна тое, што ёй было сказана, мгновенна і у великіх масштабах.

Рашэнне — гэта правілле, якое лёгка запам’ятаваць: кожны запуск, який ведаецца масовым, выключае цэлы клас об’ектаў або не можа быць відмёнены, прадуўае адзін рядок падтверджэння першы чым запускаецца. У гэтым рядку паказваецца, што будзе зменена і якія буду наследкі відворачэння змян. Ёго чытанне трывае секунду; вярнэнне до нормальнага стану без яго займае гадзіну або больш.

Атлас вярнэння, напісаны на адповіднасць намеру

Другія неудачы ўскрытэйшыя. Пасля такога інцыдэнта ў запісах пра вярненне стану пішацца ўдзейснелае «вярнуліся 30 з 30». Чырэх дніў пазней пераглед у рэальным календары развядчых задач паказвае, што 27 задач усё ўсё застаюцца выключанымі, сярод іх — резервна копія налашчэнняў, манітар сінхронізацыі і прыстрой для стежэння за сесіяй. Рядок з статусам быў запісаны на адной падставе таго, што хацеў зрабіць аператар, а не на адной падставе таго, што фактычна паказваў система.

Гэта стварае строгая правіла атрыбутавання звесткі. Такое выразае, як «вярнуліся N з N», дазволены толькі паляўку пры выходным даннім каманды, якая перачытвала гэты стан. Без такога доказу правдзівы выраз — «надасілі каманду на вярненне».

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

Пяць правіл для рэмонту, які выконваецца без нагляду

1. Рутына не можа быць своім сабе-рэмонтнікам

Якщо рутына зламана, яе вбудованая логіка самарэмонту зазвычай таксама зламана, і абякі безшумна перастаюць працаваць. Рэмонт патрабуее адзін уровень вышэй: окольны процес, ідеальна ў варыянце на аднойчынны машыне, які стежыць за рутыной ззаўні.

Тое, за што ён павінен стежыць, — гэта вяк рэзультата работы рутыны, а не код ўжывання. Задача, якая завершаецца з статусам 0 і нічога не запісвае, выглядае абсалютна здаровай па будзь-якім пераканальніку коду ўжывання. Абсалютна можліва ситуацыя, калі такая задача застаецца непазначанай прынцыпова на тыяжкія недзелі. Пераканальнік свежасці (“файл з атласам моладзейшы за 26 гадзін”, “пасляпэўныя рядкі ў таблыце — з сёгоднішняго дня”) выяўляе самэ тыя несправныя станы, якія хаваюць коды статусу.

2. Класіфікуйце дзеянні, а не затверджэння

Запрос па прыемлівасць фразы «ніхто не можа нажыць кнопку „дазволіць“ у ночы» ўзгодны, але бот, які автаматычна нажыва кнопку „дазволіць“, — гэта неправильная адпаведнасць. Гэта стырае тую елементарную лінію, якая на самай справе мае значэнне — тую, якая разлічва дзеяння, якія можна анулюваць, і дзеяння, якія немагчыма анулюваць, і гэта קורыцца найшчыльнейша саме тады, калі няма людзіна, якая стежыць. Гэта таксама маскіруе рашэнне: хтось усё-такі вырашыў, што гэтыя дзеяння є безпечнымі, а проста нажыць кнопку маскіруе таго, хто выдаў гэта рашэнне, і калі.

Рабочая альтэрнатыва — класіфікацыя самага дзеяння на разныя рангі:

  • Автаматычна, без участку чалавека, ў будзь-яга час: пачатак працы застойванага сервісу, павторная рэгістрацыя запланаванага задання, якое зупінілася, адмова старог блокування, павторная експортацыя дадзеных, перабудова індэксу. Гэтыя дзеяння маюць частакі, ўсё можна анулюваць, і яны безпечныя для павторнага выканання.
  • Автаматычна з гучным адказом: змена настройкаў на аднам узле, перыянастаўленне залежнасцей, павтарная створэння кеша. Яны выкананы, а чалавек пераглядае, што сталося пасля таго.
  • Ніколі не автаматычна, запісана на ранак: все, што стосуецца грошаў, выдаленняў, пароляў, паветраных паведамленняў, апрацоўваных у імя чалавека, зменах схемы або масовых дзеяннях у всім флоте.
  • З такім падходам першы рэвень працуе ў повнай автонаміі всю ноч, трэці рэвень чакае ў ранковым адказе, і ніхто не клацае нічога о 3 гадзіны ранку. Не менш важнае — о 3 гадзіны ранку не выканана нічога незворачнага.

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

    3. Спачатку канарэйскі прыстрой, потым усе іншае

    Апдэйт, які падае на кожны вузел адночасна, сам ёсць адной точкай збою: якщо апдэйт некоректны, ён будзе некоректны ўсюды адразу. Замест таго вядзіце його ў працэўнасць пасляпа:

    • застосавіце змяну да адного вузла
    • пераканайцеся, прачытавшы рэзультаты ў стане, а не пакладаючыся на код вярнення
    • застосавіце ёё да другога вузла іншага типу
    • толькі пасля чаго распростраńце яё на всіх

    Перад пачаткам назначыце назва для процедуры анулювання, каб ўзворотныя дзеянні былі частью застаўленага алгорытму, а не імпровізацыяй пад тыччунем.

    4. Не ствараце прыстрою для рэмонту за першай жа памылкі

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

    Без такога правіла витраты можу растаць ажылкава. Адна команда, якая меравала свою работу, выявіла, што 82% з яе роботы стала «мета-работай» — апаратураю, створанай для керавання іншай апаратураю. Автаматызація рэмонту — гэта самая вразлівая категорыя да такога спіралявання.

    5. Дадзіце кожнай запускаемай сесыі самастойны короткі інструкцыйны документ

    Сесія, запусканая о 4 гадзінай ранку адзвучным механізам, не распаўляе таго контексту, які існаваў у процэсе, які выявіў проблему. Неабходна передаць яй кароткія інструкцыя, якая мае паведамляць:

    • што зламалася
    • доказы
    • што вже было спробавана
    • межы таго, чаму можна зачапіцца
    • вызначэнне готовасці

    Межа — это лінія, якую людзі забываюць. Без яе амбітны агент будзе ўсёлякім чынам лагодзіць суседнія элементы, пра якія ніхто не прасіў, і так вузкая парадкавка ператвараецца на шырокія, непераглянутыя змены.

    Калі адзін агент затверджвае іншага

    Шырока практыка — калі аднам агенту даваць права на затверджэнне іншаго, напрыклад у спяльным чате, дзе агент-начальнік прыказвае працавальніку продаваць роботу. Існуюць гатовыя інструменты для такога запуску сесій. Гэты падход добра працуе для першага рангу дзеянняў. Таксама самэй такі спосаб выкарыстоўваецца для дзеянняў трэцьяго рангу о 3 гадзіны ночы, калі няма нічога, што б іх адзінакавало. Калі дзеяння вводзяцца так, што ўсё можна адворачыць, затверджэнне агентамі стае безпечным, тым болей што начальнік можа затвердзіць толькі тое, што вже дазволена класыфікацыя.

    Ключовыя выводы

    • Рэмонт трэба выкананы паза самым об’ектам, які рэмонтуецца, а стан оценяць па свежасці рэзультатаў, а не па кодах выходу.
    • Заменіць кліканне для затверджэння на письмовую класыфікацыю дзеянняў па можлівасці адворачэння і ўплыву на систему.
    • Для масовых, класавых чы неадворачымых заповедзей трэба выкарыстоўваць падтверджэнне ў адной лініі, у яком будуць указаны масштаб і вартасць адворачэння.
  • Звярніцеся працэўнікам толькі тады, калі є паказанні пра вярненне стану, іначы апісвайце тое, што было адправлена.
  • Выкарыстоўваючы канарскі варыянт і другі вузел іншага типу, спачатку прынямаюцься паследовныя правкі, а потым — у всій системе.
  • Ствараюце автаматызацію на трэцьяй павторэнцыі класу аберання, а не на першай, і кожнай запускаемай сесіі даёце інфармацыю пра межы заданняў і критэрыя ўспэшнага завершэння.