Awọn anfani:
- Agbara lati gbejade koodu IaC (Terraform, Ansible) pẹlu oye atọwọda pẹlu awọn igbanilaaye ti o dín julọ ati awọn aiyipada ailewu ati loye ọna asọye
- Agbara lati ṣe idiwọ pipadanu data nipasẹ kika ati yiya piparẹ ati fi agbara mu awọn laini rirọpo ṣaaju lilo eto / iṣẹjade ṣayẹwo
- Agbara lati ṣe idiwọ jijo aṣiri nipa titọju faili ipinlẹ ti paroko, titiipa, ni ẹhin isakoṣo latọna jijin ati fifọ awọn ayipada sinu kekere, awọn igbesẹ iyipada
Isakoso ti Awọn amayederun bi koodu (IaC): Terraform, Ansible and Plan Control with AI
Ni akoko ti o ti kọja, iṣeto olupin ni a ṣe pẹlu awọn titẹ ọwọ, awọn aṣẹ, ati awọn akọsilẹ ti ara ẹni; Abajade jẹ awọn olupin “snowflake” ti ko ṣe atunṣe ti ko si ẹnikan ti o mọ bi o ṣe le ṣeto ni pato. Amayederun bi koodu (IaC) jẹ ọna ti o pari rudurudu yii: awọn olupin, awọn nẹtiwọọki, awọn ofin aabo ni asọye kii ṣe nipasẹ ọwọ, ṣugbọn nipasẹ awọn faili ọrọ ti ikede (koodu). Nigbati o ba ṣiṣẹ koodu yii, awọn amayederun ti ṣeto ni deede bi o ti kọ ọ - kanna, ti o ni akọsilẹ, ati atunwi ni gbogbo igba. Awọn irinṣẹ ti o wọpọ julọ jẹ Terraform ati CloudFormation fun awọn amayederun awọsanma ati Ansible fun iṣeto ni olupin. Nibi AI jẹ oye pupọ ni kikọ, ṣalaye ati atunyẹwo koodu IaC yii. Ṣugbọn agbara ti IaC tun jẹ eewu rẹ: laini aṣiṣe kan le pa gbogbo awọn amayederun kuro; nitorinaa AI kọ koodu, o ka “eto” naa, fọwọsi ati ṣiṣẹ.
Ninu ẹyọ yii, a yoo jiroro lori ọna asọye, ero / lo iyatọ, aabo ipinlẹ ati arapotency; Iwọ yoo kọ ẹkọ iran IaC pẹlu AI ati ọgbọn pataki julọ, “Iṣakoso ero”.
Ni ero ni asọye: “Kini ti o ba jẹ”, kii ṣe “bi o ṣe le ṣe”
Pupọ awọn irinṣẹ IaC jẹ asọye: o ṣapejuwe ipo ikẹhin ti eto naa (“jẹ ki a sọ awọn olupin wẹẹbu 3, iwọntunwọnsi fifuye 1”), ọpa funrararẹ ṣe iṣiro bi o ṣe le de ipo yẹn. Eyi yatọ si kikọ iwe afọwọkọ kan ("Ṣe eyi, lẹhinna ṣe bẹ" ni igbesẹ nipasẹ igbese). Anfani nla ti ọna asọye jẹ idempotency: paapaa ti o ba ṣiṣẹ koodu naa ni igba mẹwa, abajade jẹ kanna, nitori pe ọpa ṣayẹwo boya ipo ti o fẹ wa tẹlẹ, ati bi o ba ṣe, ko fọwọkan. Ranti iyatọ yii nigbati o ba kọ IaC si AI: o jẹ ki o sọ pe “jẹ ki ipo amayederun yii”, kii ṣe “ṣiṣẹ awọn aṣẹ wọnyi”.
Gbero/filo: iṣinipopada aabo to ṣe pataki julọ
Ẹya igbala-aye ti IaC jẹ igbesẹ ero naa. Ni Terraform, eto terraform, ni Ansible, --check mode ṣe agbejade awotẹlẹ ti “kini yoo yipada ti MO ba lo” ṣaaju ṣiṣe koodu naa: “Awọn orisun 2 yoo ṣafikun, 1 yoo yipada, 0 yoo paarẹ”. Eyi ni ọna kan ṣoṣo lati ṣe afiwe aniyan rẹ pẹlu otitọ ṣaaju imuse. Ofin pataki: maṣe lo laisi kika ero naa. Wo paapaa fun awọn ila "run"; Ti o ba ri "12 yoo paarẹ" dipo "1 yoo yipada" nitori titẹ, eto naa ti gba ọ lọwọ ajalu. Lẹhin titẹ koodu si AI, jẹ ki o sọ “ṣayẹwo laini igbejade ero nipasẹ laini pẹlu mi, samisi gbogbo laini ti o ni piparẹ / ere idaraya.”
Išọra: Diẹ ninu awọn iyipada si Terraform “parun ki o tun ṣe” orisun kan dipo “imudojuiwọn ni aaye”. Eyi tumọ si pipadanu data fun ibi ipamọ data. Aibikita -/+ tabi “fipa iparọpo” ninu iṣelọpọ ero jẹ ọkan ninu awọn aṣiṣe gbowolori julọ.
Faili ipinle: igbasilẹ ti awọn asiri ati otitọ
Awọn irinṣẹ bii Terraform tọju ipo lọwọlọwọ ti awọn amayederun ti wọn ṣakoso ni faili ipinlẹ kan. Faili yii ṣe pataki fun awọn idi meji. Ni akọkọ, o le ni awọn aṣiri ninu (awọn ọrọ igbaniwọle aaye data, awọn bọtini le ṣubu sinu ipo ni ọrọ-ọrọ); Nitorinaa, maṣe lẹẹmọ ipinlẹ naa si ibi ipamọ gbogbo eniyan tabi AI, tọju rẹ ni fifi ẹnọ kọ nkan ati iwọle-ihamọ isakoṣo latọna jijin. Keji, ti ipinle ba ti bajẹ tabi sọnu, ọkọ naa padanu asopọ laarin awọn ohun elo gidi ati awọn ohun elo ti o ni imọran; Nitorinaa, afẹyinti ti ipinle ati ẹrọ titiipa (titiipa ti o ṣe idiwọ fun eniyan meji lati fọ ni akoko kanna) jẹ pataki.
Igbesẹ nipasẹ igbese: Ṣe aabo IaC pẹlu AI
- State idi ati olupese. "Awọn olupin 2 lori AWS, pẹlu Terraform, ni agbegbe yii, iwọn yii, ati ẹgbẹ aabo." Ti awọsanma, ọpa, ati ẹya ba han, AI ṣe agbejade sintasi ti o pe.
- Beere awọn aiyipada aabo. "Ṣi ẹgbẹ aabo, mu fifi ẹnọ kọ nkan ṣiṣẹ, jade awọn aṣiri si oniyipada, funni ni iwọle si gbogbo eniyan.” AI le ṣe ina awọn apẹẹrẹ alaimuṣinṣin nipasẹ aiyipada.
- Ka ati loye koodu naa. Loye gbogbo awọn orisun, gbogbo igbanilaaye, laini nipasẹ laini. Maṣe lo igbanilaaye ti o ko loye.
- Gba eto kan ki o ṣayẹwo rẹ. Ṣiṣe eto / - ṣayẹwo, ṣayẹwo abajade pẹlu AI, samisi piparẹ ati tun awọn ila ṣe.
- Waye kekere ati iparọ. Ṣe iyipada nla ni awọn ege kekere, kii ṣe gbogbo ni ẹẹkan. Mọ ọna pada ni gbogbo igbese.
- Dabobo Ipinle. Lo latọna jijin, ti paroko backend ati titiipa; Ma jo ipo.
mẹta mini igba
Ọran 1 - Eto naa gba data data pada. Onimọ ẹrọ kan fẹ lati mu iwọn data data pọ si pẹlu koodu Terraform ti o ṣe pẹlu AI. Lakoko ti o ti n reti “1 lati yipada” ninu iṣelọpọ ero terraform, o rii “1 lati parun, 1 lati ṣafikun” - paramita ti o yan ni nfa atunkọ, kii ṣe imudojuiwọn ni aaye, afipamo pe gbogbo data yoo paarẹ. Iṣakoso ero duro ipadanu data ti ko le yipada ṣaaju ki o to ṣe imuse.
Ọran 2 - Pada lati aiyipada alaimuṣinṣin. Ẹgbẹ kan beere AI fun koodu ogiriina kan. Lati ṣiṣẹ apẹẹrẹ, AI ṣe ipilẹṣẹ ofin ti o rọrun ti 0.0.0.0/0, ti o tumọ si “gbangba lori intanẹẹti”. Onimọ-ẹrọ ṣe akiyesi eyi lakoko kika koodu ati dín iraye si iwọn IP ile-iṣẹ nikan. Ti o ba jẹ imuse laisi iṣayẹwo, data data yoo wa ni sisi si gbogbo intanẹẹti.
Ọran 3 - State jo ni idaabobo. Ọmọ ẹgbẹ kekere kan fẹ lati lẹẹmọ faili terraform.tfstate mule sinu ohun elo ti gbogbo eniyan lati yanju ọran Terraform kan. Olùkọ́ ẹlẹrọ dúró: ìpínlẹ̀ ní ọ̀rọ̀ aṣínà ibùdó dátà lásán nínú. Dipo, akopọ decrypted kan ti n ṣapejuwe iṣoro naa ni a pin ati pe a gbe ipinlẹ naa si ẹhin fifi ẹnọ kọ nkan latọna jijin.
Mẹrin daakọ awọn awoṣe
1) Iran orisun orisun IaC (aiyipada aabo):
Rẹ ipa: oga awọsanma amayederun ẹlẹrọ. [Awọsanma, fun apẹẹrẹ. AWS] fun [irinṣẹ, f.eks. Terraform] ṣe koodu. Idi: [idi] .Awọn ofin aabo: gbogbo eniyan (0.0.0.0/0) wiwọle OPEN; bẹrẹ pẹlu igbanilaaye ti o dín julọ; tan ìsekóòdù; jade awọn aṣiri sinu awọn oniyipada,maṣe fi wọn sinu koodu; Ṣayẹwo awọn eto ti o le ja si piparẹ/idaraya. Ṣe alaye orisun kọọkan pẹlu asọye kukuru.
2) Iṣayẹwo igbejade ero:
Ni isalẹ ni abajade [Eto Terraform / Ayẹwo Aṣeṣe] kan. Sọ fun mi: (1) awọn ohun elo melo ni yoo ṣafikun / yipada / paarẹ, (2) tun samisi awọn laini “run” tabi “awọn ipa ipadabọ” ti o fa eewu ti pipadanu data, (3) ṣe atokọ eyikeyi awọn ayipada ti o dabi airotẹlẹ tabi eewu. Abajade: [ètò]
3) Atunwo aabo koodu IaC:
Ṣayẹwo koodu IaC wọnyi fun aabo: (1) iwọle/awọn igbanilaaye ti o gbooro pupọju, (2) ti wa ni pipa fifi ẹnọ kọ nkan, (3) awọn aṣiri ti a fi sinu koodu naa, (4) Njẹ awọn orisun ti o wa ni gbangba bi? Daba atunse fun wiwa kọọkan. Koodu: [koodu boju-boju]
4) Pin iyipada si awọn ẹya ailewu:
Emi ko fẹ lati ṣe iyipada amayederun nla yii [alaye] ni ẹẹkan. Pin rẹ sinu kekere, awọn igbesẹ ominira ti o rọrun lati pada si. Fun igbesẹ kọọkan: kini awọn iyipada, kini o yẹ ki Emi fiyesi si ninu eto naa, bawo ni MO ṣe ṣe atunṣe ti awọn iṣoro ba wa?
Ailagbara kiakia / Alagbara kiakia
Ibere ailagbara:
Kọ koodu Terraform ti o ṣẹda olupin lori AWS.
Ekun, iwọn, aabo, nẹtiwọki, fifi ẹnọ kọ nkan koyewa. AI ṣe agbejade alaimuṣinṣin, awọn aṣiṣe ti o fojuhan julọ lati ṣiṣẹ - ti o ba fi si iṣelọpọ, yoo jẹ ailagbara kan.
Ibere ti o lagbara:
Rẹ ipa: oga awọsanma amayederun ẹlẹrọ. Ṣetumo olupin wẹẹbu kan pẹlu Terraform lori AWS eu-central-1: t3.small, nikan lati ibiti IP ile-iṣẹ (Emi yoo fun ni pẹlu oniyipada), ibudo 443 ṣii, disiki ti paroko, ko si iwọle si gbogbo eniyan, awọn akole jẹ dandan. Aṣiri ti han si oniyipada. Lẹhin koodu naa: Ṣaaju ṣiṣe rẹ, sọ fun mi awọn oriṣi laini 3 ti MO yẹ ki o san ifojusi si ninu ero naa ki o ṣalaye ọna ipadabọ.
Ipele
Ewu
ailewu afowodimu
kikọ koodu
Aifọwọyi alaimuṣinṣin (ti gbogbo eniyan)
Narrowest aiye + ka
ètò / ṣayẹwo
Paarẹ laisi mimọ
Ayewo gbero, run siṣamisi
Waye
Major ọkan-akoko ayipada
Kekere, awọn igbesẹ iyipada
isakoso ipinle
Glaze jijo, iparun
Latọna jijin ti paroko backend + titiipa
Awọn aṣiṣe ti o wọpọ
- Nbere laisi kika eto naa. Eto naa ṣe afihan piparẹ ati atunkọ; Ti o ba ti skipped, data pipadanu jẹ eyiti ko.
- Ko ṣe akiyesi aiyipada alaimuṣinṣin. Awọn iṣẹlẹ AI nigbagbogbo gbejade 0.0.0.0/0; Ti o ba gbe lọ si iṣelọpọ, o tumọ si orisun ṣiṣi si gbogbo intanẹẹti.
- Ipinle ti n jo. Gbigbe faili ilu okeere si AI tabi ibi ipamọ ṣiṣi ṣafihan awọn aṣiri itele.
- Ifisinu asiri ni koodu. Kikọ ọrọ igbaniwọle sinu koodu IAC jẹ jijo itẹramọṣẹ ninu itan ẹya koodu.
- Asise a atunkọ fun ohun imudojuiwọn. Aibikita laini rirọpo awọn ipa yoo ja si pipadanu data ninu awọn apoti isura data.
Imọran: Paapaa nigba fifun igbejade ero si AI lati ṣe atunyẹwo, ṣe ipilẹ ipinnu ikẹhin lori imọ tirẹ, kii ṣe ọrọ ero. AI akopọ ètò ati awọn asia eewu ila; ṣugbọn idahun si ibeere naa “jẹ itẹwọgba piparẹ yii” da lori ipo iṣowo rẹ.
Ni akojọpọ
IaC mu atunṣe ati iwe wa nipasẹ ṣiṣakoso awọn amayederun pẹlu koodu ikede kuku ju awọn jinna afọwọṣe. AI jẹ alabaṣepọ ti o lagbara ni kikọ koodu yii, ṣe apejuwe rẹ, ati atunyẹwo fun aabo. Ṣugbọn agbara IaC jẹ eewu rẹ: laini kan le pa gbogbo awọn amayederun kuro. Ronu asọye, bẹrẹ pẹlu igbanilaaye ti o dín julọ, ṣatunṣe awọn aṣiṣe alaimuṣinṣin, tọju awọn aṣiri kuro ninu koodu ati ipo. Oju-iṣọ to ṣe pataki julọ ni ero/igbesẹ ayẹwo: maṣe ṣiṣẹ laisi kika piparẹ ati awọn laini tunkọ. Jeki Ipinle ti paroko, titiipa, ati latọna jijin. Koodu naa jẹ ti AI, ipinnu jẹ tirẹ.
Ohun elo iṣẹ-ṣiṣe
Yan ibi-afẹde amayederun kekere (fun apẹẹrẹ, ẹrọ foju kan ati ofin aabo). Pẹlu awoṣe “iran orisun orisun IaC” loke, beere AI fun koodu kan pẹlu awọn aiyipada ailewu. Ṣayẹwo koodu naa lẹẹmeji pẹlu awoṣe “atunyẹwo koodu aabo koodu IaC ki o gbiyanju lati wa o kere ju eto alaimuṣinṣin kan. Ti o ba ṣee ṣe, ṣiṣe eto / - ṣayẹwo lori akọọlẹ idanwo kan ki o ṣe atunyẹwo iṣẹjade pẹlu awoṣe “ayẹwo igbejade Eto”; Wo boya piparẹ wa tabi laini atunda. Kọ awọn awari rẹ silẹ ati bii iwọ yoo ṣe aabo ipinlẹ ni awọn aaye 6.
akojọ ayẹwo
- [] Ṣe Mo pato awọsanma, ọpa ati ẹya si AI ati beere koodu pẹlu awọn igbanilaaye dín julọ?
- [] Njẹ Mo ti ṣayẹwo koodu fun awọn aiyipada alaimuṣinṣin (0.0.0.0/0, fifi ẹnọ kọ nkan)?
- [] Njẹ Mo ti fa awọn aṣiri jade si oniyipada dipo fifi wọn sinu koodu naa?
- [] Njẹ Mo ti ka ero / ṣayẹwo iṣẹjade ati samisi awọn laini piparẹ ṣaaju lilo?
- [] Njẹ Mo ti ṣe iṣiro ipadanu ipadanu data ti “awọn ipa ipadarọ” / awọn laini atunṣe?
- Njẹ Emi ko tọju [ ] Faili ipinlẹ ti paroko, ni titiipa, ni ẹhin isakoṣo latọna jijin ki o si jo jade?