Ushintshe ukusuka ku-Terraform waya ku-CloudFormation - futhi wazisola

Ukumela ingqalasizinda njengekhodi ngefomethi yombhalo ephindaphindwayo kuwumkhuba olula ongcono kakhulu wamasistimu angadingi ukudlala ngamagundane. Lo mkhuba unegama - Ingqalasizinda njengeKhodi, futhi kuze kube manje kunamathuluzi amabili adumile okuwenza, ikakhulukazi ku-AWS: I-Terraform и CloudFormation.

Ushintshe ukusuka ku-Terraform waya ku-CloudFormation - futhi wazisola
Ukuqhathanisa isipiliyoni neTerraform kanye ne-CloudFormation

Ngaphambi kokufika Twitch (yena I-Amazon Junior) Ngisebenzili ekuqaliseni okukodwa futhi wasebenzisa iTerraform iminyaka emithathu. Endaweni entsha, ngiphinde ngasebenzisa iTerraform ngawo wonke amandla ami, inkampani yabe isiphusha uguquko kuyo yonke into yase-Amazon, okuhlanganisa ne-CloudFormation. Ngenkuthalo ngithuthukise imikhuba engcono kakhulu yakho kokubili, futhi ngisebenzise amathuluzi womabili ekugelezeni komsebenzi okuyinkimbinkimbi kakhulu, kwenhlangano yonke. Kamuva, ngemva kokucabangisisa ngemiphumela yokusuka e-Terraform iye e-CloudFormation, ngaba nokuqiniseka ukuthi i-Terraform cishe yayiyisinqumo esingcono kakhulu senhlangano.

I-Terraform Esabekayo

Isofthiwe ye-Beta

I-Terraform ayikakhiphi ngisho inguqulo engu-1.0, okuyisizathu esihle sokungayisebenzisi. Ishintshe kakhulu kusukela ngiqala ukuyizama mina, kodwa emuva kwalokho terraform apply kuvame ukuphuka ngemuva kwezibuyekezo ezimbalwa noma ngemva nje kweminyaka embalwa yokusetshenziswa. Ngingasho ukuthi "konke kuhlukile manje," kodwa ... yilokho wonke umuntu obonakala ekusho, cha? Kukhona izinguquko ezingahambisani nezinguqulo zangaphambilini, nakuba zifanelekile, futhi kuzwakala sengathi i-syntax kanye nezifinyezo zezitolo zezinsiza manje yilokho esikudingayo. Ithuluzi libonakala selingcono ngempela, kodwa... :-0

Ngakolunye uhlangothi, i-AWS yenze umsebenzi omuhle ukugcina ukuhambisana emuva. Lokhu kungenxa yokuthi izinsiza zabo zivame ukuhlolwa ngokuphelele ngaphakathi kwenhlangano bese kuthi-ke, ziqanjwe kabusha, zishicilelwe. Ngakho-ke ukuthi “bazama kanzima” kuwukubukelwa phansi. Ukugcina ukuhambisana okubuyela emuva nama-API wesistimu ehlukahlukene futhi eyinkimbinkimbi njenge-AWS kunzima ngendlela emangalisayo. Noma ubani okuye kwadingeka agcine ama-API omphakathi asetshenziswa kabanzi njengoba enjalo kufanele aqonde ukuthi kunzima kangakanani ukwenza kanjalo iminyaka eminingi kangaka. Kepha ukuziphatha kwe-CloudFormation, enkumbulweni yami, akukaze kuguquke ngokuhamba kweminyaka.

Hlangana nomlenze... yinhlamvu

Ngokwazi kwami, susa insiza ongaphandle Isitaki se-CloudFormation esivela kusitaki sakho se-CF asinakwenzeka. Kungokufanayo nange-Terraform. Ikuvumela ukuthi ungenise izinsiza ezikhona kusitaki sakho. Umsebenzi kungathiwa uyamangalisa, kodwa ngamandla amakhulu kuza umthwalo omkhulu. Udinga nje ukwengeza insiza kusitaki, futhi ngenkathi usebenza nesitaki sakho, awukwazi ukususa noma ukushintsha lesi sisetshenziswa. Ngolunye usuku kwahlehla. Ngolunye usuku ku-Twitch, othile wangenisa ngephutha iqembu lezokuphepha le-AWS lomunye umuntu kusitaki sakhe se-Terraform kuyilapho engenzi bubi. Ngafaka imiyalo eminingana futhi... iqembu lezokuphepha (kanye nethrafikhi engenayo) lanyamalala.

I-Terraform Enhle

Ukuthola kabusha ezimeni ezingaphelele

Kwesinye isikhathi i-CloudFormation ihluleka ngokuphelele ukuguquka ukusuka kwesinye isimo kuye kwesinye. Ngesikhathi esifanayo, uzozama ukubuyela kokudlule. Kuyadabukisa ukuthi lokhu akwenzeki ngaso sonke isikhathi. Kungase kwesabe kakhulu ukulungisa iphutha okwenzeka kamuva - ngeke wazi noma i-CloudFormation izokujabulela yini ukuthi igqekezwa - ngisho nje ukuyilungisa. Ukuthi kuzokwazi yini ukubuyela esimweni sangaphambilini, akazi ngempela ukuthi anganquma kanjani futhi, ngokuzenzakalelayo, ulenga amahora amaningi elinde isimangaliso.

I-Terraform, ngakolunye uhlangothi, ijwayele ukululama ezinguqukweni ezihlulekile ngomusa kakhulu futhi inikeza amathuluzi okususa amaphutha athuthukile.

Izinguquko ezicacile esimweni sedokhumenti

“Kulungile, ibhalansi yokulayisha, uyashintsha. Kodwa kanjani?"

—unjiniyela okhathazekile, ulungele ukucindezela inkinobho “yamukela”.

Kwesinye isikhathi ngidinga ukwenza ezinye izikhohlisi ngesilinganisi somthwalo kusitaki se-CloudFormation, njengokwengeza inombolo yembobo noma ukushintsha iqembu lezokuphepha. I-ClouFormation ibonisa izinguquko ezimbi. Mina, kumaphini nezinaliti, ngibheka kabili ifayela le-yaml izikhathi eziyishumi ukuze ngiqiniseke ukuthi angisusanga lutho oludingekayo futhi angingezanga lutho olungadingekile.

I-Terraform isobala kakhulu kulokhu. Kwesinye isikhathi uba sobala kakhulu (funda: yisicefe). Ngenhlanhla, inguqulo yakamuva ihlanganisa ukuboniswa okuthuthukisiwe kwezinguquko ukuze ukwazi manje ukubona kahle ukuthi yini eshintshayo.

Ukuvumelana nezimo

Bhala isofthiwe emuva.

Ukukubeka ngokusobala, isici esibaluleke kakhulu sesoftware ehlala isikhathi eside yikhono lokuzivumelanisa noshintsho. Bhala noma iyiphi isofthiwe emuva. Ezikhathini eziningi ngenza amaphutha ngokuthatha insizakalo “elula,” bese ngiqala ukuminyanisa yonke into kusitaki esisodwa se-CloudFormation noma se-Terraform. Futhi-ke, ezinyangeni kamuva kwembulwa ukuthi ngangikuqonde konke okungalungile, futhi inkonzo empeleni yayingelula! Futhi manje ngidinga ngandlela-thile ukuphula isitaki esikhulu sibe izingxenye ezincane. Uma usebenza ne-CloudFormation, lokhu kungenziwa kuphela ngokuqala kabusha isitaki esikhona, futhi angikwenzi lokhu ngemininingwane yami yolwazi. I-Terraform, ngakolunye uhlangothi, yenza kwaba nokwenzeka ukuhlukanisa isitaki futhi siyihlukanise sibe izingxenye ezincane eziqondakala kakhudlwana.

Amamojula ku-git

Ukwabelana ngekhodi ye-Terraform kuzitaki eziningi kulula kakhulu kunokwabelana ngekhodi ye-CloudFormation. Nge-Terraform, ungafaka ikhodi yakho endaweni yokugcina ye-git futhi uyifinyelele usebenzisa isilawuli senguqulo ye-semantic. Noma ubani okwazi ukufinyelela leli khosombe angaphinda asebenzise ikhodi eyabiwe. I-CloudFormation ilingana ne-S3, kodwa ayinazo izinzuzo ezifanayo, futhi asikho isizathu sokuthi kungani kufanele siyilahle i-git sivune i-S3 nhlobo.

Inhlangano yakhula futhi nekhono lokwabelana ngezitaki ezivamile lafinyelela ezingeni elibucayi. I-Terraform yenza konke lokhu kube lula futhi kube ngokwemvelo, kuyilapho i-CloudFormation izokwenza ukuthi ugxume phakathi kwama-hoops ngaphambi kokuthi uthole okuthile okufana nalokhu kusebenza.

Isebenza njengekhodi

"Asiyibhale futhi kulungile."

—unjiniyela iminyaka emi-3 ngaphambi kokusungula ibhayisikili le-Terraform.

Uma kuziwa ekuthuthukisweni kwesofthiwe, i-Go noma uhlelo lwe-Java akuyona nje ikhodi.

Ushintshe ukusuka ku-Terraform waya ku-CloudFormation - futhi wazisola
Ikhodi njengekhodi

Kukhona nengqalasizinda esebenza kuyo.

Ushintshe ukusuka ku-Terraform waya ku-CloudFormation - futhi wazisola
Ingqalasizinda njengeKhodi

Kodwa uvelaphi? Indlela yokuqapha? Ihlala kuphi ikhodi yakho? Ingabe onjiniyela badinga imvume yokufinyelela?

Ushintshe ukusuka ku-Terraform waya ku-CloudFormation - futhi wazisola
Isebenza njengekhodi

Ukuba ngunjiniyela wesoftware akusho nje ukubhala ikhodi.

I-AWS akuyona yodwa: kungenzeka ukuthi usebenzisa abanye abahlinzeki. I-SignalFx, i-PagerDuty noma i-Github. Mhlawumbe uneseva yangaphakathi ye-Jenkins ye-CI/CD noma ideshibhodi yangaphakathi ye-Grafana yokuqapha. I-Infra njengeKhodi ikhethwa ngezizathu ezahlukene, futhi ngayinye ibaluleke ngokulinganayo kukho konke okuhlobene nesofthiwe.

Ngenkathi ngisebenza e-Twitch, sasheshisa izinsizakalo ngaphakathi kwezinhlelo ezixubile ezishumekiwe zase-Amazon kanye ne-AWS. Saxosha futhi sasekela ama-microservices amaningi, sakhuphula izindleko zokusebenza. Izingxoxo zihambe kanje:

  • Я: Damn, lokho kungukunyakazisa okuningi kokweqa i-microservice eyodwa. Kuzodingeka ngisebenzise lo doti ukuze ngidale i-akhawunti ye-AWS (siye kuma-akhawunti angu-2 microservice), bese kuba lena yokusetha izexwayiso, lena eyenqolobane yekhodi, nalolu olohlu lwe-imeyili, bese kuba lolu...
  • Ukuhola: Masiyibhale futhi kulungile.
  • Я: Kulungile, kodwa iskripthi ngokwaso sizoshintsha. Sizodinga indlela yokuhlola ukuthi wonke lawa ma-gizmos akhelwe ngaphakathi e-Amazon asesikhathini samanje.
  • Ukuhola: Kuzwakala kukuhle. Futhi sizobhala iskripthi salokhu.
  • Я: Kuhle! Futhi iskripthi cishe sisazodinga ukusetha amapharamitha. Ingabe uzozamukela?
  • Ukuhola: Akathathe lapho eya khona!
  • Я: Inqubo ingase ishintshe futhi ukuhambisana okusemuva kuzolahleka. Kuzodingeka uhlobo oluthile lokulawula inguqulo ye-semantic.
  • Ukuhola: Umqondo omuhle!
  • Я: Amathuluzi angashintshwa ngesandla, ngaphakathi kwesixhumi esibonakalayo somsebenzisi. Sizodinga indlela yokuhlola nokulungisa lokhu.

…iminyaka emi-3 kamuva:

  • Ukuhola: Futhi sine-terraform.

Ukuziphatha kwendaba ukuthi: noma ngabe wena ikhanda phezu kwezithende kukho konke ama-Amazon, usasebenzisa okuthile okungaveli ku-AWS, futhi lezi zinsizakalo zinesimo esisebenzisa ulimi lokumisa ukuze kugcinwe leso simo sivunyelanisiwe.

CloudFormation lambda vs git modules terraform

I-lambda iyisixazululo se-CloudFormation enkingeni ye-logic yangokwezifiso. Nge-lambda ungakwazi dala amamakhro noma insiza yomsebenzisi. Le ndlela yethula ezinye izinto eziyinkimbinkimbi ezingekho enguqulweni ye-Terraform ye-semantic yamamojula we-git. Kimi, inkinga ebicindezela kakhulu bekuwukuphatha izimvume zawo wonke lambdas wabasebenzisi (futhi lawa inqwaba yama-akhawunti e-AWS). Enye inkinga ebalulekile kwaba inkinga “yini eyafika kuqala, inkukhu noma iqanda?”: yayihlobene nekhodi ye-lambda. Lo msebenzi ngokwawo uyingqalasizinda kanye nekhodi, futhi wona ngokwawo udinga ukuqapha nokubuyekezwa. Isipikili sokugcina ebhokisini kwaba ubunzima ekubuyekezeni izinguquko zekhodi ye-lambda; bekufanele futhi siqinisekise ukuthi izenzo zesitaki ngaphandle komyalo oqondile azishintshi phakathi kokugijima.

Ngikhumbula ngake ngafuna ukudala ukuthunyelwa kwe-canary endaweni ye-Elastic Beanstalk nge-balancer yomthwalo yakudala. Into elula kakhulu ongayenza kungaba ukwenza ukuthunyelwa kwesibili kwe-EB eduze kwendawo yokukhiqiza, ukuthatha isinyathelo esiqhubekayo: ukuhlanganisa iqembu lokuthunyelwa kwe-canary elizenzakalelayo kanye ne-LB yokuthunyelwa endaweni yokukhiqiza. Futhi njengoba iTerraform isebenzisa I-ASG beantalk njengesiphetho, lokhu kuzodinga imigqa eyengeziwe emi-4 yekhodi ku-Terraform. Lapho ngibuza ukuthi sikhona yini isixazululo esiqhathanisekayo ku-CloudFormation, bangikhomba kuyo yonke inqolobane ye-git enepayipi lokuthunyelwa nayo yonke into, konke ngenxa yokuthile okungenziwa yimigqa emi-4 engalungile yekhodi ye-Terraform.

Ibona ukukhukhuleka kangcono

Qiniseka ukuthi okungokoqobo kufana nokulindelwe.

Ukutholwa kwe-Drift kuyimisebenzi enamandla kakhulu njengesici sekhodi ngoba isiza ukuqinisekisa ukuthi okungokoqobo kufana nokulindelwe. Itholakala kokubili CloudFormation kanye Terraform. Kepha njengoba isitaki sokukhiqiza sikhula, ukucinga i-Drift ku-CloudFormation kukhiqiza ukutholwa okungamanga okwengeziwe.

Nge-Terraform unamahhuku omjikelezo wempilo athuthuke kakhulu ukuze uthole ukukhukhuleka. Isibonelo, ufaka umyalo zinganaki_izinguquko ngokuqondile encazelweni yomsebenzi we-ECS uma ufuna ukuziba izinguquko zencazelo ethile yomsebenzi ngaphandle kokuziba izinguquko kukho konke ukusetshenziswa kwakho kwe-ECS.

I-CDK kanye nekusasa le-CloudFormation

I-CloudFormation inzima ukuyiphatha ngezikali ezinkulu, ezihlanganisa ingqalasizinda. Eziningi zalezi zinkinga ziyabonakala futhi ithuluzi lidinga izinto ezifana awu-cdk, uhlaka lokuchaza ingqalasizinda yefu ngekhodi nokuyiqhuba nge-AWS CloudFormation. Kuyothakazelisa ukubona ukuthi ikusasa likuphatheleni i-aws-cdk, kodwa kuzoba nzima ukuncintisana namanye amandla e-Terraform; ukuze ulethe i-CloudFormation yakamuva, kuzodingeka izinguquko zomhlaba wonke.

Ukuze iTerraform ingadumazi

Lokhu “kuyingqalasizinda njengekhodi”, hhayi “njengombhalo”.

Umbono wami wokuqala ngeTerraform wawumubi kakhulu. Ngicabanga ukuthi angizange ngiyiqonde indlela yokubhekana nayo. Cishe bonke onjiniyela bayibona ngokuzenzakalelayo njengefomethi yombhalo edinga ukuguqulelwa ingqalasizinda oyifunayo. UNGAYENZE KANJALO.

Amaqiniso okuthuthukiswa okuhle kwesoftware nawo ayasebenza kuTerraform.

Ngibone izinqubo eziningi ezamukelwayo ukuze kwakhiwe ikhodi enhle indiva ku-Terraform. Ufunde iminyaka ukuze ube umhleli omuhle. Ungayeki lokhu okwenziwayo ngoba nje usebenza neTerraform. Amaqiniso okuthuthukiswa okuhle kwesofthiwe asebenza ku-Terraform.

Ikhodi ingabhalwa kanjani?

Ngibone izitaki ezinkulu ze-Terraform ezingenazo nhlobo imibhalo. Ungayibhala kanjani ikhodi emakhasini - ngaphandle kwemibhalo? Engeza amadokhumenti achaza isimo sakho ikhodi I-Terraform (kugcizelela igama elithi "ikhodi"), kungani lesi sigaba sibaluleke kangaka, nokuthi wenzani.

Singazisebenzisa kanjani izinsiza ezake zaba umsebenzi owodwa omkhulu () omkhulu?

Ngibone izitaki ze-Terraform eziyinkimbinkimbi kakhulu zethulwe njengemojula eyodwa. Kungani singasebenzisi isofthiwe ngale ndlela? Kungani sihlukanisa imisebenzi emikhulu ibe mincane? Izimpendulo ezifanayo ziyasebenza kuTerraform. Uma imojuli yakho inkulu kakhulu, udinga ukuyihlukanisa ibe amamojula amancane.

Ingabe inkampani yakho ayisebenzisi imitapo yolwazi?

Ngibonile ukuthi onjiniyela, bephotha iphrojekthi entsha besebenzisa i-Terraform, bakopisha ngobuwula izingcezu ezinkulu ezivela kwamanye amaphrojekthi bazifaka kwezabo, base bexoxa ngazo zaze zaqala ukusebenza. Ungasebenza kanje ngekhodi "yokulwa" enkampanini yakho? Asisebenzisi imitapo yolwazi kuphela. Yebo, akumele konke kube umtapo wolwazi, kodwa sikuphi ngaphandle kwemitapo yolwazi ehlanganyelwe ngokomthetho?!

Awusebenzisi i-PEP8 noma i-gofmt?

Izilimi eziningi zinohlelo olujwayelekile, olwamukelekile lokufometha. Ku-Python lena yi-PEP8. Ku-Go - gofmt. I-Terraform inezayo: terraform fmt. Kujabulele impilo yakho!

Ingabe uzosebenzisa i-React ngaphandle kokwazi i-JavaScript?

Amamojula e-Terraform angenza ingxenye ethile yengqalasizinda eyinkimbinkimbi oyidalayo ibe lula, kodwa lokhu akusho ukuthi ngeke ukwazi ukuyilungisa nhlobo. Ingabe ufuna ukusebenzisa i-Terraform ngendlela efanele ngaphandle kokuqonda izinsiza? Ulahliwe: isikhathi sizodlula, futhi awusoze wazi iTerraform.

Ingabe ubhala ikhodi ngama-singleton noma umjovo wokuncika?

Umjovo wokuncika kuwumkhuba owaziwayo ongcono kakhulu wokuthuthukiswa kwesofthiwe futhi ukhethwa ngaphezu kwama-singleton. Kuwusizo kanjani lokhu ku-Terraform? Ngibone amamojula e-Terraform ancike esimweni esikude. Esikhundleni sokubhala amamojula abuyisa isimo esikude, bhala imojuli ethatha amapharamitha. Bese udlulisela le mingcele kumojuli.

Ingabe imitapo yolwazi yakho yenza izinto eziyishumi kahle noma into eyodwa enkulu?

Imitapo yolwazi esebenza kahle kakhulu yileyo egxile emsebenzini owodwa ewenza kahle kakhulu. Esikhundleni sokubhala amamojula amakhulu e-Terraform azama ukwenza yonke into ngesikhathi esisodwa, yakha izingxenye zawo ezenza into eyodwa kahle. Bese uwahlanganisa njengoba kudingeka.

Uzenza kanjani izinguquko kumalabhulali ngaphandle kokusebenzisana emuva?

Imojuli evamile ye-Terraform, njengomtapo wezincwadi ojwayelekile, idinga ukuthi ngandlela thize ixhumane nezinguquko kubasebenzisi ngaphandle kokuhlehla ihambisane. Kuyacasula uma lezi zinguquko zenzeka emitapo yolwazi, futhi kuyacasula njengoba kwenziwa izinguquko ezingahambisani nokuhlehlela emuva kumamojula e-Terraform. Kunconywa ukusebenzisa amathegi we-git kanye ne-semver uma usebenzisa amamojula e-Terraform.

Ingabe isevisi yakho yokukhiqiza isebenza kukhompuyutha ephathekayo noma esikhungweni sedatha?

I-Hashicorp inamathuluzi afana ifu le-terraform ukusebenzisa i-terraform yakho. Lezi zinsizakalo ezibekwe endaweni eyodwa zenza kube lula ukuphatha, ukuhlola, kanye nokugunyaza izinguquko ze-terraform.

Awuzibhali izivivinyo?

Onjiniyela bayaqaphela ukuthi ikhodi idinga ukuhlolwa, kodwa bona ngokwabo bavame ukukhohlwa ngokuhlola lapho besebenza ne-Terraform. Ngengqalasizinda, lokhu kugcwele izikhathi zokukhohlisa. Iseluleko sami ukuthi “uhlole” noma “udale izitaki zesibonelo” usebenzisa amamojula angasetshenziswa ngendlela efanele ukuze ahlolwe ngesikhathi se-CI/CD.

Terraform kanye microservices

Ukuphila nokufa kwezinkampani ezincane zesevisi kuncike ejubaneni, ekusungulweni okusha, nasekuphazamisekeni kwama-workstacks amasha e-microservice.

Isici esivame kakhulu esibi esihlobene nezakhiwo ze-microservice, futhi esingenakuqedwa, sihlobene nomsebenzi, hhayi ikhodi. Uma ucabanga nge-Terraform njengendlela yokwenza kuphela uhlangothi lwengqalasizinda lwezakhiwo ze-microservices, lapho-ke uphuthelwa izinzuzo zangempela zohlelo. Manje sekuvele konke kufana nekhodi.

Source: www.habr.com

Engeza amazwana