Enota 1 / 11

Uvod v DevOps in AI v oblaku: vloge, meje, avtentikacija, varnost in skrivnosti

Dobički:

  • Možnost razlikovanja, kje v verigi DevOps (cevovod, konfiguracija, skript, dnevnik) umetna inteligenca prihrani realni čas in kje so odločitve, ki vplivajo na proizvodnjo, prepuščene ljudem, odvisno od stopnje tveganja naloge.
  • Sposobnost uporabe discipline, ki preverja vsak izhod umetne inteligence s koraki povezovanja z virom, sušenja in prehajanja skozi sistemski filter.
  • Sposobnost pridobivanja navade, da nikoli ne prilepi skrivnosti na zahteve, jih prikrije in deluje v obrambne namene samo na pooblaščenih sistemih.

Neke noči ob 03.14 vam zazvoni telefon: plačilna storitev ne deluje, denar in ugled se izgubljata vsako minuto. Še en dan en sam napačen ukaz znova zažene na tisoče strežnikov. To je svet profesionalcev DevOps — odgovornost za vse cevovode, avtomatizacijo in dežurstva, skozi katere prehaja programska oprema od repozitorija kode (kjer je shranjen izvor programske opreme), dokler ne pride v roke stranke. DevOps je kombinacija besed "razvoj" in "operacije": je kultura in nabor praks, ki združujejo razvoj programske opreme in njeno izvajanje v en hiter in zanesljiv tok. Vsak korak tega toka ustvari ukaz, konfiguracijsko datoteko, skript. Umetna inteligenca (AI – programska oprema, ki iz zgodovinskih podatkov izlušči vzorce in ustvari besedilo, kodo in napovedi) vam pri tej obilici besedila prihrani veliko časa.

Toda sam začetek tega modula je jasen: AI je pomočnik, generator osnutkov in orodje za podporo odločanju; Vi ste tisti, ki odločate, kaj gre v živo okolje (proizvodnja, sistem, ki ga uporabljajo prave stranke), kdaj in kateri gumb pritisniti sredi noči. V DevOps stroški hrošča niso minute, ampak izpadi, izguba podatkov in kršitev varnosti. Zato se bomo v tej prvi enoti osredotočili na disciplino, ne na orodje.

Kje v verigi DevOps pride AI prav?

Razdelimo opravila DevOps v dve veliki skupini. Prvi grozd: ponavljajoča se, besedilna in strukturna opravila. Pisanje opisa CI/CD (Continuous Integration/Continuous Delivery — cevovod, ki samodejno testira in izda kodo), priprava datoteke Dockerfile (datoteka z recepti, ki pakira aplikacijo v vsebnik), razlaga zapletenega bloka Terraform (orodje, ki definira infrastrukturo kot kodo), povzemanje sklada dnevnikov (zapisov dogodkov, ki jih ustvarijo sistemi) in označevanje anomalije, priprava osnutka skripta bash. Pri teh opravilih AI skrajša minute na sekunde in se ne utrudi.

Drugi grozd: odločitve, ki povzročajo motnje, denar ali varnost. Ali bo izdaja šla v proizvodnjo, katera storitev bo znova zagnana sredi noči, kako shraniti skrivnost, kateri vir bo zaprt zaradi znižanja stroškov. Te odločitve zahtevajo kontekst, poznavanje sistema in odgovornost. Tukaj umetna inteligenca naredi možnosti in tveganja vidne – vendar pritisnete gumb »uporabi«.

Razjasnimo razliko v enem stavku: AI je močan pri vprašanjih "kaj počne ta konfiguracija in kako jo napisati"; Odločitev je vaša, ko gre za vprašanja, kot je "Ali naj to uporabim za izdelek in kdo bo jamčil za to?"

Namig: preden delo oddate zunanjemu izvajalcu umetne inteligence, se vprašajte: "Kaj izgubim, če je ta rezultat napačen?" Če je odgovor "nekaj minut", vas prosimo, da jih prenesete. Če je odgovor "izpad proizvodnje, izguba ali uhajanje podatkov", naj AI pripravi osnutek, vi pa preverite odločitev in izvedbo.

Korak za korakom: kako deluje podjetje DevOps, ki ga poganja AI?

  1. Zberi kontekst. Kateri oblak (AWS, Azure, GCP), katera različica orodja, kakšne omejitve? Če umetni inteligenci daste nepopoln kontekst, boste dobili nepopoln in nevaren rezultat.
  2. Določite jasne naloge. Ne "napisati cevovoda"; Recite: "Z GitHub Actions napišite delovni tok v glavni veji, ki deluje na potiskanje, izvaja teste, gradi sliko Docker, vendar je ne razmesti."
  3. Izdelajte osnutek. Naj AI napiše prvo različico.
  4. Preveri. Preverite sintakso, preverite, ali je prišlo do uhajanja zaupnih informacij, preizkusite s suhim zagonom (način, ki aplikaciji dejansko pokaže, kaj naj naredi).
  5. Poskusite v peskovniku. Nikoli ne naredite prvega poskusa v prod; izvajati v testnem/uprizoritvenem okolju.
  6. Nanašajte postopoma in spremljajte. Oživite s spremljanjem meritev in dnevnikov.

Disciplina preverjanja: trije koraki

AI govori tekoče in samozavestno; To ne pomeni, da je res. Umetna inteligenca občasno ustvari halucinacije – izdela neobstoječo ukazno zastavico, ime storitve v oblaku ali konfiguracijski ključ kot resničnega. V DevOps lahko lažna zastavica --force izbriše podatke, medtem ko lažno dovoljenje IAM (Upravljanje identitete in dostopa) ustvari varnostno ranljivost. Refleks:

  1. Povežite ga z virom. Ali je vsak ukaz in zastavica, ki jo da AI res v uradni dokumentaciji? Vprašajte "Povej mi, v kateri različici je ta zastavica in njeno ime v uradnem dokumentu"; Če niste prepričani, ne zaupajte.
  2. Teči na suho. Oglejte si, kaj se zgodi, ne da bi ga dejansko uporabili z modifikacijami, kot je terraform načrt, kubectl --dry-run, --check.
  3. Prepustite ga skozi sistemski filter. Ali se rezultat ujema z vašo arhitekturo, varnostno politiko in razpoložljivimi imeni virov? Vaše znanje o domeni je zadnji filter.
Pozor: "AI je tako napisal" ni utemeljitev. V primeru prekinitve produkta odgovornost ne pripada umetni inteligenci, temveč osebi, ki zažene ta ukaz, ne da bi ga preverila. Nepreverjen ukaz AI je prav tako tvegan kot rm -rf, ki se izvede, ne da bi bil prebran.

Varnost in skrivnosti: nikoli ne uhajajo

Najbolj kritično pravilo zasebnosti v DevOps se nanaša na skrivnosti. Skrivnost; To so zaupni podatki, kot so geslo, ključ API, povezovalni niz baze podatkov, zasebno potrdilo, ki lahko odpre vaš celoten sistem, če je ogrožen. V poziv AI ne prilepite nobenih pravih skrivnosti. Če blok kode vsebuje dejanski ključ za dostop do AWS, vsebino datoteke .env ali geslo za produkcijsko bazo podatkov, jih zamaskirajte z nadomestnimi oznakami, kot je <AWS_ACCESS_KEY> namesto z AKIA ... preden jih daste AI.

Preverite tudi kodo, ki jo ustvari umetna inteligenca: umetna inteligenca včasih ustvari primere, ki zaradi priročnosti kodirajo skrivnost neposredno v kodo. To je varnostna ranljivost. Pravzaprav se skrivnosti hranijo v skrivnem trezorju (Vault, AWS Secrets Manager, Azure Key Vault) in se med izvajanjem vbrizgajo kot spremenljivke okolja.

Druga etična in pravna omejitev na tem področju: obrambna uporaba. Uporabite umetno inteligenco za utrjevanje sistemov, iskanje ranljivosti in pridobivanje sledi napadov iz dnevnikov. Nepooblaščen dostop do tujega sistema, nepooblaščeno skeniranje ali ustvarjanje orodja za napad je nezakonito in izven obsega te platforme. Vedno delajte v sistemih, za katere ste pooblaščeni in ste s pogodbo prejeli pisno dovoljenje.

Kateri podatki gredo v katero vozilo?

Vrsta podatkov

primer

primerno vozilo

odprtih podatkov

Uradni dokument, odprtokodna koda

Vsako vozilo

Interni podatki (ni skrivnost)

Splošni arhitekturni diagram, generični cevovod

Institucijsko odobreno vozilo

zaupno/občutljivo

Secret, proizvodni IP/topologija, podatki o strankah

Samo vozilo, sklenjeno s strani zavoda, katerega podatki ne gredo na usposabljanje; z maskiranjem

trije mini kovčki

1. primer – Čas je bil pridobljen na pravem mestu. Inženir DevOps je porabil 6 ur za premikanje starega Jenkinsovega cevovoda s 300 vrsticami v GitHub Actions. Delo je zmanjšal na 90 minut, tako da je AI razložil korak za korakom in izdelal osnutek. Prihranjeni čas je porabil za preverjanje vsakega koraka, ki ga je ustvaril AI v uprizarjanju, enega za drugim. AI je vzel mehanski prevod; Validacija je ostala pri človeku.

Primer 2 – Preverjanje preprečilo katastrofo. Ekipa je AI prosila za skript za čiščenje Terraform. AI je dal tekočo kodo; Ko pa je inženir zagnal načrt terraforme, je ugotovil, da skript načrtuje tudi brisanje produkcijske baze podatkov v uporabi - AI je napačno vnesel filter virov. Suhi tek je preprečil večurno izgubo podatkov.

Primer 3 – Vrnitev iz skrivnostnega uhajanja. Medtem ko je spraševal "zakaj ta napaka pri uvajanju", je pripravnik prilepil celotno datoteko .env v javno orodje z dejanskim geslom produkcijske baze podatkov v njej. Višji inženir je takoj zavrtel in regeneriral ključe. Pravilen način je bil prikriti geslo z <DB_PASSWORD> in deliti samo sporočilo o napaki.

Štiri predloge za kopiranje

1) Ocena primernosti za delo:

Vaša vloga: višji svetovalec za DevOps/SRE. Opisal ti bom vlogo. Povejte mi (1) ali je to naloga osnutka/analize, ki jo je mogoče varno prenesti na AI, ali kritična odločitev, ki vpliva na izdelek; (2) povejte najslabši izid, če gre narobe; (3) povejte korake preverjanja, ki jih je treba opraviti pred izvedbo. Naloga: [TUKAJ]

2) Podajanje varnega konteksta (skrivno maskiranje):

Analizirajte spodnjo napako. Vse skrivnosti sem prikril z <PLACEHOLDER>; Predlagate tudi, da NIKOLI ne ustvarite prave skrivnosti v rešitvi, uporabite ogrado in vdelajte skrivnost v kodo, prebrano iz skrivnega trezorja. Napaka/dnevnik: [MASKIRANA VSEBINA]

3) Preverjanje ukaza:

Pojasnite mi ta ukaz: zapišite, kaj vsaka zastavica počne, za katero različico orodja velja in njen najnevarnejši stranski učinek. Na koncu navedite 3 preverjanja, ki jih morate opraviti, preden to zaženete v prod. Ukaz: [TUKAJ]

4) Poizvedba o učenju/konceptu:

Jaz [KONCEPT: npr. Razložite koncept [modro-zelene uvedbe], kot da bi ga razlagali inženirju DevOps: kaj počne, kdaj ga uporabiti, kdaj ga ne uporabiti, 2 tipični napaki. Bodite kratki in konkretni.

Šibek poziv/močan poziv

Slabo: "Napišite mi skript za uvedbo."

Zaključek: ni jasno, kateri oblak, katero orodje, katero okolje; Umetna inteligenca izdela generičen, po možnosti neproizvodni skript, ki v kodo vdela skrivnost.

Strong: "Napišite osnutek skripta bash, ki se namesti v AWS ECS (Elastic Container Service). Regija je eu-central-1, slika prihaja iz ECR. Nikoli ne vdelajte skrivnosti v kodo, preberite jih v upravitelju skrivnosti AWS. Če pride do napake pri vsakem koraku, se ustavite (set -euo pipefail). Napišite vse 3 korake preverjanja, preden zaženete skript v prod."

Razlika: drugi poziv podaja oblak, orodje, okolje, varnostno pravilo in pričakovano preverjanje — izhod je neposredno uporaben in varen.

Pogoste napake

  • Lepljenje dejanske skrivnosti v poziv. Najpogostejša in nevarna napaka. Vedno maska.
  • Poziv brez konteksta. Če ne navedete oblaka, različice, okolja, želeni izhod pogosto pripada napačni različici ali napačni arhitekturi.
  • Preskakovanje suhega teka. Implementacija brez načrtovanja/--dry-run je najdražja bližnjica v DevOps.
  • Prvi poskus v prod. Vsak nov izhod umetne inteligence je treba najprej zagnati pri testiranju/uprizarjanju.
  • Prenos odgovornosti z "AI je rekel." Odgovornost vedno ostaja na strani izvajalca.
  • Zaupanje v halucinacijsko zastavo. Izvajanje neobstoječe ukazne zastavice brez poizvedbe.

Če povzamem

DevOps in AI v oblaku; Je pomočnik, ki zagotavlja veliko hitrost pri besedilno intenzivnih opravilih, kot so cevovod, konfiguracija, skript in dnevnik. Toda odgovornost za odločitve, ki vplivajo na izdelek, tajno upravljanje in končno izvedbo, ostaja na pristojnem inženirju. Vodilna načela tega modula so preverjanje v treh korakih (povezava z virom, izsušitev, prehod skozi sistemski filter), nikoli ne uhajanje skrivnosti in delovanje v obrambne namene samo v pooblaščenih sistemih.

Aplikacijska naloga

Izberite nedavno nalogo DevOps iz svojega dela (ali vzorčnega projekta). (1) Opišite to nalogo AI z uporabo zgornje predloge »ocena primernosti za delo« in preberite njeno klasifikacijo. (2) Če vsebuje skrivnost, pripravite kontekstno besedilo tako, da ga maskirate. (3) Preverite izhod umetne inteligence s preverjanjem v treh korakih in v enem stavku zabeležite, kaj ste popravili pri vsakem koraku.

kontrolni seznam

  • [ ] Svojo nalogo sem razvrstil kot "delegirano delo" ali "kritično odločitev".
  • [ ] V poziv nisem prilepil nobenih dejanskih skrivnosti; Vse sem zamaskiral z nadomestnim znakom.
  • [ ] Pozivu sem dodal kontekst v zvezi z oblakom, različico orodja in okoljem.
  • [ ] Izhod umetne inteligence sem preveril s suhim zagonom/načrtom, preden sem ga uporabil.
  • [ ] Prvič sem poskusil v testnem/uprizoritvenem okolju, ne v prod.
  • [ ] Delal sem le na sistemih, v katerih sem imel pooblastila, za namene obrambe.