U matalida kaabayaasha qaab kood ah oo qaab qoraal ah oo lagu celin karo waa habka ugu fudud ee hababka aan u baahnayn ku-jiidashada jiirarka. Dhaqankani wuxuu leeyahay magac -
Isbarbardhigga khibradda Terraform iyo CloudFormation
Ka hor inta aadan iman
Terraform Naxdin
Software-ka beta
Terraform xitaa ma sii dayn nooca 1.0 weli, taas oo ah sabab wanaagsan oo aan loo isticmaalin. Wax badan baa is beddelay tan iyo markii aan markii ugu horreysay isku dayay naftayda, laakiin waagaas terraform apply
badiyaa burburay ka dib dhowr cusbooneysiin ama si fudud ka dib dhowr sano oo la isticmaalay. Waxaan dhihi lahaa "wax walba hadda way ka duwan yihiin," laakiin ... taasi waa waxa qof walba u muuqda inuu yiraahdo, maya? Waxaa jira isbeddelo aan ku habboonayn noocyadii hore, inkastoo ay ku habboon yihiin, xitaa waxay dareemeysaa sida syntax iyo abstracts ee dukaamada kheyraadka ay hadda yihiin waxa aan u baahanahay. Qalabku wuxuu u muuqdaa mid runtii ka fiicnaaday, laakiin... :-0
Dhanka kale, AWS waxay qabatay shaqo wanaagsan oo ilaalinaysa ku-habboonaanta gadaal. Tani waxay u badan tahay sababtoo ah adeegyadooda inta badan si fiican ayaa loogu tijaabiyay hay'adda ka dibna kaliya, dib loo magacaabay, ayaa la daabacay. Markaa "aad bay u dadaaleen" waa wax la dhayalsan karo. Joogteynta la jaanqaadka dambe ee API-yada ee nidaamka sida kala duwan oo u adag sida AWS waa mid aad u adag. Qof kasta oo ku qasbanaaday inuu ilaaliyo API-yada dadweynaha ee loo isticmaalo sida ballaaran sida ay yihiin waa inuu fahmo sida ay u adag tahay in sidaas la sameeyo sannado badan. Laakiin habdhaqanka CloudFormation, xusuustayda, waligeed ismay beddelin sannadihii la soo dhaafay.
Lugta la kulan...waa xabbad
Inta aan ogahay, tirtir kheyraadka shisheeye Xirmada CloudFormation ee kaydkaaga CF suurtagal maaha. Isla sidaas oo kale waa run marka loo eego Terraform. Waxay kuu ogolaanaysaa inaad soo dejiso agabka jira xidhmadaada. Shaqada waxaa la dhihi karaa waa mid cajiib ah, laakiin awood weyn ayaa timaada mas'uuliyad weyn. Waxa aad u baahan tahay oo kaliya in aad kayd ku darto kaydka, iyo marka aad ku shaqaynayso xidhmadaada, ma tirtiri kartid ama ma beddeli kartid agabkan. Maalin ayaa dib u dhacday. Maalin maalmaha ka mid ah Twitch, qof ayaa si lama filaan ah u soo dhoofiyay koox kale oo AWS ah kooxda amniga ee Terraform iyaga oo aan ilaa hadda wax xumaan ah samayn. Waxaan galay dhowr amar oo... kooxda amniga (oo ay la socdaan taraafikada soo galaya) waa la waayay.
Terraform weyn
Ka soo kabashada gobolada aan dhamaystirnayn
Mararka qaarkood CloudFormation waxay ku guuldareysataa inay si buuxda uga gudubto gobol una gudubto mid kale. Isla markaana, wuxuu isku dayi doonaa inuu ku laabto kii hore. Waa wax laga xumaado in tani aysan had iyo jeer suurtagal ahayn. Waxay noqon kartaa wax aad looga baqo in la saxo wixii dhacay ka dib - marnaba ma ogaan kartid in CloudFormation ay ku farxi doonto in la jabsado - xitaa si loo hagaajiyo. Haddii uu awoodi doono inuu ku laabto xaaladdii hore iyo haddii kale, isagu ma garanayo runtii sida loo go'aamiyo oo, asal ahaan, wuxuu ku dhegan yahay saacado sugaya mucjiso.
Terraform, dhinaca kale, waxay u janjeertaa inay ka soo kabsato isbeddellada guuldarraystay si aad u qurux badan waxayna bixisaa qalab horumarsan.
Isbeddel cad oo lagu sameeyo gobolka dukumeenti
"Hagaag, dheellitiriyaha culeyska, waad isbedeleysaa. Laakiin sidee?"
-injineer walaacsan, oo diyaar u ah inuu riixo badhanka "aqbal".
Mararka qaarkood waxaan u baahanahay inaan sameeyo wax-is-daba-marin leh miisaan-hayaha culeyska ee xirmada CloudFormation, sida ku darista nambarka dekedda ama beddelidda kooxda amniga. Bandhigyada CloudFormation ayaa si liidata isu beddelaya. Aniga, biinanka iyo cirbadaha, laba jeer hubi faylka yaml toban jeer si aan u hubiyo in aanan tirtirin wax lagama maarmaan ah oo aanan ku darin wax aan loo baahnayn.
Terraform aad ayuu uga hufan yahay arrintan. Mararka qaarkood xitaa aad ayuu u hufan yahay (akhri: xanaaqsan). Nasiib wanaag, nooca ugu dambeeyay waxaa ku jira soo bandhigida isbeddellada oo la hagaajiyay si aad hadda u arki karto sida saxda ah waxa isbeddelaya.
Fududeyn
Dib u qor software.
Si toos ah loo dhigo, sifada ugu muhiimsan ee software-ka muddada dheer waa awoodda la qabsiga isbeddelka. Dib u qor barnaamij kasta Inta badan waxaan sameeyay khaladaad anigoo qaatay adeeg “fudud” ah, ka dibna bilaabay inaan wax walba ku xidho hal CloudFormation ama Terraform. Dabcan, bilo ka dib waxaa la ogaaday in aan fahmay wax kasta oo khaldan, adeegguna dhab ahaantii ma fududa! Oo hadda waxaan u baahanahay inaan si uun u jebiyo xidhmo weyn oo qaybo yaryar ah. Markaad la shaqeyso CloudFormation, tan waxaa la samayn karaa oo keliya marka ugu horraysa dib-u-samaynta kaydka jira, aniguna tan kuma samaynayo xogtayda. Terraform, dhinaca kale, waxay suurtagelisay in la kala saaro xidhmada oo loo kala qaybiyo qaybo yaryar oo la fahmi karo.
Modules ku jira git
Wadaagista summada Terraform ee xidhmooyin badan ayaa aad uga fudud wadaagga koodka CloudFormation. Terraform-ka, waxaad ku dhejin kartaa koodkaaga kaydka git oo waxaad geli kartaa adigoo isticmaalaya kontoroolka nooca semantic. Qof kasta oo gelaya kaydkan ayaa dib u isticmaali kara summada la wadaago. CloudFormation u dhiganta waa S3, laakiin ma laha faa'iidooyin isku mid ah, mana jirto sabab aan uga tagno git-ka oo aan u doorbidno S3 gabi ahaanba.
Ururku wuu koray iyo awoodda wadaagista xidhmooyinka caadiga ah waxay gaadhay heer halis ah. Terraform ayaa tan ka dhigaysa mid fudud oo dabiici ah, halka CloudFormation ay kaa dhigi doonto inaad ka boodo hoops ka hor inta aanad helin wax sidan oo kale ah oo shaqeynaya.
Hawlgallada sida koodka
"Aan qorno oo ok."
-Injineer 3 sano ka hor inta uusan abuurin baaskiilka Terraform.
Marka ay timaado horumarinta software, Go ama barnaamijka Java kaliya maaha code.
Cod sida Code
Waxa kale oo jira kaabayaasha ay ku shaqeeyaan.
Kaabayaasha sida Xeer
Laakin xaggee ka timid? Sidee loola socon karaa? Halkee buu ku nool yahay koodkaagu? Horumariyayaashu miyay u baahan yihiin ogolaanshaha gelitaanka?
Hawlgallada sida Code
Ahaanshaha horumariye kombuyuutar macnaheedu maaha oo kaliya in kood la qoro.
AWS maaha ka kaliya: waxay u badan tahay inaad isticmaasho bixiyeyaasha kale. SignalFx, PagerDuty ama Github. Waxaa laga yaabaa inaad haysato server-ka Jenkins gudaha CI/CD ama dashboard-ka Grafana ee la socodka. Infra as Code waxaa loo doortaa sababo kala duwan, mid walbana si isku mid ah ayuu muhiim ugu yahay wax kasta oo la xiriira software.
Markii aan ka shaqeeyay Twitch, waxaan dardargelinay adeegyada gudaha Amazon isku-dhafka iyo nidaamyada AWS. Waanu soo saarnay oo taageernay adeegyo yar-yar oo badan, anagoo kordhinay kharashaadka hawlgalka. Dooduhu waxay u dhaceen sidan.
- ЯNacalad, taasi waa tilmaamo badan oo lagu dhaafo hal adeeg oo yar yar. Waa inaan isticmaalo qashinkan si aan u abuuro akoon AWS (waxaan galnay 2 akoon adeeg yar), ka dibna kan loogu talagalay dejinta digniinaha, kan loogu talagalay kaydka koodka, iyo kan liiska iimaylka, ka dibna kan...
- Hogaamin: Aan qorno oo ok.
- Я: Hagaag, laakiin qoraalka laftiisa ayaa isbedeli doona. Waxaan u baahan doonaa qaab aan ku hubinno in dhammaan gizmo-yada Amazon-ku-dhisan ay yihiin kuwo casri ah.
- Hogaamin: Way fiicantahay. Oo waxaan u qori doonaa qoraal tan.
- Я: Wayn! Qoraalku wuxuu u badan yahay inuu weli u baahan yahay inuu dejiyo cabbirro. Miyuu aqbali doonaa iyaga?
- Hogaamin: halkuu tago ha qaato!
- Я: Geedi socodka ayaa laga yaabaa inuu is beddelo oo ku habboonaanshiyaha gadaal ayaa lumin doona. Nooc ka mid ah xakamaynta nooca semantiga ayaa loo baahan doonaa.
- Hogaamin: Fikir fiican!
- ЯQalabka waxaa lagu beddeli karaa gacanta, gudaha interface interface. Waxaan u baahan doonaa hab aan ku hubino oo aan ku hagaajino tan.
…3 sano kadib:
- Hogaamin: Oo waxaan helnay terraform.
Akhlaaqda sheekadu waa: xitaa haddii aad madaxa wax walba Amazon, waxaad weli isticmaalaysaa wax aan ka iman AWS, adeegyadanina waxay leeyihiin xaalad adeegsata luqadda habaynta si gobolkaas loogu sii wada shaqeeyo.
CloudFormation lambda vs git modules terraform
lambda waa xalka CloudFormation ee arrinta macquulka ah ee caadada u ah. Lambda waad awoodaa
Waxaan xasuustaa mar aan rabay inaan u abuuro daabulitaan kanary ah oo loogu talagalay deegaanka Elastic Beanstalk oo leh dheellitirka culeyska caadiga ah. Waxa ugu fudud ee la sameeyo waxay noqon doontaa in la sameeyo dib-u-dejin labaad oo loogu talagalay EB-ga ee ku xiga deegaanka wax-soo-saarka, iyada oo la qaadayo tallaabo dheeraad ah: isku darka kooxda geynta canary-ga ee is-xakamaynta iyo geynta LB ee deegaanka wax soo saarka. Oo tan iyo markii Terraform la isticmaalo
Waxay si fiican u ogaanaysaa qulqulka
Hubi in xaqiiqadu ay la mid tahay filashooyinka.
Terraform-ka waxaad haysataa qabsatooyin nololeed oo aad u horumarsan oo lagu ogaanayo qulqulka. Tusaale ahaan, waxaad gelisaa amarka
CDK iyo mustaqbalka CloudFormation
CloudFormation waa ay adagtahay in lagu maareeyo baaxad weyn, miisaan kaabayaal isdhaafsan. Qaar badan oo ka mid ah dhibaatooyinkan waa la aqoonsan yahay oo qalabku wuxuu u baahan yahay waxyaabo ay ka mid yihiin
Markaa in Terraform aanu niyad jabin
Tani waa "kaabayaasha koodka", ee maaha "qoraal ahaan".
Aragtidayda koowaad ee Terraform waxay ahayd mid xun. Waxaan filayaa in aanan fahmin habka loo wajahayo. Ku dhawaad dhammaan injineerada ayaa si aan ikhtiyaar ahayn u arka qaab qoraal ah oo u baahan in loo beddelo kaabayaasha la doonayo. SIDAAN HA U SAMEYN.
Xaqiiqada horumarinta software-ka wanaagsan waxay sidoo kale khuseysaa Terraform.
Waxaan arkay dhaqamo badan oo la qaatay si loo abuuro kood wanaagsan oo la iska indhatiray gudaha Terraform. Waxaad baranaysay sanado si aad u noqoto barnaamij-yaqaan wanaagsan. Ha ka tagin waayo-aragnimadan sababtoo ah waxaad la shaqaynaysaa Terraform. Xaqiiqada horumarinta software-ka wanaagsan waxay khuseysaa Terraform.
Sidee kood loo diiwaan gelin la'yahay?
Waxaan arkay xirmo badan oo Terraform ah oo aan haba yaraatee wax dukumeenti ah lahayn. Sidee ugu qori kartaa koodka boggaga - iyada oo aan haba yaraatee wax dukumeenti ah lahayn? Ku dar dukumeenti kuu sharaxaya code Terraform (xoojinta ereyga "code"), sababta qaybtani ay muhiim u tahay, iyo waxaad samaynayso.
Sideen u geyn karnaa adeegyada mar ahaan jiray hal shaqo oo weyn?
Waxaan arkay xirmooyin Terraform ah oo aad u adag oo loo soo bandhigay hal cutub. Waa maxay sababta aan u daabuli waynay habkan software? Waa maxay sababta aan u kala qaybinno hawlo waaweyn kuwo yaryar? Jawaabo isku mid ah ayaa khuseeya Terraform. Haddii modulekaagu aad u weyn yahay, waxaad u baahan tahay inaad u kala qaybiso qaybo yaryar.
Shirkaddaadu miyaanay isticmaalin maktabado?
Waxaan arkay sida injineerada, oo u miiqaya mashruuc cusub oo isticmaalaya Terraform, si doqonnimo ah u koobiyeeyay qaybo badan oo mashruucyo kale ah oo iyaga u gaar ah, ka dibna la tinkeed iyaga ilaa ay ka shaqo bilaabay. Ma sidan oo kale ugu shaqayn lahayd koodka "dagaalka" ee shirkaddaada? Ma isticmaalno maktabado kaliya. Haa,
Miyaanad isticmaalin PEP8 ama gofmt?
Luuqadaha badankoodu waxay leeyihiin nidaam qaabayneed oo la aqbalay. Python kani waa PEP8. In Go - gofmt. Terraform waxay leedahay u gaar ah: terraform fmt
. Ku raaxayso caafimaadkaaga!
Ma isticmaali doontaa React adigoon aqoon JavaScript?
Qaybaha Terraform-ka waxay fududayn karaan qayb ka mid ah kaabayaasha adag ee aad abuurto, laakiin tani macnaheedu maaha inaadan waxba ka baran karin. Ma doonaysaa inaad si sax ah u isticmaasho Terraform adoon fahmin agabka? Adigu waad xun tahay: wakhtigu wuu dhaafi doonaa, oo weligaa ma baran doontid Terraform.
Ma ku codaynaysaa hal-toon ama duritaanka ku-tiirsanaanta?
Ku-tiirsanaanta ku-tiirsanaanta waa hab-dhaqanka ugu wanaagsan ee la aqoonsan yahay ee horumarinta software-ka waxaana laga doorbidaa hal-toon. Sidee tani faa'iido ugu leedahay Terraform? Waxaan arkay qaybo Terraform ah oo ku xidhan gobolka fog. Halkii aad ka qori lahayd cutubyada soo celiya gobolka fog, qor cutubka qaada cabbirada. Ka dibna u gudbi xuduudahan moduleka.
Maktabadahaagu toban shay si fiican ma u qabtaan mise hal shay baa fiican?
Maktabadaha sida ugu fiican u shaqeeya waa kuwa diiradda saaraya hal hawl oo ay si fiican u qabtaan. Halkii aad qori lahayd qaybo waaweyn oo Terraform ah oo isku daya in ay wax walba hal mar sameeyaan, dhis qaybo ka mid ah kuwaas oo si fiican u qabta hal shay. Ka dibna iyaga isku dar sida loo baahdo.
Sidee ayaad isbeddel ugu samayn kartaa maktabadaha iyada oo aan la soconin gadaal?
Qaybta Terraform-ka caadiga ah, sida maktabadda caadiga ah, waxay u baahan tahay inay si uun ula xiriirto isbeddellada isticmaalayaasha iyada oo aan dib loo socon. Waa wax laga xumaado marka isbeddeladani ay ka dhacaan maktabadaha, waana wax laga xumaado marka isbeddelo aan dib-u-dhac lahayn oo ku habboon lagu sameeyo cutubyada Terraform. Waxaa lagu talinayaa in la isticmaalo git tags iyo semver marka la isticmaalayo Terraform modules.
Adeegga wax-soo-saarkaagu ma ku shaqeeyaa laptop-kaaga ama xarun xogeed?
Hashicorp waxay leedahay qalab sida
Miyaadan qorin imtixaanno?
Injineerada waxay aqoonsan yihiin in koodhka loo baahan yahay in la tijaabiyo, laakiin iyaga laftoodu inta badan waxay illoobaan tijaabinta marka ay la shaqeynayaan Terraform. Kaabayaasha dhaqaalaha, tani waxa ay ka buuxaan waqtiyo khiyaano ah. Taladaydu waa "in la tijaabiyo" ama "abuuro tusaale" xirmooyinka iyadoo la isticmaalayo qaybo si sax ah loogu diri karo baaritaanka inta lagu jiro CI/CD.
Terraform iyo adeegyadda yar yar
Nolosha iyo dhimashada shirkadaha yaryar waxay ku xiran tahay xawaaraha, hal-abuurka, iyo carqaladeynta xirmooyinka cusub ee adeegga yar yar.
Dhinaca xun ee ugu caansan ee la xidhiidha qaab-dhismeedka microservice, oo aan la tirtiri karin, waxay la xiriirtaa shaqada, ma aha koodhka. Haddii aad u maleyneyso in Terraform-ka uu yahay kaliya dariiqa otomaatigga ah ee kaliya dhinaca kaabayaasha dhismaha ee adeeg-yaraha, markaa waxaad ka maqan tahay faa'iidooyinka dhabta ah ee nidaamka. Hadda waa hore
Source: www.habr.com