Pelnas:
- Galimybė atskirti, kurioje DevOps grandinės dalyje (vamzdynas, konfigūracija, scenarijus, žurnalas) dirbtinis intelektas sutaupo realų laiką, o kur sprendimus, turinčius įtakos gamybai, priimti paliekami žmonėms, priklausomai nuo užduoties rizikos lygio.
- Galimybė taikyti discipliną, kuri patikrina kiekvieną AI išvestį prijungiant ją prie šaltinio, paleidžiant išdžiūvusį ir perleidžiant per sistemos filtrą.
- Gebėjimas įgyti įprotį niekada neklijuoti paslapčių į užklausas, jas maskuoti ir dirbti gynybiniais tikslais tik įgaliotose sistemose.
Vieną naktį 03:14 jūsų telefonas suskamba: mokėjimo paslauga neveikia, pinigai ir reputacija prarandami kiekvieną minutę. Kitą dieną viena neteisinga komanda perkrauna tūkstančius serverių. Tai yra „DevOps“ profesionalų pasaulis – atsakomybė už visus vamzdynus, automatizavimą ir budėjimą, per kurį programinė įranga praeina iš kodų saugyklos (kur saugomas programinės įrangos šaltinis), kol ji pasiekia klientą. „DevOps“ yra žodžių „kūrimas“ ir „operacijos“ junginys: tai kultūra ir praktikų rinkinys, sujungiantis programinės įrangos kūrimą ir paleidimą į vieną greitą, patikimą srautą. Kiekvienas šio srauto veiksmas sukuria komandą, konfigūracijos failą, scenarijų. Dirbtinis intelektas (AI – programinė įranga, kuri ištraukia šablonus iš istorinių duomenų ir sukuria tekstą, kodą bei prognozes) sutaupo daug laiko, kai gausite teksto.
Tačiau pati šio modulio pradžia aiški: AI yra asistentas, juodraščių generatorius ir sprendimų palaikymo įrankis; Jūs esate atsakingas už sprendimą, kas patenka į gyvą aplinką (gamybą, realių klientų naudojamą sistemą), kada ir kurį mygtuką paspausti vidury nakties. „DevOps“ klaidos kaina yra ne minutės, o prastovos, duomenų praradimas ir saugumo pažeidimas. Štai kodėl šiame pirmajame skyriuje daugiausia dėmesio skirsime disciplinai, o ne įrankiui.
Kur „DevOps“ grandinėje AI praverčia?
Padalinkime „DevOps“ darbus į dvi dideles grupes. Pirmoji grupė: pasikartojantys, teksto ir struktūrizavimo darbai. CI/CD (nuolatinis integravimas / nenutrūkstamas pristatymas) aprašo rašymas, Dockerfile (recepto failo, kuris supakuoja programą į konteinerį) juodraštis, sudėtingo Terraform (įrankio, apibrėžiančio infrastruktūrą kaip kodą) bloko paaiškinimas, žurnalo krūvos apibendrinimas (įvykio įrašų, sukurtų sistemose, scenarijų žymėjimas) ir žymėjimas. Atlikdamas šias užduotis AI sutrumpina minutes iki sekundžių ir nepavargsta.
Antrasis klasteris: sprendimai, kurie sukelia trikdžių, pinigų ar saugumo. Ar leidimas bus perkeltas į gaminį, kuri paslauga bus paleista iš naujo vidury nakties, kaip išsaugoti paslaptį, kurie ištekliai bus išjungti sumažinus išlaidas. Šie sprendimai reikalauja konteksto, sistemos žinių ir atsakomybės. Čia AI leidžia matyti parinktis ir rizikas, bet jūs paspaudžiate mygtuką „taikyti“.
Paaiškinkime skirtumą vienu sakiniu: AI yra stiprus sprendžiant klausimus „ką veikia ši konfigūracija ir kaip ją parašyti“; Jūs turite nuspręsti dėl tokių klausimų kaip „Ar turėčiau tai taikyti gaminiui ir kas už tai garantuos?“
Patarimas: prieš pateikdami užduotį dirbtiniam intelektui, paklauskite: „Ką aš prarasiu, jei ši išvestis neteisinga? Jei atsakymas yra „kelios minutės“, nedvejodami deleguokite. Jei atsakymas yra „gamybos nutraukimas, duomenų praradimas arba nutekėjimas“, leiskite dirbtiniam intelektui parengti juodraštį, o jūs patikrinsite sprendimą ir įgyvendinimą.
Žingsnis po žingsnio: kaip veikia dirbtinio intelekto „DevOps“ verslas?
- Surinkite kontekstą. Kuris debesis (AWS, Azure, GCP), kokia įrankio versija, kokie apribojimai? Jei pateiksite AI neišsamų kontekstą, gausite neišsamią ir pavojingą išvestį.
- Apibrėžkite aiškias užduotis. Ne "rašyti vamzdyną"; Pasakykite: „Naudodami „GitHub Actions“, pagrindinėje šakoje parašykite darbo eigą, kuri vykdoma iš karto, atlieka bandymus, sukuria „Docker“ atvaizdą, bet jo nediegia.
- Padarykite juodraštį. Leiskite AI parašyti pirmąją versiją.
- Patvirtinti. Patikrinkite sintaksę, ar nenutekėjo konfidenciali informacija, išbandykite sausą paleidimą (režimas, kuris iš tikrųjų parodo programai, ką daryti).
- Išbandykite smėlio dėžėje. Niekada nedarykite pirmojo bandymo prod; paleisti testavimo / sustojimo aplinkoje.
- Taikyti palaipsniui ir stebėti. Paleiskite jį tiesiogiai stebėdami metriką ir žurnalus.
Tikrinimo disciplina: trys žingsniai
AI kalba sklandžiai ir užtikrintai; Tai nereiškia, kad tai tiesa. AI kartais sukelia haliucinacijas – sukuria neegzistuojančią komandos vėliavėlę, debesies paslaugos pavadinimą arba konfigūracijos raktą kaip tikrą. „DevOps“ netikra žyma „force“ gali ištrinti duomenis, o netikras IAM (tapatybės ir prieigos valdymo) leidimas sukuria saugos pažeidžiamumą. Refleksas:
- Prijunkite jį prie šaltinio. Ar tikrai kiekviena AI pateikta komanda ir vėliavėlė yra oficialiuose dokumentuose? Paklauskite „Pasakyk, kuri versija yra ši vėliavėlė ir jos pavadinimas oficialiame dokumente“; Jei nesate tikri, nepasitikėkite.
- Paleisti sausai. Pažiūrėkite, kas atsitiks net nepritaikius modifikacijų, tokių kaip terraform plan, kubectl --dry-run, --check.
- Praleiskite jį per sistemos filtrą. Ar išvestis atitinka jūsų architektūrą, saugos politiką ir galimų išteklių pavadinimus? Jūsų domeno žinios yra galutinis filtras.
Dėmesio: „AI taip parašė“ nėra pateisinimas. Gamybos pertraukimo atveju atsakomybė tenka ne AI, o asmeniui, kuris vykdo tą komandą jos nepatikrinęs. Nepatvirtinta AI komanda yra tokia pat rizikinga, kaip ir rm -rf, vykdoma neperskaitant.
Saugumas ir paslaptys: niekada nepraleiskite informacijos
Svarbiausia „DevOps“ privatumo taisyklė yra susijusi su paslaptimis. Paslaptis; Tai yra konfidenciali informacija, tokia kaip slaptažodis, API raktas, duomenų bazės ryšio eilutė, privatus sertifikatas, kuri gali atidaryti visą jūsų sistemą, jei ji bus pažeista. Neįklijuokite jokių tikrų paslapčių į AI raginimą. Jei kodo bloke yra tikrasis AWS prieigos raktas, .env failo turinys arba gamybinės duomenų bazės slaptažodis, prieš suteikdami juos AI, užmaskuokite juos vietos rezervavimo ženklais, pvz., <AWS_ACCESS_KEY>, o ne AKIA....
Taip pat patikrinkite kodą, kurį sukuria AI: AI kartais pateikia pavyzdžius, kurie patogumo sumetimais paslaptį įkoduoja tiesiai į kodą. Tai yra saugumo spraga. Tiesą sakant, paslaptys saugomos slaptoje saugykloje (Vault, AWS paslapčių tvarkyklė, Azure Key Vault) ir įvedamos kaip aplinkos kintamieji vykdymo metu.
Kita etinė ir teisinė riba šioje srityje: gynybinis naudojimas. Naudokite dirbtinį intelektą, kad sustiprintumėte savo sistemas, ieškotumėte pažeidžiamumų ir iš žurnalų ištrauktumėte atakų pėdsakus. Neteisėta prieiga prie svetimos sistemos, neteisėtas nuskaitymas ar atakos įrankio kūrimas yra neteisėti ir nepatenka į šios platformos taikymo sritį. Visada dirbkite sistemose, kurioms turite įgaliojimus ir gavote raštišką leidimą pagal sutartį.
Kokie duomenys patenka į kurią transporto priemonę?
Duomenų tipas
pavyzdys
tinkama transporto priemonė
atviri duomenys
Oficialus dokumentas, atvirojo kodo kodas
Kiekviena transporto priemonė
Vidiniai duomenys (ne paslaptis)
Bendroji architektūros schema, bendras vamzdynas
Įstaigos patvirtinta transporto priemonė
konfidencialus / jautrus
Paslaptis, prod IP/topologija, klientų duomenys
Tik įstaigos sutartinė transporto priemonė, kurios duomenys neina į mokymus; maskuojant
trys mini dėklai
1 atvejis – laikas buvo gautas tinkamoje vietoje. „DevOps“ inžinierius praleido 6 valandas perkeldamas seną 300 eilučių „Jenkins“ dujotiekį į „GitHub Actions“. Jis sutrumpino darbą iki 90 minučių, leisdamas dirbtiniam intelektui žingsnis po žingsnio paaiškinti ir parengti juodraštį. Sutaupytą laiką jis praleido tikrindamas kiekvieną AI atliktą etapą po vieną. AI paėmė mechaninį vertimą; Patvirtinimas liko žmogui.
2 atvejis – patikrinimu išvengta nelaimės. Komanda paprašė AI pateikti „Terraform“ valymo scenarijų. AI davė sklandų kodą; Bet kai inžinierius paleido teraformos planą, jis atrado, kad scenarijus taip pat planuoja ištrinti naudojamą gamybos duomenų bazę – AI neteisingai įvedė išteklių filtrą. Sausas veikimas apsaugojo nuo duomenų praradimo valandų.
3 atvejis – grįžimas iš slapto nutekėjimo. Klausdamas „kodėl ta diegimo klaida“, stažuotojas įklijavo visą .env failą į viešąjį įrankį su tikruoju gamybos duomenų bazės slaptažodžiu. Vyresnysis inžinierius iškart pasuko ir atkūrė raktus. Teisingas būdas buvo paslėpti slaptažodį naudojant <DB_PASSWORD> ir bendrinti tik klaidos pranešimą.
Keturi kopijuojami šablonai
1) Tinkamumo darbui įvertinimas:
Jūsų vaidmuo: vyresnysis DevOps/SRE konsultantas. Apibūdinsiu jums vaidmenį. Pasakykite man (1), ar tai yra rengimo/analizės užduotis, kurią galima saugiai perduoti AI, ar svarbus sprendimas, turintis įtakos produktui; (2) pasakykite blogiausią rezultatą, jei jis negerai; (3) nurodykite patikrinimo veiksmus, kuriuos reikia atlikti prieš įgyvendinant.Užduotis: [ČIA]
2) Saugus konteksto suteikimas (slaptas maskavimas):
Išanalizuokite toliau pateiktą klaidą. Visas paslaptis užmaskavau su <PLACEHOLDER>; Taip pat siūlote sprendime NIEKADA nekurti tikros paslapties, naudoti rezervuotąją vietą ir įterpti paslaptį į kodą, nuskaityti iš slaptosios saugyklos. Klaida / žurnalas: [MASKED CONTENT]
3) Komandos patvirtinimas:
Paaiškinkite man šią komandą: užsirašykite, ką kiekviena vėliavėlė veikia, kuriai įrankio versijai ji taikoma, ir jos pavojingiausią šalutinį poveikį. Galiausiai išvardykite 3 patikrinimus, kuriuos reikia atlikti prieš paleisdami tai gamybinėje versijoje. Komanda: [ČIA]
4) Mokymosi / koncepcijos užklausa:
Aš [KONCEPCIJA: pvz. Paaiškinkite [mėlynai žalios spalvos diegimo] sąvoką taip, lyg tai paaiškintumėte „DevOps“ inžinieriui: ką jis daro, kada naudoti, kada nenaudoti, 2 tipinės klaidos. Būkite trumpi ir konkretūs.
Silpnas raginimas / Stiprus raginimas
Silpnas: „Parašykite man diegimo scenarijų“.
Išvada: neaišku, kuris debesis, koks įrankis, kokia aplinka; AI sukuria bendrą, galbūt ne gamininį scenarijų, kuris įterpia paslaptį į kodą.
Stiprus: "Parašykite bash scenarijaus juodraštį, kuris diegia AWS ECS (Elastic Container Service). Regionas yra eu-central-1, vaizdas gaunamas iš ECR. Niekada neįdėkite paslapčių į kodą, skaitykite jas iš AWS paslapčių tvarkytuvės. Jei kiekviename žingsnyje yra klaida, sustokite (nustatyti -euo pipefail). Parašykite visus 3 patvirtinimo veiksmus."
Skirtumas: antrasis raginimas pateikia debesį, įrankį, aplinką, saugos taisyklę ir patvirtinimo lūkesčius – išvestis yra tiesiogiai naudinga ir saugi.
Dažnos klaidos
- Įklijuoti tikrąją paslaptį į raginimą. Dažniausia ir pavojingiausia klaida. Visada kaukė.
- Raginimas be konteksto. Nenurodant debesies, versijos, aplinkos, norima išvestis dažnai priklauso neteisingai versijai arba netinkamai architektūrai.
- Praleidžiant sausą bėgimą. Diegimas neplanuojant/--dry-run yra brangiausias DevOps spartusis klavišas.
- Pirmas bandymas gamybinėje versijoje. Kiekvieną naują AI išvestį pirmiausia reikia paleisti testuojant / statant.
- Atsakomybės perdavimas su „AI pasakė“. Atsakomybė visada lieka įgyvendinančiam inžinieriui.
- Pasitikėjimas haliucinacine vėliava. Vykdoma neegzistuojanti komandos vėliavėlė be užklausos.
Apibendrinant
DevOps ir debesų AI; Tai asistentas, užtikrinantis didelį greitį atliekant daug teksto reikalaujančias užduotis, pvz., konvejerį, konfigūraciją, scenarijų ir žurnalą. Tačiau atsakomybė už sprendimus, turinčius įtakos produktui, slaptam valdymui ir galutiniam įgyvendinimui, tenka kompetentingam inžinieriui. Pagrindiniai šio modulio principai yra trijų pakopų patvirtinimas (prisijungimas prie šaltinio, išdžiūvimas, praėjimas per sistemos filtrą), niekada nenutekėjusių paslapčių ir darbas gynybiniais tikslais tik įgaliotose sistemose.
Taikymo užduotis
Pasirinkite naujausią „DevOps“ užduotį iš savo darbo (arba projekto pavyzdžio). (1) Apibūdinkite šią užduotį AI naudodami anksčiau pateiktą „tinkamumo darbui vertinimo“ šabloną ir perskaitykite jos klasifikaciją. (2) Jei jame yra paslaptis, paruoškite kontekstinį tekstą jį užmaskuodami. (3) Patikrinkite AI išvestį naudodami trijų pakopų patvirtinimą ir vienu sakiniu pažymėkite, ką ištaisėte kiekviename žingsnyje.
kontrolinis sąrašas
- [ ] Savo užduotį priskyriau prie „perduodamo darbo“ arba „kritinio sprendimo“.
- [ ] Į raginimą neįklijavau jokių realių paslapčių; Aš juos visus užmaskavau vietos rezervavimo ženklu.
- [ ] Prie raginimo pridėjau kontekstą dėl debesies, įrankio versijos ir aplinkos.
- [ ] Prieš taikydamas dirbtinio intelekto išvestį patikrinau sausuoju režimu / planu.
- [ ] Pirmą kartą bandžiau bandomojoje / sustojimo aplinkoje, o ne prod.
- [ ] Gynybos tikslais dirbau tik sistemose, kuriose turėjau įgaliojimus.