Замыкайце цыкл правераным паляпшэннем
ЗавершанаПератварайце доказы з production у патрабаванні, тэсты, кантраляваныя змены і вымераныя вынікі. Вызначайце, што абгрунтавана можна называць самаўдасканаленнем праграм.
Выдавец TaigaЯк мы пішам
Праверце сваё разуменнеАгент скарачае затрымку экспарту, прапускаючы праверкі аўтарызацыі. Метрыка хуткасці паляпшаецца. Ці палепшылася сістэма?Выканайце практыкаванне
Чаму вы навучыцеся
- Звязваць эксплуатацыйнае назіранне з правяральнай інжынернай зменай.
- Аддзяляць аднаўленне падчас працы, паляпшэнне працоўнага працэсу і навучанне мадэлі.
- Вымяраць заяўленае паляпшэнне, не аслабляючы яго ацэнкі.
Вызначце цыкл, які хочаце замкнуць
Праграма стварае доказы падчас выкарыстання: памылкі, затрымкі, звароты ў падтрымку, інцыдэнты, выяўленыя праблемы суправаджэння і паўторную ручную працу. Поўны жыццёвы цыкл вяртае гэтыя доказы ў інжынерныя рашэнні.
Самаўдасканаленне праграмы можа азначаць, што аўтаматызацыя дапамагае выяўляць, прапаноўваць, рэалізоўваць і правяраць змены. Гэта не абавязкова азначае, што мадэль навучае саму сябе. Укажыце, якая частка змяняецца: код праграмы, канфігурацыя, тэсты, інструкцыі, працоўны працэс або параметры мадэлі.
Самааднаўленне вяртае вядомы працоўны стан. Самаўдасканаленне змяняе сістэму для лепшага выніку ў будучыні. Другое сцверджанне патрабуе параўнання і абароны ад рэгрэсій.
Прасочыце адно назіранне праз жыццёвы цыкл
Паслядоўнасць ніжэй — прапанаваны інжынерны метад. Гэта не сцверджанне, што нейкі прадукт выконвае кожны крок аўтаномна.
| Этап | Неабходны вынік | Выдуманы прыклад экспарту |
|---|---|---|
| Назіраць | Доказы з версіяй, абсягам і нявызначанасцю | Памяць апрацоўшчыка расце падчас вялікіх экспартаў |
| Дыягнаставаць | Правяральная прычына і канкурэнтныя тлумачэнні | Утрыманыя буферы радкоў могуць тлумачыць рост памяці |
| Вызначыць | Жаданы вынік і абмежаванні | Перадаваць радкі патокам без змены дазволаў або выніку |
| Узнавіць | Тэст, які выяўляе першапачатковы збой | Рэпрэзентатыўны вялікі сінтэтычны экспарт перавышае ліміт |
| Змяніць | Выпраўленне, якое можна праверыць | Вызваляць буферы апрацаваных радкоў падчас патокавай перадачы |
| Ацаніць | Стары збой выпраўлены; іншыя патрабаванні захаваны | Тэст памяці, параўнанне выніку, праверкі аўтарызацыі і паўторных спроб паспяхова завяршаюцца |
| Выпусціць | Кантраляванае адкрыццё з крытэрыямі аднаўлення | Абмежаванае разгортванне ідэнтыфікаванага артэфакта |
| Праверыць | Супастаўныя доказы production і адказны | Памяць стабілізуецца, а правільнасць і затрымка застаюцца прымальнымі |
Захоўвайце спасылкі паміж гэтымі вынікамі. Дзеянне пасля разбору інцыдэнту «палепшыць маніторынг» цяжка праверыць. Вызначаныя сігнал, адказны, парог і пратэставанае рэагаванне робяць завяршэнне назіральным.
Захоўвайце ацэнку незалежнай ад прапановы
Агент можа стварыць выпраўленне і прапанаваць тэсты. Каманда ўсё роўна павінна вывучыць, ці выяўляюць гэтыя тэсты першапачатковую праблему. Захоўвайце версійны набор ацэнкі, які змена не можа незаўважна аслабіць.
Для выдуманай уцечкі памяці параўноўвайце эквівалентныя нагрузкі і версіі. Уключайце вялікія экспарты, скасаванне, паўторныя спробы і адмовы ў доступе. Выкарыстоўвайце сінтэтычныя даныя, якія прадстаўляюць патрэбныя структуры без раскрыцця запісаў кліентаў.
Адхіляйце хутчэйшы экспарт, калі ён губляе запісы, абыходзіць аўтарызацыю або перавышае дазволены кошт. Вызначайце гэтыя абмежаванні перад аптымізацыяй. Інакш сістэма можа палепшыць выбраную метрыку, пагоршыўшы сэрвіс.
Калі змяняеце інструкцыі агента або мадэль, ацэньвайце яго паводзіны на рэпрэзентатыўных задачах і вядомых збоях. Захоўвайце папярэднюю версію даступнай. Абнаўленне інструкцый не даказвае, што сама мадэль навучылася на інцыдэнце.
Выпускайце і вымярайце вынік
Canary-выпуск адкрывае кандыдатную версію абмежаванай групе карыстальнікаў. Параўноўвайце сігналы кандыдатнай і кантрольнай версій і вызначайце, калі пашыраць або спыняць. Малы трафік або розныя нагрузкі могуць зрабіць параўнанне непераканаўчым. Рэкамендацыі па canary-выпусках.
Выдуманая каманда запісвае зыходны ўзровень на фіксаванай сінтэтычнай нагрузцы. Яна тэстуе выпраўленне, выпускае яго ва ўхваленых межах і правярае супастаўныя перыяды production. Калі доказаў усё яшчэ недастаткова, яна запісвае нявызначанасць замест абвяшчэння выйгрышу.
Таксама вымярайце паўторную ручную працу. Аўтаматызацыя можа скараціць руціну, але таксама патрабуе суправаджэння і апрацоўкі збояў. Уключайце гэтыя выдаткі ў ацэнку выніку. Рэкамендацыі па руціннай працы.
Зрабіце запіс зваротнай сувязі прыдатным для выкарыстання
Выкарыстоўвайце ў практыкаванні гэтыя палі: назіранне і версія; зыходны ўзровень; прапанаваная прычына; крытэрыі прыёмкі; рэгрэсійныя праверкі; змена і перагляд; мяжа выпуску; вымераны вынік; адказны і наступны перагляд.
Taiga Maintaining звязвае праблемы рэпазіторыя з працай па выпраўленні. Initiatives звязваюць задуманую змену з планаваннем і пастаўкай. Яны даюць часткі ланцуга доказаў. Адказны за сэрвіс усё роўна павінен праверыць разгортванне і эксплуатацыйны вынік. Maintaining, Initiatives.
Спелая фабрыка праграмнага забеспячэння звязвае гэтую працу паміж прадуктамі. Захоўвайце правы прыняцця рашэнняў і крытэрыі ацэнкі бачнымі па меры павелічэння аўтаматызацыі. Канчатковы доказ — лепшы правераны сэрвіс, а не большая колькасць згенераваных змен.
Выканайце практыкаванне
Запоўніце запіс зваротнай сувязі з гэтага ўрока для выдуманай уцечкі памяці. Вызначце зыходны ўзровень, прыёмачны тэст, рэгрэсійныя праверкі, мяжу выпуску, вымярэнне ў production і адказнага. Дадайце правіла адхілення хутчэйшага, але менш правільнага экспарту.
Спампаваць працоўны ліст (Markdown)Зняцце гэтай пазнакі выдаляе ўвесь прагрэс, захаваны ў гэтым браўзеры.
Прагрэс застаецца ў гэтым браўзеры. Без уліковага запісу і адсочвання.
Крыніцы і дадатковыя матэрыялы
- Google SRE: Postmortem Culture ↗
- Google SRE: Canarying Releases ↗
- Google SRE: Eliminating Toil ↗
- Taiga docs: Maintaining ↗
- Taiga docs: Initiatives ↗