Utshintshe ukusuka kwi-Terraform ukuya kwi-CloudFormation- kwaye wazisola

Ukumela iziseko zophuhliso njengekhowudi kwifomathi yeteksti ephindaphindwayo yeyona ndlela ilula yokwenziwa kweenkqubo ezingadingi kudlala ngeempuku. Lo msebenzi unegama - Izibonelelo njengeKhowudi, kwaye ukuza kuthi ga ngoku kukho izixhobo ezibini ezidumileyo zokuyiphumeza, ngakumbi kwi-AWS: Terraform и CloudFormation.

Utshintshe ukusuka kwi-Terraform ukuya kwi-CloudFormation- kwaye wazisola
Ukuthelekisa amava kunye neTerraform kunye ne-CloudFormation

Ngaphambi kokufika ukudideka (yena Amazoni Junior) Ndisebenzile kwisiqalo esinye kwaye wasebenzisa iTerraform iminyaka emithathu. Kwindawo entsha, ndasebenzisa iTerraform ngamandla am onke, emva koko inkampani yatyhala inguqu kuyo yonke into yaseAmazon, kubandakanya CloudFormation. Ndiziphuhlise ngenkuthalo ezona ndlela zilungileyo kuzo zombini, kwaye ndisebenzise zombini izixhobo ezinzima kakhulu, ukuhamba komsebenzi kumbutho ngokubanzi. Emva kwexesha, emva kokucingisisa nzulu ngeziphumo zokufuduka ukusuka kwiTerraform ukuya kwi-CloudFormation, ndiye ndaqiniseka ukuba iTerraform yayinokuba lolona khetho lulungileyo lombutho.

Terraform Eyoyikekayo

Isoftware yeBeta

I-Terraform ayikakhuphi noguqulelo lwe-1.0 okwangoku, sisizathu esilungileyo sokungayisebenzisi. Itshintshile kakhulu ukusukela oko ndiqale ndayizama ngokwam, kodwa emva koko terraform apply ihlala iqhekeka emva kohlaziyo oluninzi okanye nje emva kweminyaka embalwa yokusetyenziswa. Ndiya kuthi "yonke into ihluke ngoku," kodwa ... yiloo nto wonke umntu ebonakala ethetha, akunjalo? Kukho utshintsho olungahambelaniyo neenguqulelo zangaphambili, nangona zifanelekile, kwaye kuvakala ngathi i-syntax kunye nokukhutshwa kweevenkile zemithombo ngoku sikufunayo. Isixhobo sibonakala singcono ngokwenene, kodwa... :-0

Kwelinye icala, i-AWS yenze umsebenzi olungileyo ukugcina ukuhambelana ngasemva. Oku kungenxa yokuba iinkonzo zabo zihlala zivavanywa ngokucokisekileyo ngaphakathi kwintlangano kwaye kuphela emva koko, zithiywe ngokutsha, zipapashwe. Ngoko “bazama ngamandla” kukungacaci. Ukugcina ukuhambelana okubuyela ngasemva kunye nee-APIs zenkqubo eyohlukeneyo kwaye entsonkothileyo njenge-AWS inzima kakhulu. Nabani na oye kwafuneka agcine ii-API zoluntu ezisetyenziswa ngokubanzi njengoko zinjalo kufuneka ziqonde ukuba kunzima kangakanani ukwenza njalo iminyaka emininzi. Kodwa indlela yokuziphatha ye-CloudFormation, kwinkumbulo yam, ayizange itshintshe kule minyaka idlulileyo.

Dibana nomlenze... yimbumbulu

Ngokwazi kwam, cima uvimba umntu wangaphandle Isitaki se-CloudFormation esisuka kwi-CF yakho ayinakwenzeka. Kuyafana nakwiTerraform. Ikuvumela ukuba ungenise izixhobo ezikhoyo kwisitaki sakho. Umsebenzi unokuthiwa uyamangalisa, kodwa ngamandla amakhulu kuza uxanduva olukhulu. Ufuna nje ukongeza isibonelelo kwisitaki, kwaye ngelixa usebenza ngesitaki sakho, awukwazi ukucima okanye ukuguqula esi sixhobo. Ngenye imini kwabuya umva. Ngenye imini eTwitch, umntu othile wangenisa ngempazamo iqela lezokhuseleko le-AWS kwi-Terraform stack yakhe ngelixa engenzi bubi. Ndafaka imiyalelo emininzi kwaye ... iqela lokhuseleko (kunye ne-traffic engenayo) lanyamalala.

Terraform Great

Ukubuyiselwa kwimeko engaphelelanga

Ngamanye amaxesha i-CloudFormation iyasilela ukutshintsha ngokupheleleyo ukusuka kwelinye ilizwe ukuya kwelinye. Kwangaxeshanye, uya kuzama ukubuyela kuleyo yangaphambili. Kulusizi ukuba oku akusoloko kusenzeka. Kungoyikeka kakhulu ukulungisa ingxaki okwenzekileyo emva kwexesha-awusoze wazi nokuba i-CloudFormation iyakonwaba na into yokuba iqhekeziwe- nokuba uyilungise. Nokuba uya kukwazi ukubuyela kwimeko yangaphambili okanye hayi, akayazi ngokwenene indlela yokumisela kwaye, ngokungagqibekanga, ujinga iiyure elindele ummangaliso.

I-Terraform, kwelinye icala, ithande ukubuyela kutshintsho olungaphumeleliyo ngakumbi kwaye inikezela ngezixhobo zokulungisa iimpazamo.

Utshintsho olucacileyo kwimeko yoxwebhu

“Kulungile, isilinganisi-mthwalo, uyatshintsha. Kodwa kanjani?"

-injineli enexhala, ilungele ukucofa iqhosha elithi "yamkela".

Ngamanye amaxesha kufuneka ndenze ubuqhetseba kunye nesilinganisi somthwalo kwi-CloudFormation stack, njengokongeza inombolo yezibuko okanye ukutshintsha iqela lokhuseleko. I-ClouFormation ibonisa utshintsho olungalunganga. Mna, kwizikhonkwane kunye neenaliti, jonga kabini ifayile ye-yaml kalishumi ukuqinisekisa ukuba andizange ndicime nantoni na eyimfuneko kwaye andizange ndongeze into engeyomfuneko.

I-Terraform icace ngakumbi kulo mba. Ngamanye amaxesha ude acace kakhulu (funda: uyadika). Ngethamsanqa, inguqulelo yamva nje ibandakanya umboniso ophuculweyo wotshintsho ukuze ukwazi ukubona kanye oko kutshintshayo.

Bhetyebhetye

Bhala isoftwe ngasemva.

Ukuyibeka ngokuthe ngqo, eyona nto ibalulekileyo yesoftware ehlala ixesha elide kukukwazi ukuziqhelanisa nokutshintsha. Bhala nayiphi na isoftwe ngasemva. Ubukhulu becala bendisenza iimpazamo ngokuthatha inkonzo "elula", emva koko ndiqale ukucinezela yonke into kwi-CloudFormation okanye isitaki seTerraform. Kwaye ke, kwiinyanga kamva kwavezwa ukuba ndiqonde yonke into engalunganga, kwaye inkonzo yayingelula! Kwaye ngoku ndifuna ukwaphula isitaki esikhulu sibe ngamacandelo amancinci. Xa usebenza kunye ne-CloudFormation, oku kunokwenziwa kuphela ngokuqala ngokuphinda wenze isitaki esele sikhona, kwaye andikwenzi oku ngeenkcukacha zam zolwazi. I-Terraform, kwelinye icala, yenza kube nokwenzeka ukucanda isitaki kunye nokusiqhekeza sibe ngamacandelo amancinci aqondakala ngakumbi.

Iimodyuli kwi-git

Ukwabelana ngekhowudi yeTerraform kwiimfumba ezininzi kulula kakhulu kunokwabelana ngekhowudi yeCloudFormation. NgeTerraform, unokubeka ikhowudi yakho kwindawo yokugcina yegit kwaye ufikelele kuyo usebenzisa ulawulo loguqulelo lwesemantic. Nabani na onokufikelela kolu vimba angaphinda asebenzise ikhowudi ekwabelwana ngayo. I-CloudFormation ilingana ne-S3, kodwa ayinazo izibonelelo ezifanayo, kwaye akukho sizathu sokuba siyishiye i-git sithande i-S3 kwaphela.

Umbutho wakhula kwaye ukukwazi ukwabelana ngeemfumba eziqhelekileyo kwafikelela kwinqanaba elibalulekileyo. I-Terraform yenza konke oku kube lula kwaye kwendalo, ngelixa i-CloudFormation iya kukwenza ukuba utsibe kwiihupu ngaphambi kokuba ufumane into enje isebenza.

Imisebenzi njengekhowudi

"Masibhale kwaye kulungile."

—unjineli kwiminyaka emi-3 ngaphambi kokuba enze ibhayisekile yeTerraform.

Xa kuziwa kuphuhliso lwesoftware, iGo okanye inkqubo yeJava ayiyokhowudi nje.

Utshintshe ukusuka kwi-Terraform ukuya kwi-CloudFormation- kwaye wazisola
Ikhowudi njengeKhowudi

Kukwakho neziseko ezingundoqo esebenza kuzo.

Utshintshe ukusuka kwi-Terraform ukuya kwi-CloudFormation- kwaye wazisola
Izibonelelo njengeKhowudi

Kodwa uvela phi? Indlela yokuyibeka esweni? Ihlala phi ikhowudi yakho? Ngaba abaphuhlisi bafuna imvume yofikelelo?

Utshintshe ukusuka kwi-Terraform ukuya kwi-CloudFormation- kwaye wazisola
Imisebenzi njengeKhowudi

Ukuba ngumphuhlisi wesoftware akuthethi nje ukubhala ikhowudi.

I-AWS ayisiyiyo yodwa: mhlawumbi usebenzisa abanye ababoneleli. SignalFx, PagerDuty okanye iGithub. Mhlawumbi unomncedisi wangaphakathi weJenkins weCI/CD okanye ideshibhodi yeGrafana yangaphakathi yokubeka iliso. I-Infra njengeKhowudi ikhethwe ngenxa yezizathu ezahlukeneyo, kwaye nganye ibaluleke ngokulinganayo kuyo yonke into enxulumene nesoftware.

Xa ndandisebenza eTwitch, siye sakhawulezisa iinkonzo ngaphakathi kweendlela ezixubeneyo zeAmazon kunye ne-AWS. Sazikhupha saza saxhasa iinkonzo ezincinci ezininzi, sanyusa iindleko zokusebenza. Iingxoxo zahamba ngolu hlobo:

  • Я: Damn, zininzi izijekulo zokwandisa i-microservice enye. Kuya kufuneka ndisebenzise le nkunkuma ukwenza iakhawunti ye-AWS (siye kwiiakhawunti ezi-2 microservice), ngoko le yokuseta izilumkiso, le yekhowudi yokugcina, kwaye le yoluhlu lwe-imeyile, kwaye ke le...
  • Inkokeli: Masiyibhale kwaye kulungile.
  • Я: Kulungile, kodwa iskripthi ngokwaso siya kutshintsha. Siza kufuna indlela yokujonga ukuba zonke ezi gizmos zakhiweyo zaseAmazon zihlaziyiwe.
  • Inkokeli: Ivakala kamndandi. Kwaye siya kubhala iskripthi kule nto.
  • Я: Kakhulu! Kwaye iscript siyakufuna ukuseta iiparamitha. Ngaba uza kuyamkela?
  • Inkokeli: Makathathe apho aya khona!
  • Я: Inkqubo inokutshintsha kwaye ukuhambelana ngasemva kuya kulahleka. Olunye uhlobo lolawulo lwenguqulelo ye-semantic luya kufuneka.
  • Inkokeli: Ingcinga entle!
  • Я: Izixhobo zingatshintshwa ngesandla, ngaphakathi kojongano lomsebenzisi. Siza kufuna indlela yokujonga kunye nokulungisa oku.

…iminyaka emi-3 kamva:

  • Inkokeli: Kwaye sine terraform.

Ukuziphatha kwebali kukuba: nokuba wena intloko phezu kwezithende kuyo yonke into Amazon, usasebenzisa into engaveli kwi-AWS, kwaye ezi nkonzo zinemeko esebenzisa ulwimi loqwalaselo ukugcina eso simo sikwi-sync.

CloudFormation lambda vs git iimodyuli zeterraform

lambda sisisombululo se-CloudFormation kumbandela wengqiqo yesiko. Nge lambda unako yenza iimacros okanye umthombo wabasebenzisi. Le ndlela yazisa izinto ezintsonkothileyo ezongezelelweyo ezingekhoyo kuguqulelo lwesemantic yeTerraform yeemodyuli zegit. Kum, eyona ngxaki yayicinezela kakhulu yayikukulawula iimvume kuzo zonke ezi lambdas zabasebenzisi (kwaye ezi zininzi zeeakhawunti ze-AWS). Enye ingxaki ebalulekileyo yayiyingxaki ethi “yintoni efike kuqala, inkukhu okanye iqanda?” ingxaki yayinxulumene nekhowudi yelambda. Lo msebenzi ngokwawo sisiseko kunye nekhowudi, kwaye yona ngokwayo idinga ukubeka iliso kunye nohlaziyo. Isikhonkwane sokugqibela ebhokisini yayinzima ekuhlaziyeni utshintsho lwekhowudi ye-lambda; Kwakhona kwafuneka siqinisekise ukuba izenzo zesitaki ngaphandle komyalelo othe ngqo azizange zitshintshe phakathi kwee-run.

Ndikhumbula kanye ndandifuna ukwenza i-canary deployment yendawo ye-Elastic Beanstalk kunye ne-balancer yomthwalo weklasi. Eyona nto ilula ukuyenza iya kuba kukwenza ukuthunyelwa kwesibini kwi-EB ecaleni kwendawo yokuvelisa, ithathe inyathelo elongezelelweyo: ukudibanisa i-auto-scaling group deployment deployment kunye ne-LB yokuthunyelwa kwindawo yokuvelisa. Kwaye ekubeni iTerraform isebenzisa ASG beantalk njengesigqibo, oku kuya kufuna imigca emi-4 eyongezelelweyo yekhowudi kwiTerraform. Xa ndabuza ukuba kukho isisombululo esithelekisekayo kwi-CloudFormation, bandikhomba kuyo yonke indawo yokugcina i-git kunye nombhobho wokuhambisa kunye nayo yonke into, yonke into enokuyenza imigca emi-4 yekhowudi yeTerraform.

Ibona ngcono ukukhukuliseka

Qinisekisa ukuba inyaniso ihambelana nokulindela.

Ukufunyanwa kweDrift yimisebenzi enamandla kakhulu njengophawu lwekhowudi kuba inceda ekuqinisekiseni ukuba inyaniso ihambelana nokulindelweyo. Iyafumaneka kunye ne-CloudFormation kunye neTerraform. Kodwa njengoko isitakhi semveliso sikhula, ukukhangela i-drift kwi-CloudFormation kuvelisa ngakumbi nangakumbi ukubhaqwa kobuxoki.

NgeTerraform unamagwegwe omjikelo wobomi obuphambili ngakumbi bokubona ukukhukuliseka. Umzekelo, ufaka umyalelo ngoya_utshintsho ngokuthe ngqo kwinkcazo yomsebenzi we-ECS ukuba ufuna ukungahoyi utshintsho kwinkcazo yomsebenzi othile ngaphandle kokungahoywa utshintsho kwi-ECS yakho yonke yokusasazwa.

I-CDK kunye nekamva le-CloudFormation

I-CloudFormation inzima ukulawula ngokubanzi, izikali ze-cross-infrastructure. Uninzi lwezi ngxaki zibonwa kwaye isixhobo sifuna izinto ezinje awo-cdk, isakhelo sokuchaza isiseko selifu kwikhowudi kunye nokuqhuba nge-AWS CloudFormation. Kuya kuba nomdla ukubona ukuba ikamva liphethe ntoni kwi-aws-cdk, kodwa kuya kuba nzima ukukhuphisana namanye amandla eTerraform; ukuzisa i-CloudFormation ngoku, utshintsho lwehlabathi luya kufuneka.

Ukuze iTerraform ingadani

Oku "yi-infrastructure njengekhowudi", kungekhona "njengesicatshulwa".

Umbono wam wokuqala ngeTerraform wawumbi kakhulu. Ndicinga ukuba andizange ndiyiqonde indlela. Phantse zonke iinjineli ziyibona ngokuzenzekelayo njengefomati yokubhaliweyo ekufuneka iguqulelwe kwisiseko esifunwayo. MUSA UKWENZA NGENDLELA.

Iinyaniso zophuhliso lwesoftware elungileyo ziyasebenza nakwiTerraform.

Ndibone iindlela ezininzi ezamkelweyo ukwenza ikhowudi elungileyo ingahoywa kwiTerraform. Ufunde iminyaka ukuze ube ngumdwelisi wenkqubo olungileyo. Sukuncama la mava ngenxa yokuba usebenza neTerraform. Iinyaniso zophuhliso lwesoftware elungileyo zisebenza kwiTerraform.

Ingabhalwa njani ikhowudi?

Ndibone izitaki ezinkulu zeTerraform zingenamaxwebhu kwaphela. Ungayibhala njani ikhowudi kumaphepha - kungekho maxwebhu ngokupheleleyo? Yongeza amaxwebhu achaza into yakho ikhowudi I-Terraform (ugxininiso kwigama elithi "ikhowudi"), kutheni eli candelo libaluleke kakhulu, kunye nento oyenzayo.

Singazisebenzisa njani iinkonzo ebezikade zingumsebenzi omnye omkhulu () omkhulu?

Ndibone izitaki zeTerraform ezintsonkothileyo ezivezwa njengemodyuli enye. Kutheni singasebenzisi isoftware ngale ndlela? Kutheni sahlulahlula imisebenzi emikhulu ibe mincinci? Iimpendulo ezifanayo zisebenza kwiTerraform. Ukuba imodyuli yakho inkulu kakhulu, kufuneka uyahlule ibe ziimodyuli ezincinci.

Ngaba inkampani yakho ayiwasebenzisi amathala eencwadi?

Ndiyibonile indlela iinjineli, zijikeleza iprojekthi entsha zisebenzisa iTerraform, ngobutyhakala zikopa-zincamathelise ii-chunks ezinkulu ukusuka kwezinye iiprojekthi ukuya kwezazo, emva koko zadityaniswa nazo de yaqala ukusebenza. Ngaba ungasebenza ngolu hlobo ngekhowudi "yokulwa" kwinkampani yakho? Asisebenzisi amathala eencwadi kuphela. Ewe, asiyiyo yonke into ekufuneka ibe yithala leencwadi, kodwa siphi na ngaphandle kwamathala eencwadi ekwabelwana ngawo ngomgaqo?!

Ngaba awusebenzisi i-PEP8 okanye i-gofmt?

Uninzi lweelwimi zinenkqubo esemgangathweni, eyamkelekileyo yokufomatha. KwiPython le yiPEP8. KwiGo - gofmt. I-Terraform ineyayo: terraform fmt. Yonwabele ngenxa yempilo yakho!

Ngaba uya kusebenzisa iReact ngaphandle kokwazi iJavaScript?

Iimodyuli zeTerraform zinokwenza lula inxalenye yesiseko esintsonkothileyo osidalayo, kodwa oku akuthethi ukuba awukwazi ukuyijonga kwaphela. Ngaba uyafuna ukusebenzisa iTerraform ngokuchanekileyo ngaphandle kokuqonda izixhobo? Ugwetyiwe: ixesha liya kudlula, kwaye awusoze wazi iTerraform.

Ngaba ukhowuda ngee-singletons okanye inaliti yokuxhomekeka?

Inaliti yokuxhomekeka yeyona ndlela ilungileyo eyaziwayo yophuhliso lwesoftware kwaye ikhethwa kune singletons. Iluncedo njani le nto kwiTerraform? Ndizibonile iimodyuli zeTerraform ezixhomekeke kwimeko ekude. Endaweni yokubhala iimodyuli ezifumana kwakhona imo ekude, bhala imodyuli ethatha iiparamitha. Kwaye ke ugqithise ezi parameters kwimodyuli.

Ngaba amathala eencwadi akho enza izinto ezilishumi kakuhle okanye into enye enkulu?

Amathala eencwadi asebenza kakuhle kakhulu ngawo agxile kumsebenzi omnye awenza kakuhle kakhulu. Endaweni yokubhala iimodyuli ezinkulu zeTerraform ezizama ukwenza yonke into ngaxeshanye, yakha iinxalenye zazo ezenza into enye kakuhle. Kwaye ke udibanise nabo njengoko kufuneka.

Ulwenza njani utshintsho kumathala eencwadi ngaphandle kokubuyela umva?

Imodyuli eqhelekileyo yeTerraform, njengethala leencwadi eliqhelekileyo, idinga ngandlela thile ukunxibelelana ngotshintsho kubasebenzisi ngaphandle kokubuyela umva ngokuhambelana. Kuyacaphukisa xa olu tshintsho lusenzeka kumathala eencwadi, kwaye kuyacaphukisa xa utshintsho olungabuyeli ngasemva-luhambelanayo lwenziwa kwiimodyuli zeTerraform. Kuyacetyiswa ukuba usebenzise iithegi zegit kunye ne-semver xa usebenzisa iimodyuli zeTerraform.

Ngaba inkonzo yakho yemveliso isebenza kwilaptop yakho okanye kwiziko ledatha?

IHashicorp inezixhobo ezifana ilifu leterraform ukuqhuba iterraform yakho. Ezi nkonzo zisembindini zenza kube lula ukulawula, ukuphicotha, kunye nokuvuma utshintsho lweterraform.

Awuzibhali iimvavanyo?

Iinjineli ziyaqaphela ukuba ikhowudi ifuna ukuvavanywa, kodwa bona ngokwabo bahlala belibala malunga novavanyo xa besebenza neTerraform. Kwiziseko ezingundoqo, oku kuzaliswe ngamaxesha enkohliso. Ingcebiso yam kukuba "ukuvavanya" okanye "ukudala umzekelo" izitaki usebenzisa iimodyuli ezinokuthi zisetyenziswe ngokuchanekileyo ukuvavanya ngexesha leCI / CD.

Terraform kunye microservices

Ubomi kunye nokufa kweenkampani ezincinci zenkonzo kuxhomekeke kwisantya, ukusungula izinto ezintsha, kunye nokuphazamiseka kokusebenza kwemicroservice entsha.

Eyona nto ixhaphakileyo engalunganga enxulumene nezakhiwo ze-microservice, kwaye ezingenakupheliswa, inxulumene nomsebenzi, kungekhona ikhowudi. Ukuba ucinga ngeTerraform njengendlela yokwenza ngokuzenzekelayo kuphela icala lesiseko soyilo lwemicroservices, ke uphoswa ziinzuzo zokwenyani zenkqubo. Ngoku sele yonke into ifana nekhowudi.

umthombo: www.habr.com

Yongeza izimvo