Waxaa laga beddelay Terraform oo loo beddelay CloudFormation - oo waan ka qoomameeyay

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 - Kaabayaasha sida Xeer, oo ilaa hadda waxaa jira laba qalab oo caan ah oo lagu hirgeliyo, gaar ahaan AWS: Terraform и CloudFormation.

Waxaa laga beddelay Terraform oo loo beddelay CloudFormation - oo waan ka qoomameeyay
Isbarbardhigga khibradda Terraform iyo CloudFormation

Ka hor inta aadan iman dhifasho (isagu waa Amazon Jr.) Waan shaqeeyay hal bilow waxayna isticmaaleen Terraform muddo saddex sano ah. Meesha cusub, waxaan sidoo kale isticmaalay Terraform xooggeyga oo dhan, ka dibna shirkadu waxay riixday u gudubka wax kasta oo Amazon ah, oo ay ku jiraan CloudFormation. Waxaan si taxadar leh u horumariyay hababka ugu fiican ee labadaba, waxaanan u adeegsaday labada qalabba hawlo shaqo oo aad u adag, ururka oo dhan. Ka dib, ka dib markii aan si feker leh u miisaamay saamaynta ka haajiridda Terraform ilaa CloudFormation, waxaan ku qancay in Terraform ay u badan tahay doorashada ugu fiican ee ururka.

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.

Waxaa laga beddelay Terraform oo loo beddelay CloudFormation - oo waan ka qoomameeyay
Cod sida Code

Waxa kale oo jira kaabayaasha ay ku shaqeeyaan.

Waxaa laga beddelay Terraform oo loo beddelay CloudFormation - oo waan ka qoomameeyay
Kaabayaasha sida Xeer

Laakin xaggee ka timid? Sidee loola socon karaa? Halkee buu ku nool yahay koodkaagu? Horumariyayaashu miyay u baahan yihiin ogolaanshaha gelitaanka?

Waxaa laga beddelay Terraform oo loo beddelay CloudFormation - oo waan ka qoomameeyay
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 abuur macros ama kheyraadka isticmaalaha. Habkani waxa uu soo bandhigayaa kakanaanta dheeraadka ah ee aan ku jirin nooca Semantic Terraform ee modules git. Aniga ahaan, dhibaatada ugu daran waxay ahayd maaraynta oggolaanshaha dhammaan isticmaaleyaasha lambdas (iyo kuwani waa daraasiin xisaabaadka AWS ah). Dhibaato kale oo muhiim ah waxay ahayd "maxaa hor yimid, digaaga mise ukunta?" dhibka: waxay la xiriirtay code lambda. Shaqadani lafteedu waa kaabayaal iyo xeer, iyada lafteedu waxay u baahan tahay la socodka iyo cusbooneysiinta. Ciddidii u dambaysay ee sanduuqa naxashka ku jirtay ayaa ahayd dhibka ah in si macne ahaan loo cusboonaysiiyo isbeddellada koodhka lambda; Waxaan sidoo kale ku qasbanahay inaan hubinno in ficillada isku-darka ah ee aan lahayn amar toos ah aysan isbeddelin inta u dhaxaysa orodka.

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 ASG beantalk sida gunaanad, tani waxay u baahan doontaa 4 khad kood oo dheeri ah gudaha Terraform. Markii aan waydiiyay haddii ay jirto xal la mid ah CloudFormation, waxay ii tilmaameen kayd git ah oo dhan oo leh dhuumaha daadinta iyo wax kasta, dhammaan sababtoo ah waxa liidata 4 ee khadadka Terraform code samayn karo.

Waxay si fiican u ogaanaysaa qulqulka

Hubi in xaqiiqadu ay la mid tahay filashooyinka.

Ogaanshaha qulqulka waa hawlgal aad u awood badan sida sifada koodka sababtoo ah waxay gacan ka geysataa hubinta in xaqiiqadu ay la mid tahay filashooyinka. Waxaa lagu heli karaa CloudFormation iyo Terraform labadaba. Laakin markii xirmada wax soo saarku ay kordheen, raadinta qulqulka CloudFormation waxay soo saartay ogaanshaha been abuur ah oo badan.

Terraform-ka waxaad haysataa qabsatooyin nololeed oo aad u horumarsan oo lagu ogaanayo qulqulka. Tusaale ahaan, waxaad gelisaa amarka iska indha_isbeddelka si toos ah ee qeexitaanka hawsha ECS haddii aad rabto inaad iska indhatirto isbeddelada qeexida hawsha gaarka ah adoon iska indhatirin isbeddelladaada ECS oo dhan.

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 aws-cdk, qaab-dhismeedka lagu qeexayo kaabayaasha daruuriga ah ee koodka iyo ku socodsiinta iyada oo loo marayo AWS CloudFormation. Waxay noqon doontaa mid xiiso leh in la arko waxa mustaqbalka u ah aws-cdk, laakiin waxay yeelan doontaa waqti adag inay kula tartanto awoodaha kale ee Terraform; si loo keeno CloudFormation ilaa taariikhda, isbeddellada caalamiga ah ayaa loo baahan doonaa.

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, Wax walba maaha inay noqdaan maktabad, laakiin halkee ayaynu mabda’a ahaan maktabado wadaag la’nahay?!

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 daruur terraform ah si aad u socodsiiso terraform-kaaga. Adeegyadan dhexe waxa ay fududeeyaan in la maareeyo, la baaro, lana ansixiyo isbeddellada dhuleed.

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 wax walba waa sida code.

Source: www.habr.com

Add a comment