Јединице
1. Увод у ДевОпс и Цлоуд АИ: улоге, границе, аутентификација, безбедност и тајне 2. Дизајнирање ЦИ/ЦД цевовода са вештачком интелигенцијом: ГитХуб акције и ГитЛаб ЦИ 3. Управљање инфраструктуром као код: вештачка интелигенција са Терраформом и ИаЦ-ом 4. Контејнеризација: Доцкерфиле и оптимизација слике са вештачком интелигенцијом 5. Кубернетес: Манифест, кормило и АИ-поверед оркестрација 6. Мониторинг и опсервабилност: метричка, дневник, правила праћења и аларма 7. Управљање инцидентима и постмортем: анализа корена уз помоћ вештачке интелигенције 8. Оптимизација трошкова у облаку (ФинОпс): Лов на отпад помоћу вештачке интелигенције 9. Генерисање скрипти и аутоматизације: Басх, Питхон и ПоверСхелл 10. Безбедност и управљање тајнама: ДевСецОпс и вештачка интелигенција 11. Провера производа, стратегије издавања и ток АИ рада од краја до краја
Јединица 2 / 11

Дизајнирање ЦИ/ЦД цевовода са вештачком интелигенцијом: ГитХуб акције и ГитЛаб ЦИ

Добици:

  • Способност разумевања концепта ЦИ/ЦД, анатомије цевовода (окидач, посао, корак, тркач, артефакт) и разлика између ГитХуб Ацтионс и ГитЛаб ЦИ и вештачка интелигенција производи цевоводе са правим контекстом
  • Способност провере и обезбеђивања тајних референци, дозвола и постојања позваних компоненти у цевоводу које производи вештачка интелигенција
  • Способност примене принципа неписања тајни у обичном тексту, давања минималног овлашћења и држања контроле примене одвајањем од ЦИ

Срце модерног софтвера је аутоматизовани цевовод кроз који код напушта рачунар програмера док безбедно не стигне до корисника. Ова цев се зове ЦИ/ЦД. ЦИ (Цонтинуоус Интегратион) је аутоматска компилација и тестирање сваке промене кода; Његова сврха је да ухвати грешку пре него што програмер уопште напусти тастатуру. ЦД (Цонтинуоус Деливери/Деплоимент) је аутоматска припрема или чак пуштање тестираног кода. ЦИ/ЦД цевовод је конфигурациони фајл који дефинише ове кораке по редоследу — обично написан у ИАМЛ-у (формат конфигурационог текста читљив за људе).

Писање ових ИАМЛ датотека ручно је заморно, опширно и подложно грешкама; Ако удубљење склизне за један размак, цео цевовод се ломи. Овде долази АИ: са правим контекстом, производи радни нацрт за секунде. Али ваш је посао да разумете и верификујете шта ради сваки генерисани корак — јер је ово цев која преноси ваш код за производњу.

Анатомија ЦИ/ЦД цевовода

Сваки цевовод се састоји од неколико основних концепата. Не можете контролисати АИ излаз без познавања ових:

  • Триггер: Шта покреће цевовод? Обично гурање на грану, захтев за повлачење (захтев за спајање) или распоред.
  • Посао: Логичка јединица која извршава низ корака; на пример "тестирај", "изгради", "размести".
  • Корак: Једна команда или радња у оквиру посла.
  • Руннер: Виртуелна машина или контејнер на којем се покрећу послови.
  • Артефакт: Излаз који производи један посао и користи се у наредним пословима (на пример, компајлирана датотека).
  • Тајна: Поверљиве информације које Пипелине користи, али не би требало да остану у обичном тексту у спремишту.

ГитХуб Ацтионс чува ову дефиницију у .гитхуб/воркфловс/*.имл датотекама; Јединица је радни ток → посао → хијерархија корака. ГитЛаб ЦИ, с друге стране, користи фазу → структуру посла у датотеци .гитлаб-ци.имл. АИ познаје обе синтаксе, али морате експлицитно рећи коју желите.

Савет: Када питате АИ за цевоводе, увек наведите: платформу (ГитХуб Ацтионс или ГитЛаб ЦИ), језик/оквир (Чвор, .НЕТ, Питхон…), окидач и да ли ће бити примењен. Ове четири информације удвостручују корисност резултата.

Корак по корак: Дизајнирање цевовода са АИ

  1. Разјасните циљ. На пример, „покрени тестове на пусх то маин, направи слику, али примени само када је ознака бачена“.
  2. Нека се произведе костур. Питајте АИ за основни ток посла.
  3. Прочитајте и разумејте кораке. Проверите шта свака линија за покретање и коришћење ради.
  4. Проверите тајне референце. Да ли се тајне позивају са ${{ сецретс.НАМЕ }} или су уграђене у код?
  5. Пробајте локално/ЦИ. Покрените га на малом тестном спремишту, погледајте црвено-зелено (фаил-пасс) понашање.
  6. Проширите постепено. Прво само додајте ЦИ (тестирање), затим направите, а последње додајте имплементирајте.

Сигурност: тајна и дозвола у припреми

ЦИ/ЦД је једно од места где тајне највише цуре. Три златна правила:

  1. Никада немојте писати тајне у обичном тексту у ИАМЛ-у. Користите тајно спремиште платформе (ГитХуб Сецретс, ГитЛаб ЦИ/ЦД Вариаблес) и позовите га са ${{ сецретс.Кс }}.
  2. Најмања привилегија. Токен који дате Пипелине-у имаће само онолико овлашћења колико је потребно. Сузите ово са дозволама: блокирајте у ГитХуб акцијама.
  3. Не притискајте тајну на дневнику. Линије попут ехо $ТОКЕН откривају тајну у дневнику. Платформе маске, али будите такође опрезни.
Опрез: Ради практичности, АИ понекад поставља уграђене вредности као што је лозинка: 123456 или прешироке дозволе: уписи све у узорке цевовода. Увек поправи ово: промени тајну у референцу, скупи дозволу.

упоредни графикон

концепт

ГитХуб Ацтионс

ГитЛаб ЦИ

Конфигурациони фајл

.гитхуб/воркфловс/*.имл

.гитлаб-ци.имл

грађевинска јединица

радни ток → посао → корак

фаза → посао

окидач

десет:

правила: / само:

Призвати тајну

${{ сецретс.НАМЕ }}

$НАМЕ (ЦИ/ЦД променљиве)

Спремна компонента

користи: ацтион@в4

укључују: /темплате

тркач

ради на:

ознаке:

три мини кофера

Случај 1 — Смањено на 6 сати и 40 минута. Тим је желео да аутоматизује свој ручни процес тестирања, изградње и постављања, али нико није био упознат са ИАМЛ-ом. Они су описали ИЗ као „Ноде.јс пројекат, ГитХуб Ацтионс, нпм тест и нпм буилд у пусх то маин, имплементирати само у в* таг-у“. АИ је произвео радни скелет од 40 линија; Тим је верификовао сваки корак и кренуо уживо за 40 минута. Да су га написали руком, то би био радни дан.

Случај 2 — Аутентификација је открила безбедносни пропуст. Инжењер је замолио АИ да примени ток посла. Излаз је укључивао дозволе: врите-алл — што значи да токен може писати у спремиште, пакете, све. Инжењер је то приметио и сузио је са дозволама: { садржај: читање, пакети: писање }. Ово је елиминисало ризик да отета зависност замени цело спремиште.

Случај 3 — Халуцинаторна акција. Један тим је покренуо коришћење које је предложила вештачка интелигенција: ацтионс/деплои-то-авс@в3 линију; Није било такве званичне акције, АИ је измислио име. Цевовод је експлодирао са "акција није пронађена". Лекција: Проверите на Маркетплаце-у да свака компонента позвана са користи: заиста постоји.

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

1) Основни ЦИ ток рада:

Напишите ЦИ ток рада за ГитХуб акције. Пројекат: [ЛАНГУАГЕ/ФРАМЕВОРК].Триггер: пусх анд пулл захтев до главне гране. Кораци: инсталирајте зависности, покрените тестове, покрените линт. НЕ Деплои.Руннер убунту-латест. Није потребна тајна. Анотирајте ИАМЛ.

2) Примењени ток рада ЦД-а (безбедно):

Напишите ток рада постављања за [ПЛАТФОРМУ]. Требало би да ради само на ознаци 'в*'. Циљ: [МЕДИЈИ/ОБЛАК]. Правила: - НИКАДА не пишите тајне у обичном тексту, позовите их са ${{ сецретс.

3) Опишите постојећи цевовод:

Опишите следећи [ПЛАТФОРМ] цевовод ред по ред: шта ради сваки посао, којим редоследом се покреће, коју тајну користи и које су његове две најризичније тачке? На крају, предложите 3 побољшања.Пипелине: [ИАМЛ ЦОНТЕНТ]

4) Убрзајте цевовод:

Следећи ЦИ цевовод ради споро (трајање: [Кс мин]). Испитајте коришћење кеша, паралелне послове и непотребне кораке. Дајте 5 конкретних, делотворних предлога за убрзање и запишите процењени утицај сваког од њих. Цевовод: [ИАМЛ]

Слаби промпт / Јаки промпт

Слабо: „Пишите радни ток ГитХуб Ацтионс.“

Резултат: нејасно је који језик, који окидач, да ли постоји распоређивање; АИ даје генеричку инстанцу чвора, вероватно неће одговарати вашем пројекту и може чврсто кодирати тајну.

Јака: „Пишите радни ток ГитХуб Ацтионс. Питхон 3.12 пројекат, покрените питест + руфф у захтеву за повлачење и главном гурању; БЕЗ размештања; убрзајте зависности помоћу кеш меморије; нису потребне тајне. Извезите ИАМЛ са коментарима.“

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

Уобичајене грешке

  • Уграђивање тајне у ИАМЛ. Лозинка/токен отвореног текста је најчешћа рањивост ЦИ.
  • Превише широка дозвола. Дајте минималну потребну дозволу уместо писања свих.
  • Ослањајући се на непостојећу акцију/шаблон. Проверите да ли је АИ направио: линије на Маркетплаце-у.
  • Збуњујуће Деплои са ЦИ. Тест се може изводити при сваком гурању, али постављање мора бити контролисано и одобрено.
  • Не користите кеш меморију. Инсталирање зависности од нуле при сваком покретању успорава цевовод за неколико минута.
  • Пробајте први ток посла директно у главном спремишту. Прво га покрените у тестном спремишту.

Укратко

ЦИ/ЦД цевоводи су аутоматизоване цеви које безбедно померају код у прод и дефинисане су помоћу ИАМЛ-а. АИ брзо производи радне нацрте за ГитХуб Ацтионс и ГитЛаб ЦИ — али морате бити јасни у вези платформе, језика, покретача и обима примене. Постоје три правила у безбедности: позовите тајне према референци, доделите минималне привилегије, не штампајте тајне у дневнику. Ваша је одговорност да проверите да ли свака компонента користи:/инцлуде: заиста постоји и шта сваки корак ради.

Задатак апликације

Изаберите једноставан пример пројекта (чак и „здраво свет“ на вашем језику ће бити довољно). Нека АИ произведе ток посла са горе наведеним шаблоном „Основни ЦИ радни ток“. Затим: (1) напишите својим речима шта сваки корак чини; (2) проверите да ли су тајне уграђене и да су дозволе уске; (3) Ако је могуће, пустите га у тест резервоар и посматрајте црвено-зелено понашање.

контролна листа

  • [ ] Додао сам платформу, језик/оквир, окидач и опсег примене у свој упит.
  • [ ] Разумем шта сваки посао и корак ради у генерисаном ИАМЛ-у.
  • [ ] Ниједна тајна није отворени текст; све ${{ сецретс.Кс }} / ЦИ променљива.
  • [ ] Сузио сам дозволе на минимално овлашћење.
  • [ ] Проверио сам да све позване радње/шаблони заиста постоје.
  • [ ] Учинио сам корак имплементације контролисан уз одобрење/заштиту.