Затворете цикъла с проверено подобрение
ЗавършеноПревърнете продукционни доказателства в изисквания, тестове, контролирани промени и измерени резултати. Определете отговорно значение на софтуер, който се подобрява чрез обратна връзка.
Проверете разбирането сиАгент намалява времето за експорт, като пропуска проверките на правата. Показателят за скорост се подобрява. Подобрила ли се е системата?Направете упражнението
Какво ще научите
- Свържете оперативно наблюдение с проверима инженерна промяна.
- Разграничете възстановяване при работа, подобряване на процеса и обучение на модел.
- Измерете твърдяно подобрение, без да отслабвате оценката му.
Определете цикъла, който искате да затворите
Софтуерът произвежда доказателства при употреба: грешки, забавяния, искания за поддръжка, инциденти, констатации по поддръжката и повтаряща се ръчна работа. Пълният жизнен цикъл връща тези доказателства към инженерните решения.
Софтуер, който се подобрява чрез обратна връзка, може да означава, че автоматизация помага да се откриват, предлагат, реализират и проверяват промени. Това не означава непременно, че модел се обучава сам. Посочете коя част се променя: код на приложението, конфигурация, тестове, инструкции, работен процес или параметри на модела.
Self-healing възстановява известно работно състояние. Подобряването чрез обратна връзка променя системата, за да дава по-добър резултат в бъдеще. Второто твърдение изисква сравнение и защита срещу регресии.
Проследете едно наблюдение през жизнения цикъл
Последователността по-долу е предложен инженерен метод. Не твърди, че продукт извършва всяка стъпка автономно.
| Етап | Необходим резултат | Измислен пример за експорт |
|---|---|---|
| Наблюдение | Версионирани доказателства с обхват и несигурност | Паметта на worker-а нараства при големи експорти |
| Диагностика | Проверима причина и конкуриращи се обяснения | Задържани буфери за редове могат да обяснят нарастването на паметта |
| Специфициране | Желан резултат и ограничения | Поточно обработване на редове без промяна в правата или изхода |
| Възпроизвеждане | Тест, който показва първоначалния неуспех | Представителен голям синтетичен експорт надхвърля лимита |
| Промяна | Поправка, удобна за преглед | Освобождаване на буферите за вече обработени редове по време на поточната обработка |
| Оценка | Първоначалният неуспех е отстранен; другите изисквания са запазени | Тестът за памет, сравнението на изхода, проверките на права и повторни опити преминават успешно |
| Пускане | Контролирано предоставяне с критерии за възстановяване | Ограничено внедряване на идентифициран артефакт |
| Проверка | Сравними продукционни доказателства и отговорник | Паметта се стабилизира, докато правилността и времето за отговор остават приемливи |
Пазете връзки между тези резултати. Действие след инцидент „подобрете мониторинга“ е трудно за проверка. Определени сигнал, отговорник, праг и тествана реакция правят завършването наблюдаемо.
Пазете оценката независима от предложението
Агент може да създаде поправка и да предложи тестове. Екипът все още трябва да прегледа дали тестовете откриват първоначалния проблем. Пазете версиониран набор за оценка, който промяната не може неявно да отслаби.
За измисленото изтичане на памет (memory leak) сравнете равностойни натоварвания и версии. Включете големи експорти, отмяна, повторен опит и случаи на отказ за достъп. Използвайте синтетични данни, които представят съответните структури, без да разкриват клиентски записи.
Отхвърлете по-бърз експорт, ако пропуска записи, заобикаля проверката на правата или надхвърля разрешения разход. Определете тези ограничения преди оптимизацията. Иначе системата може да подобри избрания показател, като влоши услугата.
Ако промените инструкциите или модела на агент, оценете поведението му с представителни задачи и известни неуспехи. Пазете предишната версия налична. Обновяване на инструкции не е доказателство, че основният модел е научил нещо от инцидент.
Пуснете и измерете резултата
Canary release предоставя кандидат-версия на ограничена група. Сравнете сигналите на кандидат-версията и контролната версия и определете кога да разширите или спрете. Малко трафик или различни натоварвания могат да направят сравнението неубедително. Указания за canary release.
Измисленият екип записва базова стойност от фиксирано синтетично натоварване. Тества поправката, пуска в одобрена граница и проверява сравними продукционни периоди. Ако доказателствата останат недостатъчни, записва несигурността, вместо да обявява подобрение.
Измервайте и повтарящата се ръчна работа. Автоматизация може да намали рутинното усилие, но също се нуждае от поддръжка и обработка на неуспехи. Включете тези разходи при оценка на резултата. Указания за рутинна оперативна работа.
Направете записа на обратната връзка използваем
Използвайте тези полета за упражнението: наблюдение и версия; базова стойност; предложена причина; критерии за приемане; регресионни проверки; промяна и преглед; граница на пускане; измерен резултат; отговорник и следващ преглед.
Taiga Maintaining свързва констатации в хранилището с работа по отстраняване. Initiatives свързва предвидена промяна с планиране и доставка. Те предоставят части от верига от доказателства. Отговорникът за услугата все още трябва да провери внедряването и оперативния резултат. Maintaining, Initiatives.
Зряла софтуерна фабрика свързва тази работа между продукти. Пазете правата за решения и критериите за оценка видими при нарастваща автоматизация. Окончателното доказателство е по-добра проверена услуга, а не по-голям брой генерирани промени.
Направете упражнението
Попълнете записа за обратна връзка в този урок за измисленото изтичане на памет. Определете базова стойност, тест за приемане, регресионни проверки, граница на пускане, продукционно измерване и отговорник. Добавете правило за отхвърляне на по-бърз, но по-малко правилен експорт.
Изтеглете работния лист (Markdown)Премахването на тази отметка изтрива целия напредък, запазен в този браузър.
Напредъкът остава в този браузър. Без акаунт и проследяване.
Източници и допълнително четене
- Google SRE: Postmortem Culture ↗
- Google SRE: Canarying Releases ↗
- Google SRE: Eliminating Toil ↗
- Taiga docs: Maintaining ↗
- Taiga docs: Initiatives ↗