Единица 1 / 11

Вовед во DevOps и Cloud AI: улоги, граници, автентикација, безбедност и тајни

Добивки:

  • Можноста да се разликува каде во синџирот DevOps (цевковод, конфигурација, скрипта, дневник) вештачката интелигенција заштедува реално време и каде одлуките што влијаат на производството се препуштени на луѓето, во зависност од нивото на ризик на задачата.
  • Способност да се примени дисциплина што го потврдува секој излез на вештачка интелигенција преку чекорите на поврзување со изворот, сушење и поминување низ системскиот филтер.
  • Способност да стекнете навика никогаш да не ставате тајни на барања, да ги маскирате и да работите за одбранбени цели само на овластени системи.

Една ноќ во 03:14 вашиот телефон ѕвони: услугата за плаќање е во прекин, парите и угледот се губат секоја минута. Друг ден, една погрешна команда рестартира илјадници сервери. Ова е светот на професионалците на DevOps - одговорност за сите цевководи, автоматизација и на повик низ кои поминува софтверот од складиштето за кодови (каде што се чува изворот на софтверот) додека не стигне до рацете на клиентот. DevOps е комбинација од зборовите „Развој“ и „Операции“: тоа е култура и збир на практики што го донесуваат развојот на софтверот и неговото вклучување во еден брз, сигурен тек. Секој чекор од овој тек произведува команда, конфигурациска датотека, скрипта. Вештачката интелигенција (ВИ - софтвер кој извлекува обрасци од историски податоци и произведува текст, код и предвидувања) ви заштедува многу време во ова изобилство на текст.

Но, самиот почеток на овој модул е ​​јасен: ВИ е асистент, генератор на нацрти и алатка за поддршка на одлуки; Вие сте одговорни да одлучите што влегува во живата средина (производство, системот што го користат вистинските клиенти), кога и кое копче да притиснете среде ноќ. Во DevOps, цената на грешката не е минути, туку застој, губење податоци и нарушување на безбедноста. Затоа во оваа прва единица ќе се фокусираме на дисциплината, а не на алатката.

Каде во синџирот на DevOps ви е добро вештачката интелигенција?

Ајде да ги поделиме работните места на DevOps на два големи кластери. Прв кластер: повторувачки, текстуални и структурирани работни места. Пишување опис на CI/CD (Континуирана интеграција / Континуирано доставување — цевковод што автоматски го тестира и ослободува кодот), изготвување Dockerfile (датотека со рецепт што пакува апликација во контејнер), објаснување на комплексен Terraform (алатка што ја дефинира инфраструктурата како код), сумирање на стек од дневници (записи за настани што ги продуцираат системите flagg, an. Во овие задачи, вештачката интелигенција ги намалува минутите на секунди и не се заморува.

Втор кластер: одлуки што резултираат со нарушување, пари или безбедност. Дали изданието ќе оди на прод, која услуга ќе се рестартира среде ноќ, како да се складира тајна, кој ресурс ќе се исклучи со намалување на трошоците. Овие одлуки бараат контекст, системско знаење и одговорност. Овде, вештачката интелигенција ги прави видливи опциите и ризиците - но вие го притиснете копчето „примени“.

Ајде да ја разјасниме разликата во една реченица: AI е силна на прашањата „што прави оваа конфигурација и како да се напише“; Одлуката е ваша кога станува збор за прашања како „Дали треба да го применам ова на производот и кој ќе гарантира за тоа?

Совет: Пред да префрлите работа на вештачка интелигенција, прашајте: „Што ќе изгубам ако овој излез е погрешен?“ Ако одговорот е „неколку минути“, слободно делегирајте. Ако одговорот е „прекин на производството, загуба на податоци или истекување“, дозволете вештачката интелигенција да го произведе нацртот и вие да ја потврдите одлуката и имплементацијата.

Чекор по чекор: како функционира бизнис DevOps со AI?

  1. Собери контекст. Кој облак (AWS, Azure, GCP), која верзија на алатката, какви ограничувања? Ако на ВИ му дадете нецелосен контекст, ќе добиете нецелосен и опасен излез.
  2. Дефинирајте јасни задачи. Не „напишете цевковод“; Кажете: „Со GitHub Actions, напишете работен тек во главната гранка што работи на push, извршува тестови, ја гради сликата на Docker, но не ја распоредува“.
  3. Направете го нацртот. Дозволете AI да ја напише првата верзија.
  4. Потврди. Проверете ја синтаксата, проверете дали се протекоа доверливи информации, тестирајте со суво извршување (режим што всушност и покажува на апликацијата што да прави).
  5. Пробајте го во Sandbox. Никогаш не го правете првиот обид во прод; работи во средина за тестирање/сценирање.
  6. Нанесете постепено и следете. Преземете го во живо со следење на метрика и дневници.

Дисциплина за верификација: три чекори

ВИ зборува течно и самоуверено; Тоа не значи дека е вистина. Вештачката интелигенција повремено произведува халуцинации - сочинува непостоечко командно знаме, име на услуга во облак или конфигурациски клуч како вистински. Во DevOps, лажното знаменце --force може да брише податоци, додека лажната дозвола IAM (управување со идентитет и пристап) создава безбедносна ранливост. Рефлекс:

  1. Поврзете го со изворот. Дали секоја команда и знаме дадени од ВИ е навистина во официјалната документација? Прашајте „Кажи ми во која верзија доаѓа ова знаме и неговото име во официјалниот документ“; Ако не сте сигурни, не верувајте.
  2. Исушете го. Погледнете што се случува без всушност да го примените со модови како тераформски план, kubectl --dry-run, --check.
  3. Поминете го низ системскиот филтер. Дали излезот одговара на вашата архитектура, безбедносна политика и имињата на достапните ресурси? Вашето знаење за доменот е последниот филтер.
Внимание: „АИ така напиша“ не е оправдување. Во случај на прекин на прод, одговорноста не припаѓа на вештачката интелигенција, туку на лицето кое ја извршува таа команда без да ја потврди. Непроверената команда за вештачка интелигенција е исто толку ризична како и rm -rf извршена без да биде прочитана.

Безбедност и тајни: никогаш не протекувајте

Најкритичното правило за приватност во DevOps се однесува на тајните. Тајна; Тоа е доверлива информација како лозинка, клуч API, низа за поврзување со базата на податоци, приватен сертификат, што може да го отвори целиот ваш систем доколку е компромитиран. Не ставајте вистински тајни во известување за вештачка интелигенција. Ако блок од код содржи вистински клуч за пристап AWS, содржината на датотеката .env или лозинка за производна база на податоци, маскирајте ги со места како што се <AWS_ACCESS_KEY> наместо AKIA... пред да ги дадете на вештачката интелигенција.

Проверете го и кодот што го произведува вештачката интелигенција: вештачката интелигенција понекогаш произведува примери што ја внесуваат тајната директно во кодот за погодност. Ова е безбедносна ранливост. Всушност, тајните се чуваат во таен сеф (Vault, AWS Secrets Manager, Azure Key Vault) и се инјектираат како променливи на околината за време на извршувањето.

Друга етичка и законска граница во оваа област: одбранбена употреба. Користете вештачка интелигенција за да ги зацврстите вашите системи, да скенирате за ранливости и да извлечете траги од напади од дневници. Неовластен пристап до туѓ систем, неовластено скенирање или создавање алатка за напад е нелегален и надвор од опсегот на оваа платформа. Секогаш работете во системи за кои имате овластување и сте добиле писмена дозвола преку договор.

Кои податоци влегуваат во кое возило?

Тип на податоци

пример

соодветно возило

отворени податоци

Официјален документ, отворен код

Секое возило

Внатрешни податоци (не е тајна)

Општа архитектура дијаграм, генерички гасовод

Возило одобрено од институција

доверливи/чувствителни

Тајна, прод IP/топологија, податоци за клиентите

Само возило договорено од институцијата, чии податоци не одат на обука; со маскирање

три мини футроли

Случај 1 — Времето е стекнато на вистинското место. Инженер на DevOps помина 6 часа преместувајќи го стариот цевковод Џенкинс од 300 линии до GitHub Actions. Тој ја намали работата на 90 минути со тоа што вештачката интелигенција ќе објасни чекор по чекор и ќе направи нацрт. Тој го потрошил заштеденото време за да го потврди секој чекор произведен од вештачката интелигенција во инсценирањето, еден по еден. АИ зеде механички превод; Потврдувањето остана кај човекот.

Случај 2 - Верификацијата избегна катастрофа. Еден тим побара од вештачката интелигенција скрипта за чистење на Terraform. АИ даде течен код; Но, кога инженерот го извршил тераформниот план, открил дека сценариото исто така планира да ја избрише производната база на податоци што се користи - вештачката интелигенција погрешно го напишала филтерот за ресурси. Сувото работење спречи губење на податоци со часови.

Случај 3 - Враќање од тајно истекување. Прашајќи „зошто таа грешка при распоредувањето“, еден практикант ја залепи целата датотека .env во јавна алатка со вистинската лозинка за базата на податоци за производство внатре. Вишиот инженер веднаш ги ротирал и ги регенерирал клучевите. Точниот начин беше да се маскира лозинката со <DB_PASSWORD> и да се сподели само пораката за грешка.

Четири шаблони за копирање

1) Проценка на соодветноста на работата:

Вашата улога: виш консултант за DevOps/SRE. Ќе ти опишам улога. Кажете ми (1) дали ова е задача за изготвување/анализа што може безбедно да се делегира на вештачката интелигенција или критична одлука што влијае на производот; (2) кажете го најлошиот исход ако тргне наопаку; (3) кажете ги чекорите за верификација што треба да се направат пред имплементацијата. Задача: [ТУКА]

2) Безбедно давање контекст (тајно маскирање):

Анализирајте ја грешката подолу. Ги маскирав сите тајни со <PLACEHOLDER>; Исто така, предлагате НИКОГАШ да не создавате вистинска тајна во решението, користете место за место и вметнете ја тајната во кодот, читајте од тајниот сеф. Грешка/дневник: [МАСКИРАНА СОДРЖИНА]

3) Проверка на команди:

Објаснете ми ја оваа команда: запишете што прави секое знаме, на која верзија на алатката се применува и нејзиниот најопасен несакан ефект. Конечно наведете 3 проверки што треба да ги направите пред да го извршите ова во прод. Команда: [ТУКА]

4) Прашање за учење/концепт:

Јас [КОНЦЕПТ: на пр. Објаснете го концептот на [сино-зелено распоредување] како да му го објаснувате на инженерот DevOps: што прави, кога да го користите, кога да не го користите, 2 типични грешки. Бидете кратки и конкретни.

Слаб промпт / Силен промпт

Слаб: „Напиши ми скрипта за распоредување“.

Заклучок: не е јасно кој облак, која алатка, која средина; Вештачката интелигенција произведува генеричка, можеби не-продуктивна скрипта што ја вметнува тајната во кодот.

Силно: „Напишете нацрт на баш скрипта што се распоредува на AWS ECS (Еластична услуга за контејнер). Регионот е eu-central-1, сликата доаѓа од ECR. Никогаш не вметнувајте тајни во кодот, читајте ги од AWS Secrets Manager. Ако има грешка на секој чекор, запрете (поставете -euo pipefail сите чекори за извршување на 3 Write).

Разлика: вториот повик ги дава облакот, алатката, околината, безбедносното правило и очекувањата за валидација - излезот е директно корисен и безбеден.

Вообичаени грешки

  • Вметнување на вистинската тајна во известувањето. Најчеста и опасна грешка. Секогаш маскирај.
  • Безконтекстно барање. Без да се специфицира облак, верзија, околина, посакуваниот излез често припаѓа на погрешна верзија или погрешна архитектура.
  • Прескокнување на суво трчање. Спроведувањето без планирање/--dry-run е најскапата кратенка во DevOps.
  • Правејќи го првиот обид во прод. Секој нов излез на вештачка интелигенција прво треба да се изврши при тестирање/стапирање.
  • Делегирање на одговорноста со „АИ рече“. Одговорноста секогаш останува кај инженерот што го спроведува.
  • Доверба на халуцинаторното знаме. Извршување на непостоечко командно знаме без барање.

Сумирано

DevOps и облак AI; Тоа е асистент кој обезбедува голема брзина во задачите интензивни на текст, како што се цевковод, конфигурација, скрипта и дневник. Но, одговорноста за одлуките кои влијаат на производот, тајното управување и конечната имплементација останува на надлежниот инженер. Верификацијата во три чекори (поврзете се со изворот, исушете, поминете низ системскиот филтер), никогаш не протекување тајни и работа за одбранбени цели само на овластени системи се водечките принципи на овој модул.

Задача за апликација

Изберете неодамнешна задача DevOps од вашата работа (или примерок проект). (1) Опишете ја оваа задача на вештачката интелигенција користејќи го образецот „проценка на соодветноста на работата“ погоре и прочитајте ја нејзината класификација. (2) Ако содржи тајна, подгответе контекст текст со маскирање. (3) Проверете го излезот на вештачката интелигенција со верификација во три чекори и забележете во една реченица што сте коригирале на секој чекор.

листа за проверка

  • [ ] Ја класифицирав мојата задача како „работа што може да се додели“ или „критична одлука“.
  • [ ] Не залепив никакви вистински тајни во промптот; Сите ги маскирав со местенка.
  • [ ] Додадов контекст на известувањето во врска со облакот, верзијата на алатката и околината.
  • [ ] Го проверив излезот на вештачката интелигенција со суво возење/план пред да го применам.
  • [ ] Првиот обид го направив во околината за тестирање/сценирање, не во прод.
  • [ ] Работев само на системи во кои имав авторитет, за одбранбени цели.