Kitengo 1 / 11

Utangulizi wa DevOps na Cloud AI: Majukumu, Mipaka, Uthibitishaji, Usalama na Siri

Faida:

  • Kuwa na uwezo wa kutofautisha ni wapi katika msururu wa DevOps (bomba, usanidi, hati, kumbukumbu) huokoa wakati halisi na ambapo maamuzi yanayoathiri uzalishaji huachiwa wanadamu, kulingana na kiwango cha hatari ya kazi.
  • Uwezo wa kutumia nidhamu ambayo inathibitisha kila pato la AI kupitia hatua za kuiunganisha kwa chanzo, kuiendesha kavu na kuipitisha kupitia kichujio cha mfumo.
  • Uwezo wa kupata mazoea ya kutowahi kubandika siri kwenye maombi, kuyaficha, na kufanya kazi kwa madhumuni ya kujihami tu kwenye mifumo iliyoidhinishwa.

Usiku mmoja saa 03:14 simu yako inalia: huduma ya malipo imepungua, pesa na sifa zinapotea kila dakika. Siku nyingine, amri moja mbaya huwasha tena maelfu ya seva. Huu ndio ulimwengu wa wataalamu wa DevOps - wajibu wa mabomba yote, uendeshaji otomatiki, na simu ambayo programu hupitia kutoka hazina ya msimbo (ambapo chanzo cha programu huhifadhiwa) hadi ifike kwenye mikono ya mteja. DevOps ni mchanganyiko wa maneno "Maendeleo" na "Operesheni": ni utamaduni na seti ya mazoea ambayo huleta ukuzaji wa programu na kuiendesha katika mtiririko mmoja wa haraka na wa kutegemewa. Kila hatua ya mtiririko huu hutoa amri, faili ya usanidi, hati. Akili Bandia (AI - programu ambayo hutoa ruwaza kutoka kwa data ya kihistoria na kutoa maandishi, misimbo na ubashiri) hukuokoa muda mwingi katika wingi huu wa maandishi.

Lakini mwanzo kabisa wa moduli hii ni wazi: AI ni msaidizi, jenereta ya rasimu na chombo cha usaidizi wa maamuzi; Wewe ndiye una jukumu la kuamua ni nini kinaendelea katika mazingira ya moja kwa moja (uzalishaji, mfumo unaotumiwa na wateja halisi), wakati na ni kitufe kipi cha kubofya katikati ya usiku. Katika DevOps, gharama ya hitilafu si dakika, lakini muda wa chini, upotezaji wa data, na ukiukaji wa usalama. Ndio maana katika kitengo hiki cha kwanza tutazingatia nidhamu, sio chombo.

Je, AI inapatikana wapi katika msururu wa DevOps?

Hebu tugawanye kazi za DevOps katika makundi mawili makubwa. Nguzo ya kwanza: kazi zinazorudiwa, maandishi na muundo. Kuandika maelezo ya CI/CD (Ushirikiano Unaoendelea / Uwasilishaji Unaoendelea - bomba ambalo hujaribu na kutoa nambari kiotomatiki), kuandaa faili ya Dockerfile (faili ya mapishi ambayo hupakia programu kwenye kontena), ikifafanua Terraform changamano (zana inayofafanua muundo msingi kama msimbo), ikitoa muhtasari wa safu ya kumbukumbu (rekodi za tukio zinazozalishwa na mifumo) na kuripoti hitilafu. Katika kazi hizi, AI inapunguza dakika hadi sekunde na haina uchovu.

Kundi la pili: maamuzi ambayo husababisha usumbufu, pesa au usalama. Ikiwa toleo litaenda kwa prod, ni huduma gani itaanzishwa tena katikati ya usiku, jinsi ya kuhifadhi siri, ambayo rasilimali itafungwa kwa kupunguzwa kwa gharama. Maamuzi haya yanahitaji muktadha, maarifa ya mfumo, na wajibu. Hapa, AI hufanya chaguzi na hatari zionekane - lakini bonyeza kitufe cha "tuma".

Hebu tufafanue tofauti katika sentensi moja: AI ina nguvu juu ya "usanidi huu hufanya nini na jinsi ya kuuandika" maswali; Uamuzi ni wako linapokuja suala la maswali kama vile "Je, nitumie bidhaa hii na nani ataithibitisha?"

Kidokezo: Kabla ya kutoa kazi kwa AI, uliza: "Nitapoteza nini ikiwa pato hili si sahihi?" Ikiwa jibu ni "dakika chache", jisikie huru kuwakabidhi. Ikiwa jibu ni "kukatika kwa uzalishaji, upotezaji wa data au uvujaji", acha AI itoe rasimu na uthibitishe uamuzi na utekelezaji.

Hatua kwa hatua: biashara ya DevOps inayoendeshwa na AI inafanyaje kazi?

  1. Kusanya muktadha. Ni wingu gani (AWS, Azure, GCP), ni toleo gani la zana, vikwazo gani? Ikiwa utatoa muktadha wa AI usio kamili, utapata matokeo yasiyo kamili na hatari.
  2. Fafanua kazi wazi. Sio "kuandika bomba"; Sema, "Kwa Vitendo vya GitHub, andika mtiririko wa kazi katika tawi kuu linaloendesha kwa kushinikiza, kufanya majaribio, kuunda picha ya Docker, lakini haitumii."
  3. Tengeneza rasimu. Acha AI iandike toleo la kwanza.
  4. Thibitisha. Angalia syntax, angalia ikiwa habari ya siri imevuja, jaribu na dry-run (hali ambayo inaonyesha programu nini cha kufanya).
  5. Ijaribu kwenye Sandbox. Kamwe usijaribu mara ya kwanza katika uzalishaji; kukimbia katika mazingira ya majaribio / hatua.
  6. Omba hatua kwa hatua na ufuatilie. Ipate moja kwa moja kwa kufuatilia vipimo na kumbukumbu.

Nidhamu ya uthibitishaji: hatua tatu

AI inazungumza kwa ufasaha na kwa ujasiri; Hiyo haimaanishi kuwa ni kweli. AI mara kwa mara hutoa maonyesho - kuunda bendera ya amri isiyopo, jina la huduma ya wingu, au ufunguo wa usanidi kama halisi. Katika DevOps, bendera ya uwongo --force inaweza kufuta data, huku ruhusa ya uwongo ya IAM (Kitambulisho na Usimamizi wa Ufikiaji) huleta hatari ya usalama. Reflex:

  1. Iunganishe na chanzo. Je! kila amri na bendera iliyotolewa na AI iko kwenye hati rasmi? Uliza "Niambie ni toleo gani bendera hii inakuja na jina lake katika hati rasmi"; Ikiwa huna uhakika, usiiamini.
  2. Kukimbia kavu. Tazama kinachotokea bila kuitumia kwa mods kama vile terraform plan, kubectl --dry-run, --check.
  3. Ipitishe kupitia kichujio cha mfumo. Je, matokeo yanalingana na usanifu wako, sera ya usalama, na majina ya rasilimali zinazopatikana? Maarifa ya kikoa chako ndicho kichujio cha mwisho.
Makini: "AI iliandika hivyo" sio uhalali. Katika kesi ya kukatizwa kwa prod, jukumu si la AI, lakini la mtu ambaye anaendesha amri hiyo bila kuithibitisha. Amri ya AI ambayo haijathibitishwa ni hatari kama rm -rf kutekelezwa bila kusomwa.

Usalama na siri: kamwe kuvuja

Kanuni muhimu zaidi ya faragha katika DevOps ni kuhusu siri. Siri; Ni taarifa za siri kama vile nenosiri, ufunguo wa API, mfuatano wa muunganisho wa hifadhidata, cheti cha faragha, ambacho kinaweza kufungua mfumo wako wote iwapo kitaingiliwa. Usibandike siri zozote za kweli kwenye kidokezo cha AI. Ikiwa kizuizi cha msimbo kina ufunguo halisi wa ufikiaji wa AWS, yaliyomo kwenye faili ya .env, au nenosiri la hifadhidata ya uzalishaji, ficha hizi na vishika nafasi kama vile <AWS_ACCESS_KEY> badala ya AKIA... kabla ya kuzipa AI.

Pia angalia msimbo ambao AI hutoa: AI wakati mwingine hutoa mifano ambayo huweka siri moja kwa moja kwenye msimbo kwa urahisi. Hii ni hatari ya kiusalama. Kwa kweli, siri huwekwa kwenye vault ya siri (Vault, Meneja wa Siri za AWS, Vault ya Ufunguo wa Azure) na hudungwa kama vigezo vya mazingira wakati wa kukimbia.

Kikomo kingine cha kimaadili na kisheria katika eneo hili: matumizi ya kujihami. Tumia AI kufanya mifumo yako kuwa migumu, kuchanganua udhaifu, na kutoa athari za mashambulizi kutoka kwa kumbukumbu. Ufikiaji ambao haujaidhinishwa kwa mfumo wa mtu mwingine, utambazaji usioidhinishwa, au kuunda zana ya kushambulia ni kinyume cha sheria na nje ya upeo wa jukwaa hili. Daima fanya kazi katika mifumo ambayo una mamlaka nayo na umepokea kibali cha maandishi kupitia mkataba.

Ni data gani huenda kwenye gari gani?

Aina ya data

mfano

gari linalofaa

fungua data

Hati rasmi, msimbo wa chanzo huria

Kila gari

Data ya ndani (sio siri)

Mchoro wa usanifu wa jumla, bomba la kawaida

Gari iliyoidhinishwa na taasisi

siri/nyeti

Siri, IP/topolojia ya uzalishaji, data ya mteja

Gari tu iliyo na mkataba na taasisi, ambayo data haiendi kwenye mafunzo; kwa masking

kesi tatu ndogo

Kesi ya 1 - Muda ulipatikana mahali pazuri. Mhandisi wa DevOps alitumia saa 6 kuhamisha bomba la zamani la Jenkins la laini 300 hadi kwa Vitendo vya GitHub. Alipunguza kazi hadi dakika 90 kwa kufanya AI kuelezea hatua kwa hatua na kutoa rasimu. Alitumia muda uliohifadhiwa kuthibitisha kila hatua iliyotolewa na AI katika hatua, moja baada ya nyingine. AI ilichukua tafsiri ya mitambo; Uthibitisho ulibaki kwa mwanadamu.

Kesi ya 2 - Uthibitishaji uliepusha maafa. Timu iliuliza AI hati ya kusafisha Terraform. AI ilitoa msimbo fasaha; Lakini wakati mhandisi alipoendesha mpango wa terraform, aligundua kuwa hati hiyo pia ilipanga kufuta hifadhidata ya uzalishaji inayotumika - AI ilikuwa imeandika vibaya kichujio cha rasilimali. Kukausha kukimbia kumezuia saa za upotezaji wa data.

Kesi ya 3 - Rudi kutoka kwa uvujaji wa Siri. Wakati akiuliza "kwa nini hitilafu hiyo ya kusambaza" mwanafunzi alibandika faili nzima ya .env kwenye zana ya umma iliyo na nenosiri halisi la hifadhidata ya uzalishaji ndani. Mhandisi mkuu alizungusha mara moja na kutengeneza tena funguo. Njia sahihi ilikuwa kuficha nenosiri kwa <DB_PASSWORD> na kushiriki ujumbe wa makosa pekee.

Violezo vinne vinavyoweza kunakiliwa

1) Tathmini ya ufaafu wa kazi:

Jukumu lako: mshauri mkuu wa DevOps/SRE. Nitakuelezea jukumu. Niambie (1) ikiwa hili ni jukumu la kuandika/uchanganuzi ambalo linaweza kukabidhiwa kwa AI kwa usalama, au uamuzi muhimu unaoathiri bidhaa; (2) kueleza matokeo mabaya zaidi ikiwa yataenda vibaya; (3) eleza hatua za uthibitishaji zinazopaswa kufanywa kabla ya utekelezaji. Kazi: [HAPA]

2) Upeanaji salama wa muktadha (ufunikaji wa siri):

Changanua hitilafu hapa chini. Nilificha siri zote kwa <PLACEHOLDER>; Pia unapendekeza KAMWE usitoe siri ya kweli katika suluhisho, tumia kishikilia nafasi na upachike siri kwenye msimbo, iliyosomwa kutoka kwa vault ya siri. Hitilafu/logi: [MASKED CONTENT]

3) Uthibitishaji wa amri:

Nifafanulie amri hii: andika kila bendera hufanya nini, inatumika kwa toleo gani la zana, na athari yake hatari zaidi. Hatimaye orodhesha ukaguzi 3 wa kufanya kabla ya kuendesha hii katika prod. Amri: [HAPA]

4) Swala la kujifunza/dhana:

Mimi [DHANA: k.m. Eleza dhana ya [utumiaji wa bluu-kijani] kana kwamba unaielezea kwa mhandisi wa DevOps: inafanya nini, wakati wa kuitumia, wakati wa kutoitumia, makosa 2 ya kawaida. Kuwa mfupi na thabiti.

Mwongozo dhaifu / Mwongozo thabiti

Dhaifu: "Niandikie hati ya kupeleka."

Hitimisho: haijulikani ni wingu gani, chombo gani, mazingira gani; AI hutengeneza hati ya jumla, labda isiyo ya uzalishaji ambayo hupachika siri kwenye msimbo.

Imara: "Andika rasimu ya hati ya bash inayotumwa kwa AWS ECS (Huduma ya Kontena Elastic). Eneo ni eu-central-1, picha inatoka kwa ECR. Usiwahi kupachika siri kwenye msimbo, zisome kutoka kwa Kidhibiti cha Siri za AWS. Ikiwa kuna hitilafu katika kila hatua, acha (weka -euo pipefail). Andika yote katika hatua 3 za prod."

Tofauti: kidokezo cha pili kinatoa wingu, zana, mazingira, sheria ya usalama, na matarajio ya uthibitishaji - matokeo ni muhimu na salama moja kwa moja.

Makosa ya kawaida

  • Kubandika siri halisi kwenye arifa. Makosa ya kawaida na hatari zaidi. Mask kila wakati.
  • Mwongozo usio na muktadha. Bila kutaja wingu, toleo, mazingira, matokeo unayotaka mara nyingi ni ya toleo lisilo sahihi au usanifu mbaya.
  • Kuruka kukimbia kavu. Utekelezaji bila kupanga/--dry-run ndiyo njia ya mkato ya gharama kubwa zaidi katika DevOps.
  • Kufanya jaribio la kwanza katika prod. Kila pato jipya la AI linapaswa kwanza kuendeshwa katika upimaji/uwekaji hatua.
  • Kukabidhi jukumu na "AI ilisema." Wajibu daima unabaki kwa mhandisi wa kutekeleza.
  • Kuamini bendera ya ukumbi. Inatekeleza alama ya amri ambayo haipo bila swali.

Kwa muhtasari

DevOps na wingu AI; Ni msaidizi ambaye hutoa kasi kubwa katika kazi zinazohitaji maandishi mengi kama vile bomba, usanidi, hati na kumbukumbu. Lakini jukumu la maamuzi yanayoathiri bidhaa, usimamizi wa siri na utekelezaji wa mwisho unabaki kwa mhandisi mwenye uwezo. Uthibitishaji wa hatua tatu (unganisha kwa chanzo, kavu, pitia kichujio cha mfumo), siri zisizovuja kamwe, na kufanya kazi kwa madhumuni ya kujihami tu kwenye mifumo iliyoidhinishwa ndizo kanuni elekezi za moduli hii.

Jukumu la maombi

Chagua kazi ya hivi majuzi ya DevOps kutoka kwa kazi yako mwenyewe (au sampuli ya mradi). (1) Eleza kazi hii kwa AI ukitumia kiolezo cha "tathmini ya ufaafu wa kazi" hapo juu na usome uainishaji wake. (2) Ikiwa ina siri, tayarisha maandishi ya muktadha kwa kuficha. (3) Angalia matokeo ya AI na uthibitishaji wa hatua tatu na kumbuka katika sentensi moja kile ulichosahihisha kwa kila hatua.

orodha ya ukaguzi

  • [ ] Niliainisha kazi yangu kama "kazi inayokabidhiwa" au "uamuzi muhimu".
  • [ ] Sikubandika siri zozote halisi kwenye dodoso; Nilizifunika zote kwa kishika nafasi.
  • [ ] Niliongeza muktadha kwenye kidokezo kuhusu wingu, toleo la zana na mazingira.
  • [ ] Niliangalia pato la AI na mpango wa kukimbia / kavu kabla ya kuitumia.
  • [ ] Nilifanya jaribio la kwanza katika mazingira ya jaribio/hatua, sio katika uzalishaji.
  • [ ] Nilifanya kazi tu kwenye mifumo ambayo nilikuwa na mamlaka, kwa madhumuni ya ulinzi.