Disinji f'Terraform biex jiġġieldu l-kaos u r-rutina manwali. Maxim Kostrikin (Ixtens)

Disinji f'Terraform biex jiġġieldu l-kaos u r-rutina manwali. Maxim Kostrikin (Ixtens)

Jidher li l-iżviluppaturi Terraform joffru l-aħjar prattiki pjuttost konvenjenti biex jaħdmu ma 'infrastruttura AWS. Hemm biss sfumatura. Maż-żmien, in-numru ta 'ambjenti jiżdied, kull wieħed bil-karatteristiċi tiegħu. Kważi kopja tal-munzell tal-applikazzjoni tidher fir-reġjun ġar. U l-kodiċi Terraform jeħtieġ li jiġi kkupjat u editjat bir-reqqa skont ir-rekwiżiti l-ġodda jew magħmul fi snowflake.

It-taħdita tiegħi dwar mudelli f'Terraform biex tiġġieled il-kaos u r-rutina manwali fuq proġetti kbar u twal.

Video:

Disinji f'Terraform biex jiġġieldu l-kaos u r-rutina manwali. Maxim Kostrikin (Ixtens)

Għandi 40 sena, ilni 20 sena fl-IT. Ilni naħdem għal Ixtens għal 12-il sena. Aħna impenjati fl-iżvilupp immexxi mill-kummerċ elettroniku. U ilni nipprattika l-prattiki DevOps għal 5 snin.

Disinji f'Terraform biex jiġġieldu l-kaos u r-rutina manwali. Maxim Kostrikin (Ixtens)

L-istorja tiegħi se tkun dwar l-esperjenza tiegħi fi proġett f’kumpanija li isimha mhux se ngħid, ħabi wara ftehim ta’ non-disclosure.

In-numri fuq il-pjastra huma indikati sabiex tifhem l-iskala tal-proġett. U dak kollu li se ngħid li jmiss huwa relatat mal-Amazon.

Disinji f'Terraform biex jiġġieldu l-kaos u r-rutina manwali. Maxim Kostrikin (Ixtens)

Dħalt f'dan il-proġett 4 snin ilu. U r-refactoring tal-infrastruttura kien fl-aqwa tiegħu għax il-proġett kien kiber. U l-mudelli li ntużaw ma kinux għadhom adattati. U minħabba t-tkabbir ippjanat kollu tal-proġett, kien meħtieġ li toħroġ xi ħaġa ġdida.

Grazzi lil Matvey, li lbieraħ qaltilna x’ġara f’Dodo Pizza. Dan hu dak li ġara hawn 4 snin ilu.

L-iżviluppaturi ġew u bdew jagħmlu l-kodiċi tal-infrastruttura.

L-aktar raġunijiet ovvji għaliex dan kien meħtieġ kien iż-żmien tas-suq. Kien meħtieġ li jiġi żgurat li t-tim DevOps ma kienx ostaklu waqt it-tnedija. U fost affarijiet oħra, Terraform u Puppet intużaw fl-ewwel livell.

Disinji f'Terraform biex jiġġieldu l-kaos u r-rutina manwali. Maxim Kostrikin (Ixtens)

Terraform huwa proġett ta' sors miftuħ minn HashiCorp. U għal dawk li lanqas biss jafu x'inhu dan, il-ftit slides li ġejjin.

Disinji f'Terraform biex jiġġieldu l-kaos u r-rutina manwali. Maxim Kostrikin (Ixtens)

L-infrastruttura bħala kodiċi tfisser li nistgħu niddeskrivu l-infrastruttura tagħna u nistaqsu xi robots biex niżguraw li nirċievu r-riżorsi li ddeskrivejna.

Pereżempju, għandna bżonn magna virtwali. Aħna ser niddeskrivu u nżidu diversi parametri meħtieġa.

Disinji f'Terraform biex jiġġieldu l-kaos u r-rutina manwali. Maxim Kostrikin (Ixtens)

Wara dan, aħna ser tikkonfigura l-aċċess għall-Amazon fil-console. U aħna nitolbu għal pjan Terraform. Il-pjan Terraform jgħid: "Tajjeb, nistgħu nagħmlu dawn l-affarijiet għar-riżors tiegħek." U mill-inqas riżorsa waħda se tiżdied. U l-ebda tibdil huwa mistenni.

Disinji f'Terraform biex jiġġieldu l-kaos u r-rutina manwali. Maxim Kostrikin (Ixtens)

Ladarba tkun kuntent b'kollox, tista 'titlob lil Terraform biex tapplika u Terraform toħloq eżempju għalik, u tirċievi magna virtwali fil-cloud tiegħek.

Disinji f'Terraform biex jiġġieldu l-kaos u r-rutina manwali. Maxim Kostrikin (Ixtens)

Aktar il-proġett tagħna qed jiżviluppa. Qed inżidu xi bidliet hemmhekk. Nitolbu għal aktar każijiet, inżidu 53 daħla.

Disinji f'Terraform biex jiġġieldu l-kaos u r-rutina manwali. Maxim Kostrikin (Ixtens)

U nirrepetu. Jekk jogħġbok ippjana. Naraw x'bidliet huma ppjanati. Aħna napplikaw. U hekk tikber l-infrastruttura tagħna.

Terraform juża xi ħaġa msejħa fajls tal-istat. Jiġifieri, il-bidliet kollha li jmorru għall-Amazon jiġu ffrankati f'fajl fejn għal kull riżors li ddeskriviet, hemm riżorsi korrispondenti li nħolqu fl-Amazon. Għalhekk, meta d-deskrizzjoni ta 'riżorsa tinbidel, Terraform ikun jaf eżattament x'għandu jinbidel fl-Amazon.

Disinji f'Terraform biex jiġġieldu l-kaos u r-rutina manwali. Maxim Kostrikin (Ixtens)

Dawn il-fajls tal-istat oriġinarjament kienu biss fajls. U ħżinhom f'Git, li kien estremament inkonvenjenti. Xi ħadd dejjem nesa li jagħmel bidliet, u qamu ħafna kunflitti.

Issa huwa possibbli li tuża l-backend, jiġifieri Terraform huwa speċifikat f'liema barmil u b'liema ċavetta għandu jiġi ssejvjat il-fajl tal-istat. U Terraform innifsu se jieħu ħsieb li jikseb dan il-fajl tal-istat, jagħmel il-maġija kollha u jpoġġi lura r-riżultat finali.

Disinji f'Terraform biex jiġġieldu l-kaos u r-rutina manwali. Maxim Kostrikin (Ixtens)

L-infrastruttura tagħna qed tikber. Hawn il-kodiċi tagħna. U issa ma rridux biss noħolqu magna virtwali, irridu li jkollna ambjent tat-test.

Disinji f'Terraform biex jiġġieldu l-kaos u r-rutina manwali. Maxim Kostrikin (Ixtens)

Terraform jippermettilek li toħloq tali ħaġa bħala modulu, jiġifieri, tiddeskrivi l-istess ħaġa f'xi folder.

Disinji f'Terraform biex jiġġieldu l-kaos u r-rutina manwali. Maxim Kostrikin (Ixtens)

U, per eżempju, fl-ittestjar, sejħa dan il-modulu u jiksbu l-istess ħaġa daqs li kieku kellna eżegwiti Terraform japplikaw fil-modulu innifsu. Għall-ittestjar se jkun hemm dan il-kodiċi.

Disinji f'Terraform biex jiġġieldu l-kaos u r-rutina manwali. Maxim Kostrikin (Ixtens)

Għall-produzzjoni, nistgħu nibagħtu xi bidliet hemmhekk, għaliex fl-ittestjar m'għandniex bżonn każijiet kbar; fil-produzzjoni, każijiet kbar huma biss utli.

Disinji f'Terraform biex jiġġieldu l-kaos u r-rutina manwali. Maxim Kostrikin (Ixtens)

U mbagħad nirritorna lura għall-proġett. Kien biċċa xogħol diffiċli, l-infrastruttura ppjanata kienet kbira ħafna. U kien meħtieġ li b'xi mod jitqiegħed il-kodiċi kollu sabiex ikun konvenjenti għal kulħadd: kemm għal dawk li jagħmlu manutenzjoni fuq dan il-kodiċi kif ukoll għal dawk li jagħmlu bidliet. U kien ippjanat li kwalunkwe żviluppatur jista 'jmur u jiffissa l-infrastruttura kif meħtieġ għall-parti tiegħu tal-pjattaforma.

Din hija siġra tad-direttorju li hija rakkomandata minn HashiCorp innifsu jekk għandek proġett kbir u jagħmel sens li taqsam l-infrastruttura kollha f'xi biċċiet żgħar, u tiddeskrivi kull biċċa f'folder separat.

Li jkollok librerija estensiva ta 'riżorsi, tista' ċċempel bejn wieħed u ieħor l-istess ħaġa fl-ittestjar u fil-produzzjoni.

Disinji f'Terraform biex jiġġieldu l-kaos u r-rutina manwali. Maxim Kostrikin (Ixtens)

Fil-każ tagħna, dan ma kienx adattat għal kollox, minħabba li l-munzell tat-test għall-iżviluppaturi jew għall-ittestjar kellu jinkiseb b'xi mod aktar sempliċi. Imma ma ridtx ngħaddi mill-folders u napplikahom fis-sekwenza meħtieġa, u ninkwieta li d-database titla ', u mbagħad titla' l-istanza li tuża din id-database. Għalhekk, l-ittestjar kollu ġie mniedi minn folder wieħed. Hemmhekk issejħu l-istess moduli, iżda kollox sar f'ġirja waħda.

Terraform jieħu ħsieb id-dipendenzi kollha. U dejjem toħloq riżorsi fis-sekwenza sabiex tkun tista 'tikseb indirizz IP, pereżempju, minn istanza maħluqa ġdida, u tikseb dan l-indirizz IP fir-rekord ta' route53.

Barra minn hekk, il-pjattaforma hija kbira ħafna. U t-tnedija ta 'munzell tat-test, anki jekk għal siegħa, anke jekk għal 8 sigħat, hija impriża pjuttost għalja.

U aħna awtomatizzajna din il-kwistjoni. U l-impjieg ta 'Jenkins ippermetta li nħaddmu l-munzell. Fiha, kien meħtieġ li titnieda talba ta 'ġibda bil-bidliet li l-iżviluppatur irid jittestja, jispeċifika l-għażliet, il-komponenti u d-dimensjonijiet kollha meħtieġa. Jekk irid ittestjar tal-prestazzjoni, allura jista 'jieħu aktar każijiet. Jekk jeħtieġ biss li jiċċekkja li xi formola tiftaħ, allura jista 'jibda bil-paga minima. U indika wkoll jekk cluster huwiex meħtieġ jew le, eċċ.

U mbagħad Jenkins imbuttat skript tal-qoxra, li mmodifika ftit il-kodiċi fil-folder Terraform. Neħħejt fajls mhux meħtieġa u żidt fajls meħtieġa. U mbagħad ma 'run waħda ta' Terraform japplikaw il-munzell tqajmet.

U mbagħad kien hemm passi oħra li ma rridx nidħol fihom.

Disinji f'Terraform biex jiġġieldu l-kaos u r-rutina manwali. Maxim Kostrikin (Ixtens)

Minħabba l-fatt li għall-ittestjar kellna bżonn ftit aktar għażliet milli fil-produzzjoni, kellna nagħmlu kopji tal-moduli biex f’dawn il-kopji nistgħu nżidu dawk il-karatteristiċi li kienu meħtieġa biss għall-ittestjar.

U ġara li fl-ittestjar irrid nittestja dawk il-bidliet li eventwalment jidħlu fil-produzzjoni. Iżda fil-fatt, ħaġa waħda ġiet ittestjata, u waħda kemmxejn differenti kienet użata fil-produzzjoni. U kien hemm waqfa żgħira fil-mudell li fil-produzzjoni l-bidliet kollha ġew applikati mit-tim tal-operazzjoni. U kultant irriżulta li dawk il-bidliet li suppost kellhom jgħaddu mill-ittestjar għall-produzzjoni baqgħu f'verżjoni oħra.

Barra minn hekk, kien hemm problema tant li ġie miżjud servizz ġdid, li kien kemmxejn differenti minn xi wieħed diġà eżistenti. U minflok immodifika modulu eżistenti, kellna nagħmlu kopja tiegħu u nżidu l-bidliet meħtieġa.

Essenzjalment, Terraform mhix lingwa reali. Din hija dikjarazzjoni. Jekk irridu niddikjaraw xi ħaġa, allura niddikjarawha. U kollox jaħdem.

F'xi punt, meta waħda mit-talbiet tiegħi tal-ġibda kienet qed tiġi diskussa, wieħed mill-kollegi tiegħi qal li ma kienx hemm bżonn li jinħolqu snowflakes. Staqsejt xi ried ifisser. Hemm fatt xjentifiku li m'hemmx żewġ snowflakes identiċi fid-dinja, huma kollha kemmxejn differenti. U hekk kif smajt dan, immedjatament ħassejt il-piż sħiħ tal-kodiċi Terraform. Minħabba li meta kien meħtieġ li timxi minn verżjoni għal verżjoni, Terraform kien jeħtieġ bidliet fil-katina ta 'tkissir, jiġifieri l-kodiċi ma kienx għadu kompatibbli mal-verżjoni li jmiss. U kellna nagħmlu talba tal-ġibda, li kopriet kważi nofs il-fajls fl-infrastruttura, sabiex nġibu l-infrastruttura għall-verżjoni li jmiss ta 'Terraform.

U wara li deher snowflake bħal dan, il-kodiċi kollu Terraform li konna nbidel f'munzell kbir u kbir ta 'borra.

Għal żviluppatur estern li huwa barra l-operazzjoni, dan ma jimpurtax ħafna għalih, minħabba li għamel talba ta 'ġibda, ir-riżors tiegħu beda. U dak kollu, m'għadux it-tħassib tiegħu. U t-tim DevOps, li jiżgura li kollox huwa OK, huwa meħtieġ li jagħmel dawn il-bidliet kollha. U l-ispiża ta 'dawn il-bidliet żdiedet ħafna, ħafna ma' kull snowflake addizzjonali.

Disinji f'Terraform biex jiġġieldu l-kaos u r-rutina manwali. Maxim Kostrikin (Ixtens)

Hemm storja dwar kif student f'seminar jiġbed żewġ ċrieki perfetti bil-ġibs fuq il-blackboard. U l-għalliem huwa sorpriż kif irnexxielu jiġbed daqshekk bla xkiel mingħajr boxxla. L- istudent iwieġeb: “Sempliċi ħafna, qattajt sentejn fl- armata ndawwar grinder tal- laħam.”

U mill-erba’ snin li ilni involut f’dan il-proġett, ilni nagħmel Terraform għal madwar sentejn. U, ovvjament, għandi xi tricks, xi pariri dwar kif tissimplifika l-kodiċi Terraform, taħdem magħha bħal lingwa ta 'programmar u tnaqqas il-piż fuq l-iżviluppaturi li għandhom iżommu dan il-kodiċi aġġornat.

Disinji f'Terraform biex jiġġieldu l-kaos u r-rutina manwali. Maxim Kostrikin (Ixtens)

L-ewwel ħaġa li nixtieq nibda biha hija Symlinks. Terraform għandu ħafna kodiċi ripetittivi. Pereżempju, is-sejħa lill-fornitur fi kważi kull punt fejn noħolqu biċċa infrastruttura hija l-istess. U huwa loġiku li tpoġġiha f'folder separat. U kull fejn il-fornitur huwa meħtieġ li jagħmel Symlinks għal dan il-fajl.

Disinji f'Terraform biex jiġġieldu l-kaos u r-rutina manwali. Maxim Kostrikin (Ixtens)

Pereżempju, fil-produzzjoni tuża assume role, li jippermettilek tikseb drittijiet ta 'aċċess għal xi kont estern ta' Amazon. U wara li nbidlu fajl wieħed, dawk kollha li jifdal fis-siġra tar-riżorsi se jkollhom id-drittijiet meħtieġa sabiex Terraform ikun jaf liema segment tal-Amazon għandu jaċċessa.

Disinji f'Terraform biex jiġġieldu l-kaos u r-rutina manwali. Maxim Kostrikin (Ixtens)

Fejn ifallu s-Symlinks? Kif għedt, Terraform għandu fajls tal-istat. U huma ħafna, ħafna jibred. Iżda l-ħaġa hija li Terraform initializes-backend fl-ewwel post. U ma jistax juża l-ebda varjabbli f'dawn il-parametri; iridu dejjem jinkitbu fit-test.

U bħala riżultat, meta xi ħadd jagħmel riżors ġdid, huwa kopji xi wħud mill-kodiċi minn folders oħra. U jista’ jiżbalja biċ-ċavetta jew bil-barmil. Per eżempju, jagħmel ħaġa sandbox minn sandbox, u mbagħad jagħmilha fil-produzzjoni. U għalhekk jista 'jirriżulta li l-barmil fil-produzzjoni se jintuża minn sandbox. Naturalment, se jsibuha malajr. Dan se jkun possibbli li jiġi rranġat b'xi mod, iżda madankollu hija ħela ta 'ħin u, sa ċertu punt, riżorsi.

Disinji f'Terraform biex jiġġieldu l-kaos u r-rutina manwali. Maxim Kostrikin (Ixtens)

X'nistgħu nagħmlu wara? Qabel ma taħdem ma 'Terraform, trid tinizjalizzaha. Fl-inizjalizzazzjoni, Terraform tniżżel il-plugins kollha. F'xi punt huma qasmu minn monolith għal arkitettura aktar mikroservizz. U dejjem trid tagħmel Terraform init sabiex tiġbed il-moduli kollha, il-plugins kollha.

U tista 'tuża skript tal-qoxra, li, l-ewwelnett, tista' tikseb il-varjabbli kollha. L-iskript tal-qoxra mhu limitat bl-ebda mod. U, it-tieni, il-mogħdijiet. Jekk dejjem nużaw il-mogħdija li tinsab fir-repożitorju bħala ċ-ċavetta għall-fajl tal-istat, allura, għalhekk, l-iżball hawn se jiġi eliminat.

Disinji f'Terraform biex jiġġieldu l-kaos u r-rutina manwali. Maxim Kostrikin (Ixtens)

Fejn nista' nikseb id-dejta? Fajl JSON. Terraform jippermettilek tikteb infrastruttura mhux biss f'hcl (HashiCorp Configuration Language), iżda wkoll f'JSON.

JSON huwa faċli biex jinqara minn script shell. Għaldaqstant, tista 'tpoġġi l-fajl tal-konfigurazzjoni bil-barmil f'xi post. U uża dan il-barmil kemm fil-kodiċi Terraform kif ukoll fl-iskript tal-qoxra għall-inizjalizzazzjoni.

Disinji f'Terraform biex jiġġieldu l-kaos u r-rutina manwali. Maxim Kostrikin (Ixtens)

Għaliex huwa importanti li jkollok barmil għal Terraform? Minħabba li hemm ħaġa bħal fajls tal-istat remoti. Jiġifieri, meta ngħolli xi riżorsa, sabiex ngħid lil Amazon: "Jekk jogħġbok qajjem istanza," għandi bżonn nispeċifika ħafna parametri meħtieġa.

U dawn l-identifikaturi huma maħżuna f'xi folder ieħor. U nista’ mmur u ngħid: “Terraform, jekk jogħġbok mexxi lejn il-fajl tal-istat ta’ dik ir-riżorsa stess u ġibli dawn l-identifikaturi.” U għalhekk ċerta unifikazzjoni tidher bejn reġjuni jew ambjenti differenti.

Mhux dejjem possibbli li tuża fajl tal-istat remot. Per eżempju, inti ħloqt VPC bl-idejn. U l-kodiċi Terraform li joħloq il-VPC joħloq VPCs differenti tant li se jieħu żmien twil ħafna u jkollok taġġusta waħda għall-oħra, sabiex tkun tista 'tuża l-trick li ġej.

Disinji f'Terraform biex jiġġieldu l-kaos u r-rutina manwali. Maxim Kostrikin (Ixtens)

Jiġifieri, agħmel modulu li jidher li jagħmel VPC u, kif kien, jagħtik identifikaturi, iżda fil-fatt hemm sempliċement fajl b'valuri hardcoded li jistgħu jintużaw biex joħolqu l-istess istanza.

Disinji f'Terraform biex jiġġieldu l-kaos u r-rutina manwali. Maxim Kostrikin (Ixtens)

Mhux dejjem meħtieġ li tissejvja l-fajl tal-istat fis-sħaba. Pereżempju, meta tittestja l-moduli, tista 'tuża l-inizjalizzazzjoni backend, fejn il-fajl sempliċement jiġi ssejvjat fuq id-diska fil-ħin tal-ittestjar.

Disinji f'Terraform biex jiġġieldu l-kaos u r-rutina manwali. Maxim Kostrikin (Ixtens)

Issa ftit dwar l-ittestjar. X'tista' tittestja f'Terraform? Probabbilment ħafna huwa possibbli, iżda se nitkellem dwar dawn l-4 affarijiet.

HashiCorp jifhem kif il-kodiċi Terraform għandu jiġi fformattjat. U Terraform fmt jippermettilek li tifformattja l-kodiċi li teditja skont dan it-twemmin. Għaldaqstant, it-testijiet iridu neċessarjament jiċċekkjaw jekk l-ifformattjar jikkorrispondix għal dak li wrew HashiCorp, sabiex ma jkunx hemm bżonn li tinbidel il-post tal-parentesi, eċċ.

Disinji f'Terraform biex jiġġieldu l-kaos u r-rutina manwali. Maxim Kostrikin (Ixtens)

Il-wieħed li jmiss huwa Terraform validate. Jagħmel ftit aktar milli jiċċekkja s-sintassi - ala, jekk il-parentesi kollha humiex paired. X'inhu importanti hawn? L-infrastruttura tagħna hija estensiva ħafna. Hemm ħafna daddies differenti fiha. U f'kull wieħed għandek bżonn tmexxi Terraform validate.

Għaldaqstant, biex tħaffef l-ittestjar, aħna nħaddmu proċessi multipli b'mod parallel bl-użu parallel.

Parallel hija ħaġa friska ħafna, użaha.

Iżda kull darba li Terraform jinizjalizza, imur għand HashiCorp u jistaqsi, "X'inhuma l-aħħar verżjonijiet tal-plugins? U l-plugin li għandi fil-cache – huwa dak it-tajjeb jew il-ħażin?” U dan naqas f'kull pass.

Disinji f'Terraform biex jiġġieldu l-kaos u r-rutina manwali. Maxim Kostrikin (Ixtens)

Jekk tgħid lil Terraform fejn huma l-plugins, allura Terraform jgħid: “Tajjeb, din hija probabbilment l-aħħar ħaġa li hemm. Jien mhu se mmur imkien, immedjatament nibda nivvalida l-kodiċi Terraform tiegħek.

Disinji f'Terraform biex jiġġieldu l-kaos u r-rutina manwali. Maxim Kostrikin (Ixtens)

Sabiex timla l-folder bil-plugins meħtieġa, għandna kodiċi Terraform sempliċi ħafna li jeħtieġ biss li jiġi inizjalizzat. Hawnhekk, ovvjament, trid tispeċifika l-fornituri kollha li b'xi mod jipparteċipaw fil-kodiċi tiegħek, inkella Terraform jgħid: "Ma nafx ċertu fornitur għax mhux fil-cache."

Disinji f'Terraform biex jiġġieldu l-kaos u r-rutina manwali. Maxim Kostrikin (Ixtens)

Li jmiss huwa l-pjan Terraform. Kif għedt, l-iżvilupp huwa ċikliku. Aħna nagħmlu bidliet fil-kodiċi. U mbagħad trid issir taf liema bidliet huma ppjanati għall-infrastruttura.

U meta l-infrastruttura tkun kbira ħafna, tista 'tbiddel modulu wieħed, tiffissa xi ambjent tat-test jew xi reġjun speċifiku u tkisser xi wieħed ġar. Għalhekk, il-pjan Terraform għandu jsir għall-infrastruttura kollha u juri x’bidliet huma ppjanati.

Tista 'tagħmel dan b'mod intelliġenti. Pereżempju, ktibna script Python li ssolvi d-dipendenzi. U skont dak li nbidel: modulu Terraform jew sempliċement komponent speċifiku, jagħmel pjanijiet għall-folders dipendenti kollha.

Pjanijiet Terraform għandhom isiru fuq talba. Almenu hekk nagħmlu.

Naturalment, huwa tajjeb li tagħmel testijiet għal kull bidla, għal kull impenn, iżda l-pjanijiet huma xi ħaġa pjuttost għalja. U f’talba tal-ġibda ngħidu, “Jekk jogħġbok agħtini l-pjanijiet.” Ir-robot jibda. U tibgħat kummenti jew ehmeż il-pjanijiet kollha li huma mistennija mill-bidliet tiegħek.

Pjan huwa pjuttost ħaġa għalja. Huwa jieħu ż-żmien għax Terraform imur għand Amazon u jistaqsi, “Din l-istanza għadha teżisti? Din l-awtoskala għandha eżattament l-istess parametri?” U sabiex tħaffef dan, tista 'tuża parametru bħal refresh=false. Dan ifisser li Terraform se tniżżel l-istat minn S3. U se jemmen li l-istat se jaqbel eżattament ma 'dak li hemm fl-Amazon.

Pjan Terraform bħal dan imur ħafna aktar malajr, iżda l-istat irid jikkorrispondi mal-infrastruttura tiegħek, jiġifieri x'imkien, f'xi żmien irid jibda l-aġġornament tat-Terraform. L-aġġornament ta' Terraform jagħmel eżattament dan: l-istat jaqbel ma' dak li hemm fl-infrastruttura attwali.

U rridu nitkellmu dwar is-sigurtà. Dan huwa fejn kellna nibdew. Fejn inti tmexxi Terraform u Terraform timxi fuq l-infrastruttura tiegħek hemm vulnerabbiltà. Jiġifieri, inti essenzjalment tesegwixxi l-kodiċi. U jekk it-talba tal-ġibda fiha xi tip ta 'kodiċi malizzjuż, allura tista' tiġi esegwita fuq infrastruttura li għandha aċċess wisq. Allura oqgħod attent fejn tmexxi l-pjan Terraform.

Disinji f'Terraform biex jiġġieldu l-kaos u r-rutina manwali. Maxim Kostrikin (Ixtens)

Il-ħaġa li jmiss li nixtieq nitkellem dwarha hija l-ittestjar tad-dejta tal-utent.

X'inhi d-data tal-utent? Fl-Amazon, meta noħolqu istanza, nistgħu nibagħtu ċerta ittra bl-istanza - meta data. Meta tibda l-istanza, normalment cloud init ikun dejjem preżenti f'dawn l-istanzi. Cloud init jaqra din l-ittra u jgħid: "OK, illum jien il-load balancer." U skond dawn il-patti huwa jwettaq xi azzjonijiet.

Disinji f'Terraform biex jiġġieldu l-kaos u r-rutina manwali. Maxim Kostrikin (Ixtens)

Iżda, sfortunatament, meta nagħmlu pjan Terraform u Terraform japplikaw, id-data tal-utent tidher bħal din it-tip ta 'faqqiegħ ta' numri. Jiġifieri sempliċement jibgħatlek il-hash. U kull ma tista 'tħares lejh fil-pjan huwa jekk hux se jkun hemm xi bidliet jew jekk il-hash hux se jibqa' l-istess.

U jekk ma tagħtix attenzjoni għal dan, allura xi fajl ta 'test miksur jista' jispiċċa fuq Amazon, fuq l-infrastruttura reali.

Disinji f'Terraform biex jiġġieldu l-kaos u r-rutina manwali. Maxim Kostrikin (Ixtens)

Inkella, meta tesegwixxi, tista 'tispeċifika mhux l-infrastruttura kollha, iżda biss il-mudell. U fil-kodiċi għid: "Jekk jogħġbok uri dan il-mudell fuq l-iskrin tiegħi." U bħala riżultat, tista 'tikseb stampa ta' kif se tidher id-dejta tiegħek fuq Amazon.

Disinji f'Terraform biex jiġġieldu l-kaos u r-rutina manwali. Maxim Kostrikin (Ixtens)

Għażla oħra hija li tuża modulu biex tiġġenera data tal-utent. Inti ser tapplika dan il-modulu. Inti tirċievi l-fajl fuq disk. Qabbelha ma' dik ta' referenza. U għalhekk, jekk xi raġel jiddeċiedi li jikkoreġi d-dejta tal-utent ftit, allura t-testijiet tiegħek jgħidu: "OK, hemm xi bidliet hawn u hemm - dan huwa normali."

Disinji f'Terraform biex jiġġieldu l-kaos u r-rutina manwali. Maxim Kostrikin (Ixtens)

Il-ħaġa li jmiss li nixtieq nitkellem dwarha hija Automate Terraform apply.

Naturalment, huwa pjuttost tal-biża li tagħmel Terraform tapplika fil-mod awtomatiku, għax min jaf x'bidliet waslu hemm u kemm jistgħu jkunu distruttivi għall-infrastruttura tal-ħajja.

Għal ambjent tat-test, dan huwa kollu normali. Jiġifieri, xogħol li joħloq ambjent tat-test huwa dak li għandhom bżonn l-iżviluppaturi kollha. U espressjoni bħal "kollox ħadem għalija" mhix meme umoristiċi, iżda prova li persuna tħawwad, għollet munzell, u għamlet xi testijiet fuq din il-munzell. U żgura li kollox kien tajjeb hemmhekk u qal: "Tajjeb, il-kodiċi li qed nirrilaxxa ġie ttestjat."

Fil-produzzjoni, sandbox u ambjenti oħra li huma aktar kritiċi għan-negozju, tista 'tuża parzjalment xi riżorsi b'mod pjuttost sigur minħabba li ma tirriżulta f'xi ħadd li jmut. Dawn huma: gruppi autoscale, gruppi ta 'sigurtà, rwoli, route53, u l-lista hemm tista' tkun pjuttost kbira. Imma żomm għajnejk fuq dak li qed jiġri, aqra r-rapporti tal-applikazzjoni awtomatizzati.

Fejn ikun perikoluż jew tal-biża' li tapplika, pereżempju, jekk dawn huma xi riżorsi persistenti minn database, imbagħad tirċievi rapporti li hemm bidliet mhux applikati f'xi biċċa mill-infrastruttura. U l-inġinier, taħt superviżjoni, jibda l-impjiegi biex japplika jew jagħmel dan mill-console tiegħu.

Amazon għandha tali ħaġa bħala Terminate protezzjoni. U jista 'jipproteġi f'xi każijiet minn bidliet li mhumiex meħtieġa għalik. Jiġifieri, Terraform mar Amazon u qal: "Għandi bżonn noqtol din l-istanza biex nagħmel ieħor." U Amazon tgħid: “Skużani, mhux illum. Għandna Terminate protezzjoni."

Disinji f'Terraform biex jiġġieldu l-kaos u r-rutina manwali. Maxim Kostrikin (Ixtens)

U ċ-ċirasa fuq il-kejk hija l-ottimizzazzjoni tal-kodiċi. Meta naħdmu bil-kodiċi Terraform, irridu ngħaddu numru kbir ħafna ta 'parametri lill-modulu. Dawn huma l-parametri li huma meħtieġa sabiex jinħoloq xi tip ta’ riżorsa. U l-kodiċi jinbidel f'listi kbar ta 'parametri li jeħtieġ li jiġu mgħoddija minn modulu għal modulu, minn modulu għal modulu, speċjalment jekk il-moduli huma nested.

U huwa diffiċli ħafna biex taqra. Huwa diffiċli ħafna li tirrevedi dan. U ħafna drabi jirriżulta li xi parametri jgħaddu minn reviżjoni u mhumiex eżattament dak li huwa meħtieġ. U dan jiswa ħin u flus biex jiġi rranġat aktar tard.

Disinji f'Terraform biex jiġġieldu l-kaos u r-rutina manwali. Maxim Kostrikin (Ixtens)

Għalhekk, nissuġġerixxi li tuża tali ħaġa bħala parametru kumpless li jinkludi ċerta siġra ta 'valuri. Jiġifieri, għandek bżonn xi tip ta 'folder fejn għandek il-valuri kollha li tixtieq li jkollok f'xi ambjent.

Disinji f'Terraform biex jiġġieldu l-kaos u r-rutina manwali. Maxim Kostrikin (Ixtens)

U billi ssejjaħ dan il-modulu, tista 'tikseb siġra li hija ġġenerata f'modulu komuni wieħed, jiġifieri, f'modulu komuni li jaħdem l-istess għall-infrastruttura kollha.

F'dan il-modulu tista 'tagħmel xi kalkoli billi tuża karatteristika reċenti bħal din f'Terraform bħala nies tal-lokal. U mbagħad, bi output wieħed, agħti xi parametru kumpless, li jista 'jinkludi array hashes, eċċ.

Disinji f'Terraform biex jiġġieldu l-kaos u r-rutina manwali. Maxim Kostrikin (Ixtens)

Dan huwa fejn spiċċajt l-aqwa sejbiet kollha. U nixtieq nirrakkonta storja dwar Columbus. Meta kien qed ifittex il-flus għall-ispedizzjoni tiegħu biex jiskopri l-Indja (kif ħaseb dak iż-żmien), ħadd ma emmenu u ħasbu li kien impossibbli. Imbagħad qal: “Aċċerta ruħek li l-bajda ma taqax.” Il-bankiera kollha, nies sinjuri ħafna u probabbilment intelliġenti, ippruvaw b'xi mod ipoġġu l-bajda, u baqgħet nieżla. Imbagħad Columbus ħa l-bajda u għafasha ftit. Il-qoxra tgħaffeġ u l-bajda baqgħet bla tiċċaqlaq. Huma qalu, "Oh, faċli wisq!" U Columbus wieġeb: “Iva, sempliċi wisq. U meta niftaħ l-Indja, kulħadd se juża din ir-rotta kummerċjali."

U dak li għadni kif għedtlek huwa probabbilment affarijiet pjuttost sempliċi u trivjali. U meta titgħallem dwarhom u tibda tużahom, ikun fl-ordni tal-affarijiet. Mela ħu vantaġġ. U jekk dawn huma affarijiet kompletament normali għalik, allura għallinqas tkun taf kif tpoġġi l-bajda sabiex ma taqax.

Disinji f'Terraform biex jiġġieldu l-kaos u r-rutina manwali. Maxim Kostrikin (Ixtens)

Ħejna sommarju:

  • Ipprova tevita snowflakes. U l-inqas snowflakes, inqas riżorsi ser ikollok bżonn tagħmel xi tibdil fl-infrastruttura kbira tiegħek.
  • Bidliet kostanti. Jiġifieri, meta jseħħu xi bidliet fil-kodiċi, trid iġġib l-infrastruttura tiegħek f'konformità ma 'dawn il-bidliet malajr kemm jista' jkun. M'għandux ikun hemm sitwazzjoni fejn xi ħadd jiġi biex iħares lejn Elasticsearch xahrejn jew tlieta wara, jagħmel pjan Terraform, u hemm mazz ta 'bidliet li ma stennax. U jieħu ħafna ħin biex ipoġġi kollox lura fl-ordni.
  • Testijiet u awtomazzjoni. Aktar ma l-kodiċi tiegħek ikun kopert b'testijiet u karatteristiċi, aktar ikollok kunfidenza li qed tagħmel kollox b'mod korrett. U l-kunsinna awtomatika se żżid il-kunfidenza tiegħek ħafna drabi.
  • Il-kodiċi għall-ambjenti tat-test u tal-produzzjoni għandu jkun kważi l-istess. Prattikament, għax il-produzzjoni għadha ftit differenti u xorta se jkun hemm xi sfumaturi li jmorru lil hinn mill-ambjent tat-test. Iżda madankollu, plus jew minus, dan jista 'jiġi żgurat.
  • U jekk għandek ħafna kodiċi Terraform u tieħu ħafna ħin biex iżżomm dan il-kodiċi aġġornat, allura qatt ma jkun tard wisq biex tirrefactor u tikseb f'forma tajba.

Disinji f'Terraform biex jiġġieldu l-kaos u r-rutina manwali. Maxim Kostrikin (Ixtens)

  • Infrastruttura immutabbli. Kunsinna tal-AMI skont l-iskeda.
  • Struttura għal route53 meta jkollok ħafna entrati u trid li jkunu f'ordni konsistenti.
  • Il-ġlieda kontra l-limiti tar-rata tal-API. Dan huwa meta Amazon tgħid, "Dak hu, ma nistax naċċetta aktar talba, jekk jogħġbok stenna." U nofs l-uffiċċju qed jistenna sakemm ikun jista’ jniedi l-infrastruttura tiegħu.
  • Każijiet tal-post. Amazon mhix avveniment irħis u spots jippermettulek tiffranka pjuttost ħafna. U hemm tista’ tgħid rapport sħiħ dwarha.
  • Sigurtà u rwoli IAM.
  • Fittex għal riżorsi mitlufa, meta jkollok każijiet ta 'oriġini mhux magħrufa fl-Amazone, jieklu l-flus. Anki jekk l-istanzi jiswew $ 100-150 fix-xahar, dan huwa aktar minn $ 1 fis-sena. Is-sejba ta 'riżorsi bħal dawn huwa negozju profittabbli.
  • U każijiet riservati.

Disinji f'Terraform biex jiġġieldu l-kaos u r-rutina manwali. Maxim Kostrikin (Ixtens)

Dak kollu għalija. Terraform huwa jibred ħafna, tużah. Grazzi!

mistoqsijiet

Grazzi tar-rapport! Il-fajl tal-istat tiegħek jinsab f'S3, imma kif issolvi l-problema li bosta nies jistgħu jieħdu dan il-fajl tal-istat u jippruvaw jespandu?

L-ewwelnett, m'għandniex għaġla. It-tieni nett, hemm bnadar, li fihom nirrapportaw li qed naħdmu fuq xi biċċa kodiċi. Jiġifieri, minkejja l-fatt li l-infrastruttura hija kbira ħafna, dan ma jfissirx li xi ħadd qed juża xi ħaġa kontinwament. U meta kien hemm fażi attiva, din kienet problema; ħżinna fajls tal-istat f'Git. Dan kien importanti, inkella xi ħadd jagħmel fajl tal-istat, u kellna npoġġuhom flimkien manwalment sabiex kollox ikompli. Issa m'hemm l-ebda problema bħal din. B'mod ġenerali, Terraform solviet din il-problema. U jekk xi ħaġa qed tinbidel kontinwament, allura tista 'tuża serraturi, li jipprevjenu dak li għidt.

Qed tuża sors miftuħ jew intrapriża?

L-ebda intrapriża, jiġifieri dak kollu li tista 'tmur u tniżżel b'xejn.

Jisimni Stanislav. Ridt nagħmel żieda żgħira. Tkellimt dwar karatteristika tal-Amazon li tippermettilek li tagħmel istanza ma tistax tinqatel. Dan huwa wkoll f'Terraform innifsu; fil-blokk Life Second tista' tispeċifika projbizzjoni fuq bidliet jew projbizzjoni fuq il-qerda.

Iż-żmien kien limitat. Punt tajjeb.

Ridt ukoll nistaqsi żewġ affarijiet. L-ewwelnett, tkellimt dwar l-ittestjar. Użajt xi għodda tal-ittestjar? Smajt dwar il-plugin Test Kitchen. Forsi hemm xi ħaġa aktar. U nixtieq ukoll nistaqsi dwar il-Valuri Lokali. Kif huma fundamentalment differenti minn Varjabbli ta' Input? U għaliex ma nistax niparametrizza xi ħaġa biss permezz tal-Valuri Lokali? Ippruvajt nifhem dan is-suġġett, imma b'xi mod ma stajtx nifhem jien.

Nistgħu nitkellmu f'aktar dettall barra din il-kamra. L-għodod tal-ittestjar tagħna huma kompletament magħmula minnha stess. M'hemm xejn hemm x'jittestja. B'mod ġenerali, hemm għażliet meta testijiet awtomatizzati jtellgħu l-infrastruttura x'imkien, iċċekkja li hija OK, u mbagħad jeqirdu kollox b'rapport li l-infrastruttura tiegħek għadha f'forma tajba. M'għandniex dan għaliex il-munzelli tat-test jitmexxew kuljum. U dan huwa biżżejjed. U jekk xi ħaġa tibda tkisser, tibda tkisser mingħajr ma niċċekkjawha x'imkien ieħor.

Rigward il-Valuri Lokali, ejja nkomplu l-konversazzjoni barra l-kamra.

Bongu! Grazzi tar-rapport! Informattiv ħafna. Inti għidt li għandek ħafna mill-istess tip ta 'kodiċi biex tiddeskrivi l-infrastruttura. Ksibt li tiġġenera dan il-kodiċi?

Mistoqsija kbira, grazzi! Il-punt hu li meta nużaw l-infrastruttura bħala kodiċi, nassumu li nħarsu lejn il-kodiċi u nifhmu liema infrastruttura tinsab wara dak il-kodiċi. Jekk jiġi ġġenerat kodiċi, allura għandna bżonn nimmaġinaw liema kodiċi se jiġi ġġenerat sabiex nifhmu x'tip ta 'infrastruttura se jkun hemm. Jew niġġeneraw kodiċi, nimpenjawha, u essenzjalment jiġri l-istess ħaġa. Mela segwejna t-triq li ktibna, ksibna. Ġeneraturi Plus dehru ftit aktar tard meta bdejna nagħmluhom. U kien diġà tard wisq biex jinbidel.

Smajt xi ħaġa dwar jsonnet?

No

Ara, din hija ħaġa sabiħa ħafna. Nara każ speċifiku fejn tista' tapplikah u tiġġenera struttura tad-dejta.

Il-ġeneraturi huma tajbin meta jkollokhom, bħal fil-ċajta dwar magna tal-leħja. Jiġifieri l-ewwel darba l-wiċċ huwa differenti, imma mbagħad kulħadd ikollu l-istess wiċċ. Il-ġeneraturi jaħdmu tajjeb ħafna. Iżda, sfortunatament, uċuħ tagħna huma kemmxejn differenti. Din hija problema.

Ħares biss. Grazzi!

Jisimni Maxim, jien minn Sberbank. Tkellimt ftit dwar kif kont qed tipprova ġġib Terraform għall-ekwivalenti ta 'lingwa ta' programmar. Mhux aktar faċli li tuża Ansible?

Dawn huma affarijiet differenti ħafna. Tista 'toħloq riżorsi f'Ansible, u Puppet tista' toħloq riżorsi fl-Amazon. Iżda Terraform huwa straight up sharpened.

Għandek biss Amazon?

Mhux li għandna biss Amazon. Kważi għandna biss Amazon. Iżda l-karatteristika ewlenija hija li Terraform tiftakar. F'Ansible, jekk tgħid: "Agħtini 5 każijiet," allura tqajjem, u mbagħad tgħid: "U issa għandi bżonn 3." U Terraform jgħid: "Tajjeb, noqtol 2," u Ansible jgħid: "Tajjeb, hawn 3 għalik." Total 8.

Bongu! Grazzi tar-rapport tiegħek! Kien interessanti ħafna li nisimgħu dwar Terraform. Nixtieq immedjatament nagħmel kumment żgħir dwar il-fatt li Terraform għad m'għandux rilaxx stabbli, għalhekk ittratta lil Terraform b'kawtela kbira.

Mgħarfa tajba għall-pranzu. Jiġifieri, jekk għandek bżonn soluzzjoni, imbagħad xi kultant tpoġġi dak li huwa instabbli, eċċ., iżda jaħdem u għenuna.

Il-mistoqsija hija din. Tuża backend Remote, tuża S 3. Għaliex ma tużax il-backend uffiċjali?

Uffiċjali?

Sħaba Terraform.

Meta deher?

Madwar 4 xhur ilu.

Kieku deher 4 snin ilu, allura probabbilment kont inwieġeb il-mistoqsija tiegħek.

Diġà hemm funzjoni u serraturi inkorporati, u tista 'taħżen fajl tal-istat. Ipprova. Imma jien lanqas ittestjajtha.

Qed nivvjaġġaw fuq ferrovija kbira li miexja b’veloċità għolja. U ma tistax tieħu biss ftit karozzi u tarmihom.

Tkellimt dwar snowflakes, għaliex ma użajtx fergħa? Għaliex ma ħadmitx hekk?

L-approċċ tagħna huwa li l-infrastruttura kollha tkun f'repożitorju wieħed. Terraform, Puppet, l-iskripts kollha li huma b'xi mod relatati ma 'dan, huma kollha f'repożitorju wieħed. Dan il-mod nistgħu niżguraw li l-bidliet inkrementali jiġu ttestjati wieħed wara l-ieħor. Kieku kien mazz ta 'fergħat, allura proġett bħal dan ikun kważi impossibbli li jinżamm. Jgħaddu sitt xhur, u tant jiddiverġu li hija biss xi tip ta’ kastig. Dan huwa dak li ridt naħrab minn qabel ir-refactoring.

Allura ma taħdimx?

Dan ma jaħdimx xejn.

Fil-fergħa nqatgħet is-slajd tal-folder. Jiġifieri, jekk tagħmel dan għal kull munzell tat-test, pereżempju, it-tim A għandu l-folder tiegħu stess, it-tim B għandu l-folder tiegħu stess, allura dan ukoll ma jaħdimx. Ħloqna kodiċi unifikat tal-ambjent tat-test li kien flessibbli biżżejjed biex jixraq lil kulħadd. Jiġifieri servejna kodiċi wieħed.

Bongu! Jisimni Yura! Grazzi tar-rapport! Mistoqsija dwar il-moduli. Tgħid li qed tuża moduli. Kif issolvi l-kwistjoni jekk saru bidliet f'modulu wieħed li mhumiex kompatibbli mal-bidla ta' persuna oħra? Int b'xi mod verżjonijiet tal-moduli jew qed tipprova ġġib wunderwaffle biex tissodisfa żewġ rekwiżiti?

Din hija problema kbira tal-munzell tas-silġ. Dan huwa dak li nbatu minnu meta xi bidla innokwa tista’ tkisser xi parti mill-infrastruttura. U dan se jkun notevoli biss wara xi żmien twil.

Jiġifieri għadha ma ġietx solvuta?

Inti tagħmel moduli universali. Evita snowflakes. U kollox se jaħdem. It-tieni nofs tar-rapport huwa dwar kif dan jiġi evitat.

Bongu! Grazzi tar-rapport! Nixtieq niċċara. Wara l-kwinti kien hemm munzell kbir li ġejt għalih. Kif huma integrati d-distribuzzjoni tal-Puppet u r-rwoli?

Data tal-utent.

Jiġifieri, inti biss bżiq il-fajl u b'xi mod tesegwixxih?

Id-dejta tal-utent hija nota, jiġifieri meta nagħmlu klonu tal-immaġni, Daemon jqum hemm u, jipprova jifhem min hu, jaqra n-nota li huwa load balancer.

Jiġifieri, dan huwa xi tip ta’ proċess separat li jingħata?

Aħna ma ivvintawha. Aħna nużawha.

Bongu! Għandi biss mistoqsija dwar Utent - data. Inti għidt li hemm problemi hemm, li xi ħadd jista 'jibgħat xi ħaġa fil-post ħażin. Hemm xi mod kif taħżen id-dejta tal-utent fl-istess Git, sabiex ikun dejjem ċar għal xiex tirreferi d-dejta tal-utent?

Aħna niġġeneraw dejta tal-Utent minn mudell. Jiġifieri, ċertu numru ta 'varjabbli huma użati hemmhekk. U Terraform jiġġenera r-riżultat finali. Għalhekk, ma tistax sempliċement tħares lejn il-mudell u tgħid x'se jiġri, minħabba li l-problemi kollha huma relatati mal-fatt li l-iżviluppatur jaħseb li qed jgħaddi string f'din il-varjabbli, iżda hemm firxa użata. U hu - bam u jien - hekk u hekk, hekk u hekk, il-linja li jmiss, u kollox kissru. Jekk din hija riżors ġdid u persuna tiġborha u tara li xi ħaġa mhix qed taħdem, allura tissolva malajr. U jekk dan il-grupp autoscale jiġi aġġornat, allura f'xi punt l-istanzi fil-grupp autoscale jibdew jiġu sostitwiti. U bang, xi ħaġa ma taħdimx. Twegga.

Jirriżulta li l-unika soluzzjoni hija li tittestja?

Iva, tara l-problema, inti żżid passi tat-test hemmhekk. Jiġifieri, l-output jista 'jiġi ttestjat ukoll. Forsi mhuwiex daqshekk konvenjenti, iżda tista 'wkoll tpoġġi xi marki - iċċekkja li d-data tal-Utent hija mmarkata hawn.

Jisimni Timur. Huwa tajjeb ħafna li hemm rapporti dwar kif torganizza sewwa Terraform.

Lanqas bdejt.

Naħseb li forsi fil-konferenza li jmiss se jkun hemm. Għandi mistoqsija sempliċi. Għaliex qed tikkodifika l-valur f'modulu separat aktar milli tuża tfvars, jiġifieri għaliex modulu b'valuri huwa aħjar minn tfvars?

Jiġifieri, għandi nikteb hawn (slide: Production/environment/settings.tf): domain = varjabbli, domain vpcnetwork, varjabbli vpcnetwork u stvars - nista 'nikseb l-istess ħaġa?

Dak huwa eżattament dak li nagħmlu. Nirreferu għall-modulu tas-sors tal-issettjar, pereżempju.

Essenzjalment, dan huwa tfvars bħal dawn. Tfvars huwa konvenjenti ħafna f'ambjent ta 'ttestjar. Għandi tfvars għal każijiet kbar, għal dawk żgħar. U threw fajl wieħed fil-folder. U sibt dak li ridt. Meta nkunu qed naqtgħu l-infrastruttura, irridu li jkun possibbli li nħarsu lejn u immedjatament nifhmu kollox. U għalhekk jirriżulta li għandek bżonn tħares hawn, imbagħad tħares lejn tfvars.

Huwa possibbli li jkollok kollox f'post wieħed?

Iva, tfvars huwa meta jkollok kodiċi wieħed. U huwa użat f'diversi postijiet differenti bi sfumaturi differenti. Imbagħad int titfa tfvars u tieħu sfumaturi tiegħek. U aħna infrastruttura bħala kodiċi fil-forma l-aktar pura tagħha. Fittixt u fhimt.

Bongu! Iltqajt ma' sitwazzjonijiet fejn il-fornitur tas-sħab jinterferixxi ma' dak li għamilt Terraform? Ejja ngħidu li neditjaw il-metadata. Hemm ċwievet ssh. U Google kontinwament ipoġġi l-metadata tagħha u ċ-ċwievet tagħha hemmhekk. U Terraform dejjem jikteb li għandu bidliet. Wara kull ġirja, anke jekk ma jinbidel xejn, dejjem jgħid li se jaġġorna dan il-field issa.

Biċ-ċwievet, imma iva, parti mill-infrastruttura hija affettwata minn din il-ħaġa, jiġifieri Terraform ma tista 'tbiddel xejn. Ma nistgħu nbiddlu xejn b’idejna lanqas. Aħna ser ngħixu magħha għalissa.

Jiġifieri ltqajt ma’ xi ħaġa bħal din, imma ma ħarġet b’xejn, kif jagħmel u jagħmel hu stess?

Sfortunatament iva.

Bongu! Jisimni Starkov Stanislav. Posta. ru Grupp. Kif issolvi l-problema li tiġġenera tag fuq..., kif tgħaddiha ġewwa? Kif nifhem jien, permezz Utent - data biex tispeċifika l-isem ospitanti, issettja Puppet fuq? U t-tieni parti tal-mistoqsija. Kif issolvi din il-kwistjoni f'SG, jiġifieri meta tiġġenera SG, mijiet ta' każijiet tal-istess tip, x'inhu l-isem korrett għalihom?

Dawk l-istanzi li huma importanti ħafna għalina, insemmuhom mill-isbaħ. Dawk li mhumiex meħtieġa, hemm nota li dan huwa grupp autoscale. U fit-teorija tista 'tgħaqqadha u tikseb waħda ġdida.

Fir-rigward tal-problema bit-tikketta, m'hemm l-ebda problema bħal din, iżda hemm tali kompitu. U nużaw it-tikketti ħafna, ħafna, minħabba li l-infrastruttura hija kbira u għalja. U rridu nħarsu lejn fejn sejrin il-flus, għalhekk it-tikketti jippermettulna nkissru dak li mar fejn. U, għalhekk, it-tfittxija għal xi ħaġa li tfisser ħafna flus jintefqu hawn.

X'iktar kienet il-mistoqsija dwar?

Meta SG joħloq mijiet ta' każijiet, jeħtieġ li jiġu distinti b'xi mod?

Le, m'għandekx. Fuq kull istanza hemm aġent li jirrapporta li għandi problema. Jekk aġent jirrapporta, allura l-aġent ikun jaf dwaru u, għall-inqas, l-indirizz IP tiegħu jeżisti. Inti diġà tista 'taħrab. It-tieni nett, nużaw Consul for Discovery, fejn Kubernetes mhuwiex. U Konslu juri wkoll l-indirizz IP tal-istanza.

Jiġifieri, qed tiffoka speċifikament fuq l-IP, u mhux fuq l-isem ospitanti?

Huwa impossibbli li wieħed jinnaviga bl-isem ospitanti, jiġifieri hemm ħafna minnhom. Hemm identifikaturi tal-istanzi - AE, eċċ. Tista' ssibha x'imkien, tista' tarmih fit-tfittxija.

Bongu! Irrealizzajt li Terraform hija ħaġa tajba, imfassla għas-sħab.

Mhux biss.

Din hija proprju l-mistoqsija li tinteressani. Jekk tiddeċiedi li tiċċaqlaq, ngħidu aħna, għal Bare Metal en masse bl-istanzi kollha tiegħek? Se jkun hemm xi problemi? Jew xorta se jkollok tuża prodotti oħra, pereżempju, l-istess Ansible li ssemma hawn?

Ansible huwa ftit dwar xi ħaġa oħra. Jiġifieri, Ansible diġà jaħdem meta l-istanza tkun bdiet. U Terraform jaħdem qabel ma tibda l-istanza. Qlib għal Bare Metal - Nru.

Mhux issa, imma n-negozju se jiġi u jgħid: "Ejja."

Naqleb għal sħaba oħra - iva, iżda hawn trick kemmxejn differenti. Ikollok bżonn tikteb kodiċi Terraform b'tali mod li tista 'taqleb għal xi sħaba oħra b'inqas sforz.

Inizjalment, il-kompitu ġie stabbilit li l-infrastruttura kollha tagħna kienet agnostika, jiġifieri kull sħaba għandha tkun adattata, iżda f'xi punt in-negozju ċeda u qal: "Tajjeb, fl-N snin li ġejjin ma mmorru mkien, nistgħu nużaw is-servizzi. mill-Amazon "

Terraform jippermettilek toħloq impjiegi Front-End, tikkonfigura PagerDuty, data doc, eċċ. Għandu ħafna dnub. Huwa jista 'prattikament jikkontrolla d-dinja kollha.

Grazzi tar-rapport! Ilni wkoll nuża Terraform għal 4 snin issa. Fl-istadju ta 'tranżizzjoni bla xkiel għal Terraform, għall-infrastruttura, għal deskrizzjoni dikjarattiva, konna ffaċċjati b'sitwazzjoni fejn xi ħadd kien qed jagħmel xi ħaġa bl-idejn, u int kont qed tipprova tagħmel pjan. U sibt xi tip ta 'żball hemmhekk. Kif tittratta problemi bħal dawn? Kif issib riżorsi mitlufa li ġew elenkati?

Prinċipalment b'idejna u għajnejna, jekk naraw xi ħaġa stramba fir-rapport, allura nanalizzaw dak li qed jiġri hemmhekk, jew sempliċiment noqtlu. B'mod ġenerali, it-talbiet tal-ġibda huma ħaġa komuni.

Jekk ikun hemm żball, tirritorna lura? Ippruvajt tagħmel dan?

Le, din hija deċiżjoni ta’ persuna fil-mument meta tara problema.

Sors: www.habr.com