единица 11 / 11

Проверка на продукта, стратегии за пускане и работен процес от край до край на AI

Печалби:

  • Разбиране на намаляващи риска стратегии за освобождаване (синьо-зелено, канарче, флаг на функция) и дисциплина за проверка на продукта (здравна проверка, тест за дим, мониторинг на златен сигнал)
  • Възможност за прилагане на навика за изготвяне на ясен план за връщане преди внедряването и проверка на критични бизнес пътища след внедряването
  • Възможност за комбиниране на всички части, научени в рамките на модула, в цялостен работен процес, поддържан от AI, и прилагане на принципа „AI произвежда, хората проверяват и гарантират“ на всяка стъпка

Целият този модул се движеше към една точка: безопасното доставяне на код и инфраструктура до производството (живата среда, използвана от реални клиенти). Сега сме на най-критичната и стресираща връзка във веригата: получаване на промяна на живо и проверка дали тя наистина работи там. Грешката тук не е абстрактна - тя удря директно клиента, приходите и репутацията. Ето защо зрелите екипи тръгват към производство не като се „надяват“, а със стратегии за контролирано освобождаване и систематична проверка.

В тази последна единица комбинираме две неща: (1) методи за освобождаване, които намаляват риска (канарче, синьо-зелено, флаг на функцията) и дисциплината на проверката на продукта; (2) как всяка част, която научихме в рамките на модула – CI/CD, IaC, контейнер, мониторинг, инцидент, цена, скрипт, сигурност – се обединява в единен работен процес от край до край, задвижван от AI. Нека повторим първоначалния цитат за последен път: AI генерира и ускорява чернови на всяка стъпка; Но вие сте този, който натиска бутона „Вземам това на живо“ и гарантирате за резултата.

Стратегии за освобождаване, които намаляват риска

Натискането на промяна към всички потребители едновременно е най-рискованият начин. Зрели методи:

  • Синьо-зелено внедряване: Поддържат се две идентични среди — „синя“ (на живо) и „зелена“ (нова версия). Новата версия се подготвя и тества в зелено, след което трафикът внезапно се превключва на зелено. Ако има проблем, трафикът веднага се връща в синьо. Бързото връщане назад е най-голямото му предимство.
  • Внедряване на Canary: Новата версия се пуска първо за малък процент от потребителите (напр. 5%); Ако показателите са добри, постепенно увеличете до 100%. Проблемът засяга малка част от потребителя, а не целия потребител.
  • Флаг за функция: Новата функция влиза в кода, но е блокирана от флаг; Отваря се за определени потребители при поискване. Има разграничение между внедряване и "освобождаване"; Ако има проблем, флагът се изключва без връщане на кода.
Съвет: Най-бързата защитна мрежа е да имате готово връщане преди всяко внедряване. „Ако нещо се обърка, как мога да се върна към старата версия за 60 секунди?“ Ако няма ясен отговор на въпроса, не сте готови да направите това внедряване.

Проверка на продукта: работата не приключва, когато внедряването приключи

Само защото внедряването изглежда „зелено“, не означава, че работи. Систематична проверка:

  1. Проверки на здравето: Услугата работи ли, /healthz отговаря ли?
  2. Димни тестове: Действително ли работят няколкото най-критични потребителски пътя (вход, плащане, търсене)? Автоматично и бързо.
  3. Следете за златни сигнали: процент на грешки след внедряване, латентност, нормален ли е трафикът? (Четири сигнала на блок 6.)
  4. Разширявайте постепенно: Разглеждайте показателите на всяка стъпка, докато увеличавате процента на Canary.
  5. Прозорец за наблюдение: Наблюдавайте отблизо за период от време (напр. 30 минути) след разгръщането; Коварните проблеми не се виждат веднага.
Внимание: AI може да създаде списък с димни тестове или проверки, но ваша работа е да определите кои потребителски пътища са „критични“. AI дава общ списък; Само вие знаете, че вашият платежен поток, вашият най-генериращ приходи път, трябва да бъде тестван.

Сравнение на стратегии за освобождаване

Стратегия

Основно предимство

Цена/сложност

най-подходящ

Синьо-зелено

Незабавно връщане назад

Две среди = 2x ресурси

Ако бързото извличане е критично

канарче

Ограничава въздействието до малки парчета

Изисква се управление на трафика

Огромна потребителска база

FeatureFlag

Разделя внедряването от пускането

Дълг за управление на знамена

Постепенно/целенасочено отваряне

Текуща актуализация

Опростено, щадящо ресурсите

бавно връщане назад

Прости услуги

Работен процес от край до край, задвижван от AI

Сега нека комбинираме целия модул в един поток. Да приемем, че публикувате нова микроуслуга. AI създава чернови на всяка стъпка; проверявате на всяка стъпка:

  1. Код и контейнер (Единица 4): AI създава оптимизиран, защитен Dockerfile; Вие проверявате дали няма тайна и размера.
  2. CI/CD (Единица 2): Записва конвейера за тестване-изграждане-внедряване на AI; Стеснявате разрешенията и проверявате тайните препратки.
  3. Инфраструктура (Единица 3): Дефинира необходимите ресурси с AI Terraform; Четете изхода на плана и не търсите неочаквани изтривания.
  4. Оркестрация (Единица 5): AI произвежда манифести на Kubernetes; вие проверявате ограничението на ресурса, сондата и RBAC.
  5. Сигурност (Единица 10): Приоритизира резултатите от AI сканиране; Първо грабвате експлоатационните.
  6. Мониторинг (Единица 6): AI генерира правила за аларми и табло за управление; Тествате праговете с вашите минали данни.
  7. Пускане и валидиране (този модул): Очертава димния тест и плана за връщане назад; стартирате canary, гледате метриките, натискате бутона.
  8. Ако възникне инцидент (Единица 7): AI генерира хипотеза и следсмъртна скица; Вие проверявате и научавате уроците.
  9. Разходи (Единица 8): AI следи загубата на нови ресурси; Вие вземате правилните решения за оразмеряване.

На всяка стъпка общото правило остава постоянно: AI произвежда и ускорява, хората проверяват и гарантират. Това е същността на модула.

три мини калъфа

Случай 1 — канарче ограничи бедствието до 5%. Екип даде новата версия на 5% потребители с canary. Таблото за управление, създадено от AI, веднага показа, че процентът на грешки е скочил до 8% в този отрязък. Екипът го върна, без да го увеличи до 100%; Проблемът засегна само 5% от потребителите и това беше за няколко минути. Ако имаше голям взрив, всички клиенти ще бъдат засегнати.

Случай 2 — димният тест е уловил липсващия път. AI предложи набор от димни тестове, но нямаше поток на „плащане“. Инженерът го добави, знаейки, че най-критичният поток от приходи е плащането. Тестът след внедряване се счупи точно на стъпката за плащане — ключ на трета страна беше изтекъл. Проверката улови тиха загуба на приходи в рамките на минути.

Случай 3 — готово връщане назад, запазено за 90 секунди. Екип, който инсталира синьо-зелено, превърна новата версия в зелено; След 2 минути забавянето се удвои. Те превърнаха трафика в синьо за 90 секунди с връщането, което подготвиха предварително. Те откриха първопричината (бавна заявка в новата версия) не под натиск, а спокойно. Готовият път за връщане назад направи прекъсването почти невидимо.

Четири копируеми шаблона

1) Избор на стратегия за освобождаване:

Ще предлагам следната услуга: [УСЛУГА/КОНТЕКСТ: брой потребители, толерантност към прекъсване, инфраструктура]. Кой от тях препоръчвате между синьо-зелените, канарските и функционалните знамена? Сравнете предимствата, разходите и скоростта на връщане назад на всеки в този контекст. Дайте предложение, но заявете, че аз ще взема окончателното решение.

2) Тест за дим / списък за проверка:

Създаване на чернова на тест за дим и списък за проверка за [УСЛУГА], който ще стартирам след внедряването: проверка на състоянието, най-критичните потребителски пътища, кои показатели трябва да наблюдавам за колко минути? Да приемем, че ще маркирам най-критичните бизнес пътища и ще оставя това поле празно.

3) План за връщане назад:

Използвам [МЕТОД НА РАЗГЛЕЖДАНЕ]. Напишете ми ясен план за връщане назад: с коя команда/стъпка да се върна към старата версия, колко време отнема, какви са рисковете от самото връщане назад (напр. миграцията на база данни не може да бъде върната назад), какво трябва да проверя преди връщане?

4) Контролен списък за издаване от край до край:

Създайте контролен списък за подготовка от край до край за пускане в нов проект [SERVICE]: сигурност на код/изображение, тръбопровод, инфраструктурен план, наблюдение и алармиране, сканиране за сигурност, стратегия за пускане, връщане назад и проверка. Проверете всеки артикул с въпроса "Готов ли съм?" Превърнете го във въпрос.

Слаба подкана / Силна подкана

Слаб: "Как да вкарам това в прод?"

Резултат: без контекст; AI изброява общите стъпки за внедряване, но не се отнася до вашата толерантност към риск, потребителски мащаб и нужда от връщане назад.

Güçlü: „Ще подтикна платежна услуга с 10 милиона потребители, толерантността ми към прекъсване е много ниска. Препоръчвате ли Canary или Blue-Green, защо? Кои критични пътища трябва да тествам след внедряването, кои показатели трябва да наблюдавам за колко минути и какъв трябва да бъде 60-секундният план за връщане назад? Аз ще взема окончателното решение.“

Разлика: втората подкана дава мащаба, толеранса и очакваното връщане назад; Изисква стратегия + проверка + отмяна и оставя решението на човека.

Често срещани грешки

  • Внедряване без план за връщане назад. Ако няма път назад, всяко разгръщане е хазарт.
  • Разгръщане на Голям взрив. Даването му на целия потребител наведнъж увеличава максимално риска.
  • Ако приемем „зелено = работещо“. Услугата, която е преминала проверката на здравето, може да бъде повредена по критичния път.
  • Мислейки, че оставяте критични бизнес пътища на AI. Трябва да маркирате методите като плащане.
  • Не се наблюдава след внедряване. Коварните проблеми не се появяват в първата минута; е необходим прозорец за наблюдение.
  • Мисля, че миграцията на база данни е обратима. Някои промени не се връщат назад; се планират отделно.

В обобщение

Преминаването към производство е най-критичната връзка във веригата и се извършва не чрез „надява се“, а с контролирани стратегии: синьо-зеленото осигурява незабавно връщане назад, ограничавайки ефекта на канарчето до малък отрязък, разделяйки разполагането на флага на функцията от пускането. Работата не е приключила, когато внедряването приключи; Систематичната проверка чрез здравни проверки, димни тестове и мониторинг на златния сигнал е от съществено значение. AI генерира и ускорява чернови на всяка стъпка в целия модул — от Dockerfile до конвейер, от Terraform до правило за аларма, от postmortem до анализ на разходите. Но остава компетентното лице, което проверява всяка стъпка, натиска бутона за пускане на живо и гарантира за резултата. Това е златното правило на DevOps от край до край, задвижван от AI.

Задача за приложение

Изберете услуга (реална или измислена), в която да публикувате. (1) Изберете стратегия, която отговаря на вашия контекст с шаблона „Избор на стратегия за освобождаване“ и напишете защо. (2) Генерирайте списък за проверка с шаблона „Тест за дим/списък за проверка“ и сами добавете най-критичните бизнес пътища. (3) Подгответе 60-секунден план за връщане с шаблона „План за връщане“ и проверете дали има необратими стъпки в него.

контролен списък

  • [ ] Избрах стратегия за освобождаване (канарче/синьо-зелено/флаг), която отговаря на моя контекст.
  • [ ] Имам готов ясен и бърз план за връщане преди внедряването.
  • [ ] Добавих най-критичните бизнес пътеки (напр. плащане) към моите Smoke тестове сам.
  • [ ] След разгръщането наблюдавам златните сигнали през прозорец за наблюдение.
  • [ ] Също така планирах необратими стъпки (миграция на база данни и т.н.).
  • [ ] Проверих схемата на AI на всяка стъпка; Взех решение да пусна на живо.

Изпит по модул

1. Кое от следните е най-доброто позициониране за DevOps и AI в облака?

  • A) Изкуственият интелект е помощник и инструмент за подпомагане на вземането на решения; Хората са отговорни за критичните решения, засягащи продукта ✔
  • B) Изкуственият интелект може да финализира разгръщането на продукти и тайната ротация без одобрението на човека
  • В) Изкуственият интелект е полезен само за писане на документация, няма нищо общо с инфраструктурата
  • Г) Одитът е ненужен, защото изкуственият интелект винаги произвежда по-надеждни команди от инженера

Описание: Това е асистент и инструмент за подпомагане на вземането на решения, който ускорява текстово-интензивни задачи като тръбопровод с изкуствен интелект, конфигурация, скрипт и журнал. Отговорността за решенията, засягащи времето на престой, парите и сигурността, като пускане на производство, тайно управление и окончателно приложение, остава на компетентния инженер.

2. Кой е най-точният израз за дисциплината за проверка преди прилагането на DevOps команда или конфигурация, създадена от изкуствен интелект?

  • A) Ако изходът изглежда плавен и уверен, той може да се стартира директно в prod
  • B) Изходът е безопасен само ако няма синтактични грешки, не са необходими допълнителни проверки
  • C) Свържете изхода към източника, планирайте/изпробвайте и го филтрирайте с вашия системен контекст; след това нанесете ✔
  • D) Правенето на първия опит директно в продукта и гледането на резултата е най-бързата проверка

Обяснение: Проверката в три стъпки е от съществено значение: свързване на изхода към източника (командата/флагът всъщност е в официалните документи), стартиране на сухо (вижте какво се случва с плана/--сухо изпълнение) и преминаването му през системния филтър (вписва ли се в неговия архитектурен контекст и контекст на сигурност). Плавността не означава точност.

3. Какъв е правилният подход, когато питате изкуствения интелект за грешка или проблем с внедряването с .env файл, който съдържа истинска парола за база данни?

  • A) Маскирайте истински тайни с <PLACEHOLDER>; споделяйте само маскирана грешка и контекст ✔
  • Б) Поставянето на целия .env файл така, както е, решава проблема по-бързо
  • C) Тъй като тайните вече са base64, безопасно е да поставите обикновени
  • Г) Поставянето на паролата е безопасно, защото изкуственият интелект никога не я съхранява

Описание: В подканата за AI не се поставят истински тайни. Стойности като пароли и токени са маскирани с <PLACEHOLDER>; споделят се само съобщението за грешка и необходимия контекст. Ако Тайната вече е изтекла, тя трябва да бъде отменена и незабавно завъртена.

4. Кое от следните е правилното управление на тайни (парола, токен) в CI/CD конвейер?

  • A) Съхранява се в тайното хранилище на платформата и се извиква чрез препратка (напр. ${{ secrets.X }}), а не е написана в обикновен текст ✔
  • B) Написано в обикновен текст в конвейера YAML за удобство
  • C) Проверява се чрез натискане на ехо и лог в началото на всяка задача.
  • D) Ако се дефинира с най-широкото разрешение (запис на всичко), сигурността се увеличава

Обяснение: Тайните не се записват в YAML в обикновен текст; Той се съхранява в тайното хранилище на платформата и се извиква с препратки като ${{ secrets.X }}. Освен това, с принципа на най-малък авторитет, разрешенията за токени се стесняват и тайният дневник не се записва.

5. При управлението на инфраструктура с Terraform, коя е най-важната стъпка, която трябва да предприемете, преди да приложите промяна на живо?

  • A) Директно стартиране на „terraform apply“; планът е загуба на време
  • B) Архивиране на държавния файл в публично хранилище
  • C) Стартирайте „terraform plan“ и проверете редовете за унищожаване/замяна в изхода, след което приложете ✔
  • D) Деинсталирайте версията на доставчика и се уверете, че най-новата версия идва автоматично

Обяснение: 'terraform plan' трябва да се изпълни преди 'terraform apply'. Планът показва какво да добавите, какво да промените и особено какво да изтриете (унищожите), без да правите нищо. Ако се види неочаквана линия за унищожаване или замяна, приложението не трябва да се прилага.

6. Какво означава и какво трябва да се направи, ако редът '-/+ replace' за производствената база данни се появи в изходен план на Terraform?

  • A) Източникът просто ще бъде актуализиран на място, няма риск
  • B) Ресурсът ще бъде изтрит и пресъздаден; Има риск от загуба на данни, приложението трябва да бъде спряно, ако не се очаква ✔
  • C) Добавяне на нов ресурс, съществуващата база данни не се засяга
  • Г) Това е само предупреждение, може спокойно да бъде игнорирано

Обяснение: '-/+ replace' означава, че ресурсът ще бъде изтрит и пресъздаден; За база данни това означава загуба на данни. Ако не се очаква, приложението трябва да бъде спряно, промяната трябва да бъде преобразувана в безопасен метод или неизменното поле трябва да бъде оставено недокоснато.

7. Кое от следните е вярно за Dockerfile, за да бъде готов за производство по отношение на неговата сигурност и размер?

  • A) За удобство вграждане на тайната в изображението с ENV и стартиране като root
  • B) Винаги използвайте етикета ':latest' и поддържайте основното изображение възможно най-голямо
  • C) Едноетапно изграждане и оставяне на всички инструменти за изграждане в крайното изображение
  • D) Без вграждане на Secret, работа с неупълномощен ПОТРЕБИТЕЛ, използване на малко и стабилно основно изображение и многоетапно изграждане ✔

Описание: Готово за производство изображение: не вгражда тайната (вмъква я по време на изпълнение), работи с неупълномощен ПОТРЕБИТЕЛ вместо root, използва малко и версионно базово изображение (тънко/алпийско, не :latest) и е намалено с многоетапно изграждане. Също така се сканира за уязвимости преди публикуване.

8. Какъв е най-важният риск от недефиниране на ограничения на ресурсите за внедряване в Kubernetes?

  • A) Pod никога не стартира, защото лимитът е задължително поле
  • B) Само предупреждение се появява на таблото за наблюдение, работата не се засяга
  • C) Kubernetes автоматично налага безопасни ограничения по подразбиране, без риск
  • D) Подът може да расте неограничено и да консумира ресурсите на възела, като по този начин срива съседните услуги ✔

Обяснение: Pod, който няма ограничение на ресурсите, може да расте неограничено, да консумира всички ресурси на възела, на който работи, и да срине съседни услуги, например, с изтичане на памет. Ето защо дефинирането на заявки/лимити е в основата на устойчивостта.

9. Как да избегнем „умора от предупреждение“ при наблюдение и настройка на алармата?

  • A) Задайте аларми за възможно най-много показатели и генерирайте сигнали при всяко колебание.
  • B) Задайте всички аларми на най-високото ниво на сериозност
  • C) Задействане на аларми с моментни стойности без задаване на време (за)
  • D) Поддържане на алармите, ориентирани към действие и при правилната спешност, тестване на прагове с исторически данни, обединяване на ненужни ✔

Описание: Всяка аларма трябва да бъде действаща и с необходимата спешност; Информация, която не изисква действие, се показва на таблото, не събужда никого. Праговете на алармата се тестват спрямо историческите данни на системата и ненужните/повтарящите се аларми се консолидират. По този начин истинската аларма няма да се изгуби в шума.

10. Какъв е най-добрият приоритетен ред по време на производствен инцидент?

  • А) Първо намерете точната основна причина и я намалете едва когато причината е ясна.
  • B) Първо напишете аутопсия, след това докоснете услугата
  • C) Първо намалете (услуга за възстановяване/възстановяване), оставяйки анализа на първопричината за по-късно ✔
  • Г) Първо намерете лицето, отговорно за инцидента, и го докладвайте

Обяснение: Златното правило е „първо намалете, след това проучете“. Целта е първо да възстановите услугата или да я върнете обратно към известна добра версия (смекчаване); Анализът на първопричината се извършва спокойно, след като натискът отшуми. Изчакването да се открие точната основна причина увеличава времето за възстановяване (MTTR).

11. Каква е основната цел на безукорната култура след смъртта?

  • А) Идентифициране на лицето, което е направило грешката и прехвърляне на отговорността върху него/нея
  • B) Фокусиране върху системи и процеси и насърчаване на ученето; ✔ Учене на уроци, които предотвратяват повторението, вместо да обвиняват
  • В) Никога не докладвайте за инцидента и се уверете, че ще бъде забравен
  • Г) Писане само на технически подробности и без добавяне на активни елементи

Обяснение: Blameless postmorte се фокусира върху въпроса „коя система и процес са позволили тази грешка“, а не „кой я е направил“. Хората споделят грешката открито, ако знаят, че няма да бъдат наказани; Скритата грешка се повтаря. Докладът не е обвинителен доклад, а учебен документ, пълен с ориентирани към действие елементи.

12. В облачната оптимизация на разходите (FinOps), коя е най-логичната стъпка, която трябва да предприемете, преди да преминете към ангажирани отстъпки (Резервиран/Спестяващ план)?

  • А) Първо поемете възможно най-дълъг ангажимент, помислете за отпадъците по-късно
  • B) Първо почистете отпадъците (неактивно затваряне, правилно оразмеряване), след това се ангажирайте с ангажирана употреба ✔
  • C) Незабавно преместете всички ресурси към спот капацитет
  • Г) Изтриване на най-скъпия артикул без преглед на данните от фактурата

Обяснение: Първо трябва да се почистят отпадъците (затваряне на празни ресурси, намаляване на извънгабаритните ресурси). В противен случай ще заключите напразното използване на намалена цена за 1-3 години. Правилното оразмеряване и неактивното почистване не изискват ангажименти и са почти безрискови.

13. Коя е най-важната мярка за сигурност, ако скрипт, предложен от AI, има реда 'rm -rf "$DIR"/'?

  • A) Изпълнението на скрипта директно в prod, без да го четете, ще ускори
  • B) Добавете set -euo pipefail и контрол на празна променлива и първо опитайте със суха работа ✔
  • C) Съкращаването на името на променливата е достатъчно
  • D) Използването на rm -rf --force вместо rm решава проблема

Обяснение: Ако $DIR е празно, този оператор може да се опита да изтрие основната директория. Спирането на недефинираната променлива с 'set -u' и проверката дали променливата не е празна, преди да я изтриете (напр. [ -n "$DIR" ] || изход 1) избягва катастрофа. Освен това, разрушителните операции трябва да се опитат първо със суха работа.

14. Какво е първото нещо, което трябва да направите, ако ключ за достъп до облак случайно изтече в публично хранилище?

  • А) Незабавно анулиране и подновяване (завъртане) на ключа; Само изтриването не е достатъчно ✔
  • Б) Просто изтрийте файла от хранилището и ключът е в безопасност
  • В) Не правя нищо, защото никой не го е видял
  • D) Правенето на съхранението частно елиминира необходимостта от завъртане на ключа

Обяснение: Изтеклата тайна трябва да бъде анулирана и завъртена незабавно. Просто изтриването на файла не е достатъчно, защото тайната остава в историята на Git и публичните хранилища се сканират от ботове за секунди. След анулиране/връщане въздействието се оценява и се добавя таен скенер за предотвратяване на повторение.

15. Кой от следните подходи минимизира риска при пускане на нова версия на Prod?

  • A) Предоставяне на новата версия на всички потребители едновременно (голям взрив) и без изготвяне на план за връщане назад
  • B) Разполагането се счита за завършено веднага щом се появи „зелено“, без да се извършва допълнителна проверка
  • C) Използване на контролирана стратегия, като канарче/синьо-зелено/флаг на функцията, готов план за връщане назад и тест за дим + наблюдение на показатели след внедряване ✔
  • Г) Оставяне на тестването на критичните бизнес пътеки изцяло на изкуствения интелект и изобщо не определянето им.

Обяснение: Стратегиите за контролирано пускане (започване с малък процент с канарче, незабавно връщане назад със синьо-зелено, отделяне на разполагането от пускане с флаг за функция) ограничават риска. В допълнение, ясен план за връщане преди разгръщане и мониторинг на златен сигнал с тестване на дим след разгръщане са от съществено значение; „изглежда зелено“ не означава, че работи.