Si na Terraform gbanwee gaa na CloudFormation - wee kwara ụta ya

Ịnọchite anya akụrụngwa dị ka koodu n'ụdị ederede enwere ike ikwugharị bụ omume kachasị mma maka sistemụ anaghị achọ iji oke. Omume a nwere aha - Akụrụngwa dị ka Koodu, na ruo ugbu a enwere ngwaọrụ abụọ ewu ewu iji mejuputa ya, ọkachasị na AWS: Terraform и Fgwé ojii.

Si na Terraform gbanwee gaa na CloudFormation - wee kwara ụta ya
Tụnyere ahụmịhe na Terraform na CloudFormation

Tupu abịa tuwichi (ọ bụ.) Amazon Jr.) Arụrụ m ọrụ n'otu mmalite ma jiri Terraform mee ihe ruo afọ atọ. N'ebe ọhụrụ, ejikwara m Terraform na ike m niile, mgbe ahụ, ụlọ ọrụ ahụ kwadoro mgbanwe na ihe niile a la Amazon, gụnyere CloudFormation. M ji ịdị uchu zụlitere omume kacha mma maka ha abụọ, ma ejirila ngwaọrụ abụọ ahụ rụọ ọrụ siri ike, na-arụ ọrụ n'ọtụtụ ebe. Ka oge na-aga, mgbe m tụlechara echiche nke ịkwaga na Terraform gaa na CloudFormation, enwere m obi ike na Terraform nwere ike bụrụ nhọrọ kacha mma maka nzukọ a.

Terraform jọgburu onwe ya

Ngwa ngwa beta

Terraform ewepụtabeghị ụdị 1.0, nke bụ ezigbo ihe kpatara na ị gaghị eji ya. Ọ gbanwere nke ukwuu kemgbe m nwara ya n'onwe m, mana laa azụ n'oge ahụ terraform apply na-adakarị mgbe ọtụtụ mmelite ma ọ bụ naanị mgbe afọ ole na ole ejirichara. M ga-ekwu na "ihe niile dị iche ugbu a," ma ... nke ahụ bụ ihe onye ọ bụla yiri ka ọ na-ekwu, ọ dịghị? Enwere mgbanwe ndị na-adabaghị na nsụgharị ndị gara aga, ọ bụ ezie na ha kwesịrị ekwesị, na ọ na-adịkwa ka syntax na abstractions nke ụlọ ahịa ihe onwunwe ugbu a bụ ihe anyị chọrọ. Ngwa dị ka ọ na-akawanye mma, mana... :-0

N'aka nke ọzọ, AWS emeela ezigbo ọrụ na-ejigide ndakọrịta azụ. Nke a bụ ma eleghị anya n'ihi na a na-anwale ọrụ ha nke ọma n'ime nzukọ ahụ, naanị mgbe ahụ ka a na-ebipụta aha ya. Ya mere, "ha gbalịsiri ike" bụ okwu ekwesighi. Idokwa ndakọrịta azụ na API maka sistemụ dị iche iche yana mgbagwoju anya dịka AWS siri ike nke ukwuu. Onye ọ bụla nke na-edobe API ọha nke a na-eji eme ihe n'ọtụtụ ebe kwesịrị ịghọta otú ọ siri sie ike ime ya ruo ọtụtụ afọ. Mana omume nke CloudFormation, na ebe nchekwa m, agbanwebeghị kemgbe ọtụtụ afọ.

Zute ụkwụ...ọ bụ mgbọ

Dị ka m maara, hichapụ akụrụngwa ahụ onye ozo Nchịkọta CloudFormation sitere na nchịkọta CF gị agaghị ekwe omume. Otú ahụ ka ọ dịkwa na Terraform. Ọ na-enye gị ohere ibubata akụrụngwa dị adị n'ime nchịkọta gị. Enwere ike ikwu na ọrụ ahụ dị ịtụnanya, mana ike dị ukwuu na-abịa nnukwu ọrụ. Naanị ị ga-agbakwunye akụrụngwa na nchịkọta, ma mgbe ị na-arụ ọrụ na nchịkọta gị, ịnweghị ike ihichapụ ma ọ bụ gbanwee akụrụngwa a. Otu ụbọchị ọ kwụsịrị. Otu ụbọchị na Twitch, mmadụ butere ndị otu nchekwa AWS onye ọzọ na mberede n'ime ngwugwu Terraform nke ha na-enweghị ihe ọjọọ ọ bụla. Etinyere m ọtụtụ iwu na ... otu nchekwa (yana okporo ụzọ na-abata) furu efu.

Terraform dị mma

Iweghachite site na steeti ezughị ezu

Mgbe ụfọdụ, CloudFormation anaghị agbanwe kpamkpam site n'otu steeti gaa na nke ọzọ. N'otu oge ahụ, ọ ga-agbalị ịlaghachi na nke gara aga. Ọ bụ ihe nwute na nke a anaghị ekwe omume mgbe niile. Ọ nwere ike na-atụ egwu ịmegharị ihe mere mgbe emechara - ị maghị ma CloudFormation ga-enwe obi ụtọ na a na-egwu ya - ọbụlagodi naanị iji dozie ya. Ma ọ ga-ekwe omume ịlaghachi na steeti gara aga, ọ maghị n'ezie ka esi ekpebi ma, na ndabara, kwụgidere ruo ọtụtụ awa na-echere ọrụ ebube.

N'aka nke ọzọ, Terraform na-agbake site na mgbanwe ndị dara ada karịa nke ọma ma na-enye ngwaọrụ nbipu dị elu.

Mgbanwe doo anya na steeti akwụkwọ

“Ọ dị mma, ibu balancer, ị na-agbanwe. Ma olee otú?"

- engineer na-echegbu onwe, dị njikere ịpị bọtịnụ "nabata".

Mgbe ụfọdụ ọ dị m mkpa iji njikwa ibu na-eme mgbanwe ụfọdụ na nchịkọta CloudFormation, dị ka ịgbakwunye nọmba ọdụ ụgbọ mmiri ma ọ bụ gbanwee otu nchekwa. Ngosipụta clouFormation na-agbanwe nke ọma. M, na ntụtụ na agịga, lelee yaml ugboro abụọ ugboro iri iji jide n'aka na ehichabeghị m ihe ọ bụla dị mkpa na etinyeghị m ihe ọ bụla na-adịghị mkpa.

Terraform pụtara ìhè karịa na nke a. Mgbe ụfọdụ ọ na-egosipụtakwa nke ọma (gụọ: na-ewe iwe). Ọ dabara nke ọma, ụdị kachasị ọhụrụ gụnyere ngosipụta mgbanwe ka mma ka ị nwee ike ịhụ kpọmkwem ihe na-agbanwe.

Ike mgbanwe

Dee software azụ.

N'ikwu ya n'ezoghị ọnụ, njirimara kachasị mkpa nke ngwanro dị ogologo bụ ikike ime mgbanwe maka mgbanwe. Dee software ọ bụla azụ. Ọtụtụ mgbe, m na-emehie ihe site na iji ọrụ "dị mfe", wee malite ịkwanye ihe niile n'ime otu CloudFormation ma ọ bụ Terraform stack. Na n'ezie, ọnwa ole na ole ka e mesịrị, e kpughere na m ghọtara ihe niile na-ezighị ezi, na ọrụ adịghị mfe n'ezie! Ma ugbu a, m kwesịrị n'ụzọ ụfọdụ agbajikwa nnukwu tojupụtara n'ime obere components. Mgbe ị na-arụ ọrụ na CloudFormation, nke a nwere ike ime naanị site na ịmaliteghachi nchịkọta dị adị, anaghịkwa m eme nke a na ọdụ data m. N'aka nke ọzọ, Terraform mere ka o kwe omume ịwasa ngwongwo ahụ wee gbarie ya n'ime obere akụkụ ndị nwere ike ịghọta.

Modul dị na git

Ịkekọrịta koodu Terraform n'ofe ọtụtụ nchịkọta dị mfe karịa ịkekọrịta koodu CloudFormation. Site na Terraform, ị nwere ike tinye koodu gị na ebe nchekwa git wee nweta ya site na iji njikwa ụdị semantic. Onye ọ bụla nwere ohere ịnweta ebe nchekwa a nwere ike iji koodu ekekọrịtara ọzọ. CloudFormation dakọtara bụ S3, mana ọ nweghị otu uru ahụ, ọ nweghịkwa ihe kpatara anyị ga-eji hapụ git maka S3 ma ọlị.

Nzukọ a tolitere na ike ịkekọrịta nchịkọta nkịtị ruru ọkwa dị oke egwu. Terraform na-eme ka nke a dị mfe na eke, ebe CloudFormation ga-eme ka ị na-amaba na hoops tupu ị nweta ihe dị ka nke a na-arụ ọrụ.

Arụ ọrụ dị ka koodu

"Ka anyị dee ya na ọ dị mma."

- onye injinia afọ 3 tupu imepụta igwe kwụ otu ebe Terraform.

A bịa na mmepe ngwanrọ, Go ma ọ bụ mmemme Java abụghị naanị koodu.

Si na Terraform gbanwee gaa na CloudFormation - wee kwara ụta ya
Koodu dị ka koodu

Enwekwara akụrụngwa nke ọ na-arụ ọrụ na ya.

Si na Terraform gbanwee gaa na CloudFormation - wee kwara ụta ya
Akụrụngwa dị ka Koodu

Ma olee ebe o si bịa? Kedu ka esi nyochaa ya? Ebee ka koodu gị bi? Ndị mmepe chọrọ ikike ịnweta?

Si na Terraform gbanwee gaa na CloudFormation - wee kwara ụta ya
Arụ ọrụ dị ka koodu

Ịbụ onye nrụpụta ngwanrọ apụtaghị naanị ide koodu.

AWS abụghị naanị: ị nwere ike iji ndị na-eweta ndị ọzọ. SignalFx, PagerDuty ma ọ bụ Github. Ikekwe ị nwere ihe nkesa Jenkins dị n'ime maka CI/CD ma ọ bụ dashboard Grafana dị n'ime maka nlekota. A na-ahọrọ Infra dị ka Koodu maka ebumnuche dị iche iche, nke ọ bụla dịkwa mkpa maka ihe ọ bụla metụtara ngwanrọ.

Mgbe m rụrụ ọrụ na Twitch, anyị kwalitere ọrụ n'ime Amazon agwakọta na sistemụ AWS. Anyị chụpụrụ ma kwado ọtụtụ microservices, na-abawanye ụgwọ ọrụ. Mkparịta ụka ahụ wee dị ka nke a:

  • Я: Daalụ, nke ahụ bụ ọtụtụ mmegharị ahụ iji mechie otu microservice. M ga-eji ihe mkpofu a mepụta akaụntụ AWS (anyị gara na akaụntụ 2 microservice), mgbe ahụ, nke a maka ịtọ ọkwa ọkwa, nke a maka ebe nchekwa koodu, na nke a maka ndepụta email, wee nke a ...
  • Ndu: Ka anyị dee ya na ọ dị mma.
  • Я: Ọ dị mma, mana edemede ahụ n'onwe ya ga-agbanwe. Ọ ga-adị mkpa ka e nwee ụzọ ị ga-esi lelee na gizmos Amazon ndị a arụnyere n'ime bụ ihe ọhụrụ.
  • Ndu: Dị mma. Anyị ga-edekwa edemede maka nke a.
  • Я: Ọ dị mma! Ma eleghị anya, ọ ka ga-adị mkpa ka ederede paramita ahụ. Ọ̀ ga-anabata ha?
  • Ndu: Ya buru ebe ọ nāga!
  • Я: Usoro nwere ike ịgbanwe na ndakọrịta azụ ga-efunahụ. A ga-achọrịrị ụdị njikwa ụdị nsụgharị ụfọdụ.
  • Ndu: Ezigbo echiche!
  • Я: Enwere ike iji aka gbanwee ngwaọrụ, n'ime interface onye ọrụ. Anyị ga-achọ ụzọ iji lelee ma mezie nke a.

…3 afọ mgbe e mesịrị:

  • Ndu: Na anyị nwetara terraform.

Omume nke akụkọ bụ: ọ bụrụgodị na ị isi n'elu ikiri ụkwụ na ihe niile Amazon, ị ka na-eji ihe na-abụghị nke AWS, na ọrụ ndị a nwere steeti na-eji asụsụ nhazi iji mee ka ọnọdụ ahụ dị na mmekọrịta.

CloudFormation lambda vs git modul terraform

lambda bụ ngwọta CloudFormation maka okwu mgbagha omenala. Na lambda ị nwere ike mepụta macros ma ọ bụ onye ọrụ akụ. Ụzọ a na-ewebata mgbagwoju anya ndị ọzọ na-adịghị na nsụgharị Terraform's semantic version of git modules. Maka m, nsogbu kachasị njọ bụ ijikwa ikike maka ndị ọrụ lambdas ndị a (ma ndị a bụ ọtụtụ akaụntụ AWS). Nsogbu ọzọ dị mkpa bụ "Gịnị bịara mbụ, ọkụkọ ka ọ bụ akwa?" nsogbu: ọ metụtara koodu lambda. Ọrụ a n'onwe ya bụ akụrụngwa na koodu, ya onwe ya chọrọ nlekota na mmelite. Ntu ikpeazụ n'ime igbe ozu bụ ihe isi ike n'imelite mgbanwe koodu lambda n'ụzọ semantically; anyị kwesịkwara ijide n'aka na omume nchịkọta na-enweghị iwu kpọmkwem agbanweghị n'etiti ọsọ.

Echetere m otu oge m chọrọ ịmepụta mbugharị canary maka gburugburu Elastic Beanstalk nwere ihe nrịbama ibu mara mma. Ihe kachasị mfe ịme ga-eme ka ntinye nke abụọ maka EB na-esote ebe mmepụta ihe, na-eme ya n'ihu: ijikọta ndị na-ebugharị canary auto-scaling na ntinye LB n'ime ebe mmepụta ihe. Ma ebe ọ bụ na Terraform na-eji ASG beantalk dị ka nkwubi okwu, nke a ga-achọ ahịrị koodu 4 ọzọ na Terraform. Mgbe m jụrụ ma enwere ihe ngwọta yiri ya na CloudFormation, ha rụtụrụ m aka na ebe nchekwa git dum nwere pipeline na-ebuga ya na ihe niile, ihe niile maka ihe 4 na-adịghị mma nke koodu Terraform nwere ike ime.

Ọ na-achọpụta mkpagharị nke ọma

Gbaa mbọ hụ na eziokwu dabara na atụmanya.

Nchọpụta akpafu bụ ọrụ siri ike dị ka njirimara koodu n'ihi na ọ na-enyere aka hụ na eziokwu dabara na atụmanya. Ọ dị na CloudFormation na Terraform. Mana ka nchịkọta mmepụta ahụ na-etolite, ịchọ mkpagharị na CloudFormation mepụtara nchọpụta ụgha na-abawanye ụba.

Site na Terraform ị nwere nko ogologo ndụ dị elu maka nchọpụta mkpagharị. Dịka ọmụmaatụ, itinye iwu ahụ leghara_mgbanwe ozugbo na nkọwa ọrụ ECS ma ọ bụrụ na ịchọrọ ileghara mgbanwe anya na nkọwa ọrụ akọwapụtara na-enweghị ileghara mgbanwe na ntinye ECS gị niile.

CDK na ọdịnihu nke CloudFormation

CloudFormation siri ike ijikwa na nnukwu ihe nrụzi akụrụngwa. A na-amata ọtụtụ n'ime ihe isi ike ndị a na ngwá ọrụ ahụ chọrọ ihe ndị dị ka ihe-cdk, Usoro maka ịkọwapụta akụrụngwa igwe ojii na koodu na-agba ọsọ site na AWS CloudFormation. Ọ ga-atọ ụtọ ịhụ ihe ọdịnihu ga-abụ maka aws-cdk, mana ọ ga-esiri ya ike ịsọ mpi na ike ndị ọzọ nke Terraform; iji weta CloudFormation ruo ugbu a, a ga-achọ mgbanwe mgbanwe ụwa.

Yabụ na Terraform anaghị emechu ihu

Nke a bụ "akụrụngwa dị ka koodu", ọ bụghị "dị ka ederede".

Echiche mbụ m nwere banyere Terraform adịghị mma. Echere m na aghọtachaghị m ụzọ ahụ. Ihe fọrọ nke nta ka ọ bụrụ ndị injinia niile na-aghọta ya n'amaghị ama dị ka usoro ederede nke kwesịrị ịgbanwe ka ọ bụrụ akụrụngwa achọrọ. Emela ya otú a.

Eziokwu nke ezigbo mmepe ngwanrọ na-emetụtakwa Terraform.

Ahụla m ka a nakweere ọtụtụ omume iji mepụta koodu dị mma na-eleghara anya na Terraform. Ị mụọla akwụkwọ ruo ọtụtụ afọ ka ị bụrụ ezigbo mmemme. Akwụsịla ahụmịhe a naanị n'ihi na ị na Terraform na-arụ ọrụ. Eziokwu nke ezigbo mmepe ngwanrọ metụtara Terraform.

Kedu ka enweghị ike idekọ koodu ahụ?

Ahụla m nnukwu ngwugwu Terraform na-enweghị akwụkwọ ọ bụla. Kedu ka ị ga-esi dee koodu na ibe - na-enweghị akwụkwọ ọ bụla? Tinye akwụkwọ na-akọwa nke gị koodu Terraform (mesiri ike na okwu "koodu"), ihe kpatara nkebi a ji dị mkpa, na ihe ị na-eme.

Kedu otu anyị nwere ike isi weghachi ọrụ ndị bụbu otu nnukwu ọrụ ()?

Ahụla m ngwugwu Terraform dị mgbagwoju anya ka ewepụtara dị ka otu modul. Kedu ihe kpatara na anyị anaghị ebubata ngwanrọ otu a? Gịnị mere anyị ji kewaa nnukwu ọrụ n'ime ndị nta? Otu azịza ahụ metụtara Terraform. Ọ bụrụ na modul gị buru ibu, ịkwesịrị ịkụda ya n'ime obere modul.

Ụlọ ọrụ gị anaghị eji ụlọ akwụkwọ?

Ahụla m ka ndị injinia, na-eji Terraform arụ ọrụ ọhụrụ, jiri nzuzu detuo nnukwu mpempe akwụkwọ site na ọrụ ndị ọzọ n'ime nke ha, wee soro ha tinye aka ruo mgbe ọ malitere ịrụ ọrụ. Ị ga-arụ ọrụ dị ka nke a na koodu "agha" na ụlọ ọrụ gị? Anyị anaghị eji ụlọ akwụkwọ naanị. Ee, ọ bụghị ihe niile ga-abụ ụlọ akwụkwọ, ma ebee ka anyị nọ na-enweghị òkè ọba akwụkwọ na ụkpụrụ?!

Ị naghị eji PEP8 ma ọ bụ gofmt?

Ọtụtụ asụsụ nwere ụkpụrụ nhazi usoro anabatara. Na Python nke a bụ PEP8. Na Go - gofmt. Terraform nwere nke ya: terraform fmt. Nwee obi ụtọ maka ahụike gị!

Ị ga-eji React na-amaghị Javascript?

Modul Terraform nwere ike ime ka akụkụ ụfọdụ nke akụrụngwa dị mgbagwoju anya ị mepụtara dị mfe, mana nke a apụtaghị na ị nweghị ike itinye ya na ya ma ọlị. Chọrọ iji Terraform n'ụzọ ziri ezi na-aghọtaghị akụrụngwa? A ga-ebibi gị: oge ​​ga-aga, ị gaghị amụtakwa Terraform.

Ị na-eji singleton ma ọ bụ ịgba ọgwụ dabere?

Ịgba ọgwụ dabere bụ omume kacha mma maka mmepe ngwanrọ ma bụrụkwa nke a na-ahọrọ karịa otu otu. Kedu ka nke a si baa uru na Terraform? Ahụla m modul Terraform nke dabere na steeti dịpụrụ adịpụ. Kama ide modul na-eweghachite steeti dịpụrụ adịpụ, dee modul nke na-ewe paramita. Ma nyefee parampat ndị a na modul.

Ụlọ akwụkwọ gị ọ na-eme ihe iri nke ọma ma ọ bụ otu ihe dị mma?

Ọbá akwụkwọ ndị na-arụ ọrụ kacha mma bụ ndị na-elekwasị anya n'otu ọrụ ha na-arụ nke ọma. Kama ide nnukwu modul Terraform na-agbalị ime ihe niile n'otu oge, wuo akụkụ nke ha na-eme otu ihe nke ọma. Ma jikọta ha dị ka ọ dị mkpa.

Kedu otu esi eme mgbanwe na ọba akwụkwọ na-enweghị ndakọrịta azụ?

Modul Terraform a na-ahụkarị, dị ka ọbá akwụkwọ oge niile, kwesịrị izigara ndị ọrụ ozi n'ụzọ ụfọdụ mgbanwe na-enweghị ndakọrịta azụ azụ. Ọ na-ewe iwe mgbe mgbanwe ndị a na-eme n'ọbá akwụkwọ, ọ na-ewekwa iwe mgbe a na-eme mgbanwe na-adabaghị azụ na modul Terraform. A na-atụ aro ka iji git mkpado na semver mgbe ị na-eji modul Terraform.

Ọrụ mmepụta gị ọ na-arụ ọrụ na laptọọpụ gị ma ọ bụ na ebe data?

Hashicorp nwere ngwaọrụ dị ka ígwé ojii terraform iji mee ka terraform gị rụọ ọrụ. Ọrụ ndị a etinyere n'etiti na-eme ka ọ dị mfe ijikwa, nyochaa, na ịkwado mgbanwe terraform.

Ị naghị ede ule?

Ndị injinia ghọtara na koodu ahụ kwesịrị ịnwale, mana ha onwe ha na-echefukarị nnwale mgbe ha na Terraform na-arụ ọrụ. Maka akụrụngwa, nke a jupụtara na oge aghụghọ. Ndụmọdụ m bụ ka “nnwale” ma ọ bụ “mepụta ihe atụ” site na iji modul nke enwere ike ibunye nke ọma maka nnwale n'oge CI/CD.

Terraform na microservices

Ndụ na ọnwụ nke ụlọ ọrụ microservices na-adabere n'ọsọ, ihe ọhụrụ, na nkwụsị nke ngwa ọrụ microservice ọhụrụ.

Akụkụ kachasị njọ na-ejikọta ya na microservice architectures, na nke a na-apụghị ikpochapụ, metụtara ọrụ ahụ, ọ bụghị koodu. Ọ bụrụ na ị na-eche banyere Terraform dị ka naanị ụzọ iji rụọ ọrụ naanị akụkụ akụrụngwa nke microservices architecture, mgbe ahụ ị na-efunahụ ezigbo uru nke sistemụ ahụ. Ugbu a ọ dịlarị ihe niile dị ka koodu.

isi: www.habr.com

Tinye a comment