Riba:
- Ƙarfin fahimtar ra'ayi na IaC da tsarin aikin Terraform (init, tsari, amfani, jiha, tsari) da kuma samun basirar wucin gadi suna samar da amintaccen zane na HCL.
- Ikon duba kowane canji tare da shirin kafin amfani da kama lalata / maye gurbin layukan da ba zato ba tsammani
- Ikon amfani da ƙa'idodin kiyaye sirri daga lambar, kiyaye ƙasa amintacce, da rage izinin IAM
A baya, kafa uwar garken lamari ne na dannawa ta hanyar girgije: ƙirƙirar na'ura mai mahimmanci, saita hanyar sadarwa, ƙara tsarin tsaro. Wannan hanya ta kasance a hankali, mai saurin kuskure, kuma ba za a iya maimaita ta ba - yana da kusan yiwuwa a kafa yanayi iri ɗaya a karo na biyu. A yau, ana sarrafa kayan more rayuwa azaman lamba. IaC (Infrastructure as Code) hanya ce ta bayyana albarkatun girgije kamar sabar, cibiyoyin sadarwa, da bayanan bayanai a cikin fayilolin rubutu maimakon da hannu. Waɗannan fayilolin suna zaune a cikin sarrafa sigar (Git); Kuna iya ganin wanda ya canza menene, yaushe, da menene; Kuna iya saita abubuwan more rayuwa iri ɗaya sau da yawa, daidai da hanya ɗaya, tare da umarni ɗaya.
Mafi yawan kayan aikin IaC shine Terraform. Terraform yana ɗaukar ma'anar da kuka rubuta a cikin yaren da ake iya karantawa mai suna HCL (HashiCorp Configuration Language — Terraform's Configuration Language), yana fassara su zuwa API ɗin girgije na girgije (AWS, Azure, GCP) kuma yana ƙirƙirar albarkatun. AI ya san HCL sosai kuma yana samar da hadaddun tubalan da sauri. Amma a cikin IaC, farashin kuskure yana da yawa: ma'anar kuskure ɗaya na iya share duk bayanan samarwa. Shi ya sa dokar zinare a Terraform ita ce ganin kowane canji tare da 'tsarin' kafin aiwatar da shi.
Terraform's Runtime
Terraform yana aiki tare da umarni na asali guda uku - sanin waɗannan buƙatu ne don sarrafa fitar da AI:
- `terraform init': Fara aikin, zazzage abubuwan da ake buƙata na masu samarwa.
- `Traform Plan`: Yana kwatanta halin da ake ciki yanzu da yanayin da ake so kuma yana nuna abin da za a ƙara, abin da za a canza, abin da za a share. Baya aiwatar da komai. Shine matakin tsaro mafi mahimmanci.
- `Traform apply`: A zahiri yana aiki da Shirin, ƙirƙira/gyara albarkatu.
Bugu da ƙari, ra'ayoyi guda biyu suna da mahimmanci. Jiha (fayil ɗin jiha): Wannan shi ne fayil ɗin da Terraform ke kiyaye halin yanzu na albarkatun da yake sarrafawa; Yawancin lokaci ana ajiye shi a cikin wani wuri mai nisa da kuma kulle ta yadda mutane biyu ba za su iya canzawa ko lalata shi a lokaci guda ba. Module: Kunshin daidaitawa mai sake amfani da shi; Misali, zaku iya amfani da tsarin “saitin hanyar sadarwa” a cikin ayyuka da yawa.
Tukwici: Alamar mafi haɗari a cikin fitowar Terraform ita ce lalata ko -/+ (maye gurbin) layi a cikin fitowar shirin. Waɗannan suna nufin cewa za a share albarkatun. Idan kun ga halakar da ba zato ba tsammani a cikin tsari, kada ku yi amfani da shi, fara fahimtar dalilin da yasa ya bayyana.
Mataki-mataki: Rubuta IaC tare da AI
- Bayyana abubuwan da ake so. Zama kankare kamar "VPC ɗaya, ƙananan ramuka biyu, ƙungiyar tsaro ɗaya da ɗaya t3.micro EC2 akan eu-central-1".
- Ƙayyade mai bayarwa da sigar. Wanne gajimare, wane nau'in Terraform da mai bayarwa? Idan ba ku ƙididdige sigar ba, AI na iya dawo da tsohuwar tsohuwar magana/marasa jituwa.
- Samar da daftarin HCL. Hakanan nemi masu canji da abubuwan fitarwa.
- Fitar da Sirrin. Ƙimar kamar kalmomin shiga da maɓalli ya kamata su tafi zuwa ga maɓalli da ɓoye, ba ga lambar ba.
- Gudu 'init' + 'tsarin'. Karanta layin fitar da shirin ta layi; Bincika gogewar da ba zato ba tsammani.
- Fara ƙananan, aiwatar da hankali. Aiwatar da shi a keɓaɓɓen asusun gwaji / muhalli da farko.
Tsaro: ƙayyadaddun haɗari na IaC
IaC yana da haɗari kamar yadda yake da ƙarfi. Abubuwa uku masu mahimmanci:
- Akwai sirri a cikin fayil ɗin jihar. Jihar Terraform wani lokaci tana adana ƙima masu mahimmanci, kamar kalmomin shiga bayanan bayanai, a cikin bayyananniyar rubutu. Kada a taɓa sanya Jiha a cikin ma'ajiyar jama'a; Yi amfani da rufaffen rufaffiyar, taƙaitacciyar dama ta baya mai nisa.
- Kada ku sanya sirri a cikin HCL. Layuka kamar kalmar sirri = "prod123" an rubuta su na dindindin zuwa tarihin Git. Madadin haka, yi amfani da m kuma ba da ƙima a lokacin aiki daga ma'aunin yanayi (TF_VAR_...) ko ɓoyayyen ɓoye.
- IAM mai fadi sosai. AI wani lokaci yana samar da tubalan kamar Action: "*" (bar komai) don "sa shi yayi aiki". Wannan rauni ne; kunkuntar izinin zuwa mafi ƙarancin da ake buƙata.
Hankali: Da zarar wani sirri ya shiga tarihin Git, zai kasance a baya kuma ana iya daidaita shi, koda kun share fayil ɗin. Idan kun yi kuskure, nan da nan soke kuma ku juya sirrin; Share kawai bai isa ba.
Alamun shirin haɗari tebur
Shirya bugawa
Ma'ana
me za ayi
+ halitta
Za a ƙara sabon albarkatu
Gabaɗaya lafiya, bita ko da yake
~ sabunta cikin wuri
Tushen zai canza a wurin
Tabbatar da tasiri (shin za a samu fita?)
-/+ maye gurbin
Za a share kuma a sake ƙirƙira
HANKALI: asarar bayanai na iya faruwa
- halaka
Za a lalata albarkatun
TSAYA: kar a taɓa yin amfani da shi idan ba a jira ba
uku mini lokuta
Case 1 - 2 kwanaki' aiki a cikin 3 hours. Ƙungiya ɗaya za ta rubuta Terraform don saita sabon yanayin gwaji (VPC, subnets, RDS database, ECS cluster) amma sun koma HCL. Sun bayyana gine-gine da sigogin zuwa AI kuma sun samar da wani tsari na zamani. Sun tabbatar da kowane nau'i tare da shirin kuma sun tashi da aiki a cikin sa'o'i 3; Zai ɗauki kwanaki biyu na gwaji da kuskure da hannu.
Case 2 - shirin ya kama gogewa. Wani injiniya ya gudanar da tsari ba tare da yin amfani da lambar sabuntawa ta AI ba. Fitowar ta ƙunshi -/+ maye gurbin don samar da bayanai - AI yayi ƙoƙarin maye gurbin filin da ba za a iya maye gurbinsa ba, wanda ke nufin sharewa da sake ƙirƙirar bayanan. Injiniyan ya tsaya nema kuma ya canza canjin zuwa hanyar aminci. Halin shiryawa ya hana bala'i.
Case 3 - binne yoyon asiri. Karamin, YZ ya ba da db_password = "S3cret!" Yayi layi kamar haka ya tura. An kama shi a cikin rikodin rikodin; An soke kalmar sirri nan da nan kuma an canza shi, an matsar da ƙimar zuwa mai canzawa kuma an ciyar da shi daga ɓoye na sirri. Darasi: Babu wasu bayanan sirri a cikin HCL.
Samfura huɗu masu kwafi
1) Samar da daftarin abubuwan more rayuwa:
Rubuta abubuwan more rayuwa masu zuwa akan [Cloud: AWS] tare da Terraform (sigar ~> 1.7): [LISSIN MAJIYA]. Yankin [X]. Dokoki: - Yi duk mahimman ƙima su zama masu canzawa, kar a saka su a cikin HCL.- Gyara sigar mai ba da sabis (masu samarwa da ake buƙata) - Rage izinin IAM, kar a yi amfani da "*" - Koma [X, Y] azaman fitarwa. Ba da code na zamani tare da bayani.
2) Fassarar fitowar shirin:
Yi nazarin fitowar 'terraform plan' a ƙasa. Lissafo ni: (1) abin da aka ƙara / canza / GAME, (2) layuka da ke cikin haɗarin asarar bayanai ko katsewa, (3) tambayoyi 3 da zan yi kafin amfani. Shirya: [OUTPUT]
3) Bincika HCL data kasance don tsaro:
Bincika lambar Terraform mai zuwa don tsaro: sirrin da aka saka, izinin IAM mai fa'ida, buɗaɗɗen ƙa'idar hanyar sadarwa (0.0.0.0/0), ma'ajin da ba a ɓoye? Rubuta kowane bincike cikin tsari da mahimmanci da gyara. Code: [HCL]
4) Mayar da maimaita lambar zuwa module:
Maimaita wannan lambar Terraform mai maimaitawa zuwa tsarin sake amfani da ita: menene dabi'u ya kamata su zama masu canji, menene mu'amalar module ya zama? Hakanan nuna misalin amfani. Code: [HCL]
Rauni mai ƙarfi / Ƙarfi mai ƙarfi
Rauni: "Ƙirƙiri bayanan bayanai tare da Terraform."
Sakamako: Ba a san wane gajimare ba, wane injin, wane sigar, rufaffiyar ko a'a; Tare da syntax na gado, AI na iya ba da misali da ake samuwa a bainar jama'a wanda ke shigar da kalmar wucewa a cikin lambar.
Ƙarfafa: "Ƙirƙiri misali na RDS PostgreSQL 15 akan AWS tare da Terraform ~> 1.7. Sanya kalmar wucewa ta canza, kar a saka shi a cikin lambar. An ɓoye ma'ajiya, ana iya samun dama daga subnet mai zaman kansa kawai, ba na jama'a ba. Gyara sigar mai badawa. Koma ƙarshen matsayin fitarwa."
Bambanci: faɗakarwa na biyu yana ba da injin, sigar, ɓoyewa, ƙuntatawar hanyar sadarwa da ƙa'idar sirri - fitarwa yana da tsaro kuma yana kusa da samfur.
Kuskuren gama gari
- Don 'aikawa' ba tare da yin 'tsarin' ba. Kuskure mafi tsada a cikin IaC; ko da yaushe shirya farko.
- Sirrin shigar a cikin HCL. Yana ƙirƙira ɗigogi na dindindin cikin tarihin Git.
- Ajiye rashin tsaro a jihar. Jihar da ba a ɓoye ba, buɗewa, jihar jama'a bala'i ne.
- Ba gyara sigar ba. Yin amfani da mai bayarwa ba tare da tantance sigar ba zai haifar da gazawar kwatsam a nan gaba.
- *`Aiki: Babban izini kamar ""."** Ya keta ƙa'idar mafi ƙarancin gata.
- Yin watsi da 'lalata' ba zato ba tsammani. Aiwatar da layin sharewa a cikin Tsarin ba tare da tambaya ba.
A takaice
IaC tana juya kayayyakin more rayuwa zuwa maimaitawa, mai iya jujjuyawa, da lambar da za a iya tantancewa; Mafi yawan kayan aiki shine Terraform. AI da sauri yana samar da stubs na HCL, amma dole ne ku samar da sigar, takamaiman bayanai na girgije, da dokokin tsaro. Dokokin da ba za a iya kuskure ba a cikin Terraform: don ganin kowane canji tare da tsari, don neman gogewar da ba zato ba tsammani, don ɓoye sirri daga lambar da kuma kiyaye ƙasa amintacce. Rugujewa da maye gurbin layi a cikin fitowar shirin sune wuraren da yakamata a karanta su a hankali.
Aikin aikace-aikace
Shin AI ta samar da ƙananan kayan more rayuwa (misali guga ajiya da manufar samun dama) ta amfani da samfurin "Ƙirƙirar zana abubuwan more rayuwa" a sama. Sa'an nan: (1) sami samfurin "vetting" don duba sirrin ko * izini da aka saka a cikin lambar; (2) idan zai yiwu, gudanar da shirin init + a cikin asusun gwaji kuma karanta fitar da shirin tare da samfurin "fassarar shirin"; (3) lura da kowane sharewa/canji mara tsammani.
jerin abubuwan dubawa
- [ ] Na ƙara gajimare, sigar Terraform/mai bayarwa, da ɓoyayyen ɓoyewa/maƙasudin hanyar sadarwa zuwa ga hanzari na.
- [ ] Babu wani sirrin bayyane a cikin lambar; daidaitattun dabi'u masu canzawa.
- [ ] Na rage IAM/izni zuwa mafi ƙarancin izini, * Ban yi amfani da shi ba.
- [ ] Na yi shiri kafin a yi amfani da shi kuma na karanta layin fitarwa ta layi.
- [ ] Na tabbatar da cewa babu wani lalacewa/majiye mara tsammani a cikin Shirin.
- [ ] Na tabbata cewa an ajiye jihar a cikin rufaffen rufaffiyar, kulle da ƙuntataccen abin baya.