Ị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 -
Tụnyere ahụmịhe na Terraform na CloudFormation
Tupu abị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.
Koodu dị ka koodu
Enwekwara akụrụngwa nke ọ na-arụ ọrụ na 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?
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
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
Ọ na-achọpụta mkpagharị nke ọma
Gbaa mbọ hụ na eziokwu dabara na atụmanya.
Site na Terraform ị nwere nko ogologo ndụ dị elu maka nchọpụta mkpagharị. Dịka ọmụmaatụ, itinye iwu ahụ
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
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,
Ị 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
Ị 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ị
isi: www.habr.com