Tha a bhith a’ riochdachadh bun-structair mar chòd ann an cruth teacsa a ghabhas ath-aithris na chleachdadh sìmplidh as fheàrr airson siostaman nach eil feumach air fìdhlearachd le luchagan. Tha ainm aig a’ chleachdadh seo -
A’ dèanamh coimeas eadar eòlas le Terraform agus CloudFormation
Mus tig thu gu
Terraform uamhasach
Bathar-bog beta
Chan eil Terraform eadhon air dreach 1.0 a leigeil ma sgaoil fhathast, agus tha sin na adhbhar math gun a bhith ga chleachdadh. Tha e air atharrachadh gu mòr bhon a dh’ fheuch mi e mi-fhìn an toiseach, ach air ais an uairsin terraform apply
gu tric a’ briseadh sìos às deidh grunn ùrachaidhean no dìreach às deidh bliadhna no dhà de chleachdadh. Chanainn gu bheil “a h-uile dad eadar-dhealaichte a-nis,” ach... sin a tha a h-uile duine ag ràdh, chan eil? Tha atharrachaidhean ann nach eil co-chosmhail ri dreachan roimhe, ged a tha iad iomchaidh, agus tha e eadhon a’ faireachdainn gur e co-chòrdadh agus tarraingean stòran ghoireasan a-nis na tha a dhìth oirnn. Tha e coltach gu bheil an ionnstramaid air fàs gu math nas fheàrr, ach... :-0
Air an làimh eile, tha AWS air obair mhath a dhèanamh a’ cumail suas co-chòrdalachd air ais. Is dòcha gu bheil seo air sgàth gu bheil na seirbheisean aca gu tric air an deuchainn gu mionaideach taobh a-staigh na buidhne agus dìreach an uairsin, air an ath-ainmeachadh, air am foillseachadh. Mar sin is e fo-aithris a th’ ann an “dh’ fheuch iad gu cruaidh. Tha e uamhasach duilich a bhith a’ cumail co-chòrdalachd air ais le APIan airson siostam cho measgaichte agus cho iom-fhillte ri AWS. Bu chòir do dhuine sam bith a dh’ fheumadh APIan poblach a chumail a tha air an cleachdadh cho farsaing ‘s a tha iad tuigsinn cho duilich sa tha e sin a dhèanamh airson uimhir de bhliadhnaichean. Ach chan eil giùlan CloudFormation, nam chuimhne, air atharrachadh a-riamh thar nam bliadhnaichean.
Coinnich ris a' chas... is e peilear a th' ann
Cho fad ‘s as aithne dhomh, cuir às don ghoireas taobh a-muigh Chan eil e comasach stac CloudFormation bhon stac CF agad. Tha an aon rud fìor le Terraform. Leigidh e leat na goireasan a th’ ann mu thràth a thoirt a-steach don stac agad. Faodar a ràdh gu bheil an gnìomh iongantach, ach le cumhachd mòr thig uallach mòr. Cha leig thu leas ach goireas a chur ris a' chruaich, agus fhad 's a tha thu ag obair leis a' chruaich agad, chan urrainn dhut an goireas seo a sguabadh às no atharrachadh. Aon latha chaidh e air ais. Aon latha air Twitch, thug cuideigin a-steach gun fhiosta buidheann tèarainteachd AWS cuideigin eile a-steach don stac Terraform aca fhèin fhad ‘s nach robh iad suas ri mì-rùn sam bith. Chuir mi a-steach grunn òrdughan agus ... chaidh a’ bhuidheann tèarainteachd (còmhla ri trafaic a-steach) à sealladh.
Terraform Sàr-mhath
Ath-bheothachadh bho stàitean neo-choileanta
Aig amannan bidh CloudFormation a ’fàiligeadh gluasad gu tur bho aon stàit gu stàit eile. Aig an aon àm, feuchaidh e ri tilleadh chun an fhear roimhe. Tha e duilich nach eil seo an-còmhnaidh comasach. Faodaidh e a bhith uamhasach eagallach a bhith a’ deasbad na thachair nas fhaide air adhart - chan eil fios agad am bi CloudFormation toilichte gu bheil e air a sheacadh - eadhon dìreach airson a chàradh. Co-dhiù am bi e comasach tilleadh chun na stàite a bh ’ann roimhe, chan eil fios aige ciamar a cho-dhùineas e agus, gu bunaiteach, bidh e a’ crochadh airson uairean a ’feitheamh ri mìorbhail.
Tha Terraform, air an làimh eile, buailteach faighinn air ais bho eadar-ghluasadan air fàiligeadh mòran nas gràsmhoire agus a’ tabhann innealan deasbaid adhartach.
Atharraichean nas soilleire air staid sgrìobhainnean
“Ceart gu leòr, luchd-cothromachaidh, tha thu ag atharrachadh. Ach ciamar?"
- einnseanair iomagaineach, deiseil gus am putan “gabhail ris” a bhrùthadh.
Aig amannan feumaidh mi cuid de làimhseachadh a dhèanamh leis an neach-cothromachaidh luchdan anns a ’chruach CloudFormation, leithid cuir ri àireamh puirt no atharrachadh buidheann tèarainteachd. Tha taisbeanaidhean ClouFormation ag atharrachadh gu dona. Bidh mi, air prìneachan is snàthadan, a’ toirt sùil dhùbailte air an fhaidhle yaml deich tursan gus dèanamh cinnteach nach do chuir mi às do rud sam bith a tha riatanach agus nach do chuir mi dad neo-riatanach ris.
Tha Terraform tòrr nas soilleire a thaobh seo. Uaireannan tha e eadhon ro shoilleir (leugh: neònach). Gu fortanach, tha an dreach as ùire a 'toirt a-steach taisbeanadh atharrachaidhean nas fheàrr gus am faic thu a-nis dè dìreach a tha ag atharrachadh.
Sùbailteachd
Sgrìobh bathar-bog air ais.
Gus a chuir gu sgiobalta, is e am feart as cudromaiche de bhathar-bog fad-ùine an comas atharrachadh gu atharrachadh. Sgrìobh bathar-bog sam bith air ais. Mar as trice rinn mi mearachdan le bhith a’ gabhail seirbheis “sìmplidh”, agus an uairsin a’ tòiseachadh air a h-uile càil a chuir a-steach do aon chruach CloudFormation no Terraform. Agus gu dearbh, mìosan às deidh sin chaidh innse gun robh mi air a h-uile dad a thuigsinn ceàrr, agus gu dearbh cha robh an t-seirbheis sìmplidh! Agus a-nis feumaidh mi dòigh air choireigin cruach mhòr a bhriseadh gu pàirtean beaga. Nuair a bhios tu ag obair le CloudFormation, chan urrainnear seo a dhèanamh ach le bhith ag ath-chruthachadh a’ chruach a th’ ann mar-thà, agus cha bhith mi a’ dèanamh seo leis na stòran-dàta agam. Air an làimh eile, rinn Terraform e comasach an stac a sgaradh agus a bhriseadh sìos gu pàirtean nas lugha a bha furasta a thuigsinn.
Modalan ann an git
Tha e mòran nas fhasa còd Terraform a cho-roinn thairis air grunn chruachan na bhith a’ roinneadh còd CloudFormation. Le Terraform, faodaidh tu do chòd a chuir ann an stòr git agus faighinn thuige le bhith a’ cleachdadh smachd dreach semantach. Faodaidh duine sam bith aig a bheil cothrom air an stòras seo an còd co-roinnte ath-chleachdadh. Is e S3 an aon rud aig CloudFormation, ach chan eil na h-aon bhuannachdan aige, agus chan eil adhbhar ann carson a bu chòir dhuinn git a thrèigsinn airson S3 idir.
Dh’ fhàs a’ bhuidheann agus ràinig an comas air stacan cumanta a cho-roinn ìre èiginneach. Tha Terraform a’ dèanamh seo uile furasta agus nàdarra, ach bheir CloudFormation ort leum tro chearcaill mus urrainn dhut rudeigin mar seo obrachadh.
Gnìomhan mar chòd
“Nì sinn sgrìobhadh dheth agus ceart gu leòr.”
- innleadair 3 bliadhna mus deach am baidhsagal Terraform a chruthachadh.
Nuair a thig e gu leasachadh bathar-bog, chan e dìreach còd a th’ ann an Go no prògram Java.
Còd mar Chòd
Tha bun-structair ann cuideachd air a bheil e ag obair.
Bun-structar mar Chòd
Ach cò às a tha i? Ciamar sùil a chumail air? Càite a bheil do chòd a’ fuireach? A bheil feum aig luchd-leasachaidh air cead-inntrigidh?
Gnìomhan mar chòd
Chan eil a bhith nad leasaiche bathar-bog dìreach a’ ciallachadh còd a sgrìobhadh.
Chan e AWS an aon fhear: is dòcha gu bheil thu a’ cleachdadh solaraichean eile. SignalFx, PagerDuty no Github. Is dòcha gu bheil frithealaiche Jenkins a-staigh agad airson CI / CD no deas-bhòrd Grafana a-staigh airson sgrùdadh. Tha Infra as Code air a thaghadh airson diofar adhbharan, agus tha gach fear a cheart cho cudromach airson a h-uile càil co-cheangailte ri bathar-bog.
Nuair a bha mi ag obair aig Twitch, luathaich sinn seirbheisean taobh a-staigh siostaman measgaichte freumhaichte Amazon agus AWS. Chuir sinn a-mach agus thug sinn taic do dh’ iomadh meanbh-sheirbheisean, ag àrdachadh chosgaisean obrachaidh. Chaidh na còmhraidhean rudeigin mar seo:
- Я: Damn, is e sin tòrr ghluasadan gus faighinn thairis air aon microservice. Feumaidh mi an sgudal seo a chleachdadh gus cunntas AWS a chruthachadh (chaidh sinn gu cunntasan 2 air adhart meanbh-sheirbheis), an uairsin am fear seo airson rabhaidhean a stèidheachadh, am fear seo airson stòr còd, agus am fear seo airson liosta post-d, agus an uairsin am fear seo ...
- Stiùir: Sgriobaidh sinn e agus ceart gu leòr.
- Я: Ceart gu leòr, ach atharraichidh an sgriobt fhèin. Bidh feum againn air dòigh gus dèanamh cinnteach gu bheil na gizmos Amazon sin uile ùraichte.
- Stiùir: Tha e glè mhath. Agus sgrìobhaidh sinn sgriobt airson seo.
- Я: Sgoinneil! Agus is dòcha gum feum an sgriobt fhathast crìochan a shuidheachadh. An gabh e riutha?
- Stiùir: Leig leis a thoirt far an tèid e!
- Я: Faodaidh am pròiseas atharrachadh agus thèid co-fhreagarrachd air ais a chall. Bidh feum air seòrsa de smachd dreach semantach.
- Stiùir: Deagh bheachd!
- Я: Faodar innealan atharrachadh le làimh, taobh a-staigh an eadar-aghaidh cleachdaiche. Feumaidh sinn dòigh air seo a sgrùdadh agus a chàradh.
…3 bliadhna air ais:
- Stiùir: Agus fhuair sinn terraform.
Is e moraltachd na sgeòil: fiù 's ma tha thu ceann thairis air sàilean anns a h-uile dad Amazon, tha thu fhathast a’ cleachdadh rudeigin nach ann bho AWS, agus tha stàite aig na seirbheisean sin a chleachdas cànan rèiteachaidh gus an staid sin a chumail ann an sioncranachadh.
Cruth-tìre modalan CloudFormation lambda vs git
Is e lambda fuasgladh CloudFormation air cùis loidsig àbhaisteach. Le lambda faodaidh tu a
Tha cuimhne agam aon uair ‘s gu robh mi airson cleachdadh canary a chruthachadh airson àrainneachd Elastic Beanstalk le cothromachadh luchdan clasaigeach. Is e an rud as fhasa a dhèanamh dàrna cleachdadh a dhèanamh airson an EB ri taobh na h-àrainneachd cinneasachaidh, ga thoirt ceum nas fhaide air adhart: a’ cothlamadh a’ bhuidheann cleachdadh canary fèin-sgèile leis an cleachdadh LB a-steach don àrainneachd cinneasachaidh. Agus leis gu bheil Terraform a’ cleachdadh
Bidh e a 'lorg drift nas fheàrr
Dèan cinnteach gu bheil an fhìrinn a rèir dùil.
Le Terraform tha dubhan cuairt-beatha fada nas adhartaiche agad airson lorg drifidh. Mar eisimpleir, cuir a-steach an àithne
CDK agus àm ri teachd CloudFormation
Tha CloudFormation duilich a riaghladh aig ìrean mòra, tar-bhun-structair. Thathas ag aithneachadh mòran de na duilgheadasan sin agus tha feum aig an inneal air rudan mar
Gus nach dèan Terraform briseadh dùil
Is e seo “bun-structar mar chòd”, agus chan e “mar theacsa”.
Bha a’ chiad bheachd agam air Terraform caran dona. Tha mi a’ smaoineachadh nach do thuig mi an dòigh-obrach. Bidh cha mhòr a h-uile innleadair gu neo-eisimeileach ga fhaicinn mar chruth teacsa a dh’ fheumar a thionndadh gu bhith na bhun-structar a tha thu ag iarraidh. NA DÈANAMH SEO SEO.
Tha fìrinn leasachadh bathar-bog math cuideachd a’ buntainn ri Terraform.
Tha mi air mòran chleachdaidhean fhaicinn air an gabhail gus còd math a chruthachadh air an leigeil seachad ann an Terraform. Tha thu air a bhith ag ionnsachadh airson bliadhnaichean gus a bhith nad phrògramadair math. Na leig seachad an t-eòlas seo dìreach air sgàth gu bheil thu ag obair le Terraform. Tha fìrinnean deagh leasachadh bathar-bog a’ buntainn ri Terraform.
Ciamar nach urrainnear an còd a chlàradh?
Tha mi air stacan mòra Terraform fhaicinn gun sgrìobhainnean idir idir. Ciamar a sgrìobhas tu còd air duilleagan - gun sgrìobhainnean sam bith? Cuir a-steach sgrìobhainnean a tha a’ mìneachadh do chuid còd Terraform (cuideam air an fhacal "còd"), carson a tha an earrann seo cho cudromach, agus dè a nì thu.
Ciamar as urrainn dhuinn seirbheisean a bha uaireigin mar aon phrìomh () gnìomh mòr a chleachdadh?
Tha mi air stacan Terraform gu math toinnte fhaicinn air an taisbeanadh mar aon mhodal. Carson nach cleachd sinn bathar-bog san dòigh seo? Carson a tha sinn a 'roinn ghnìomhan mòra gu feadhainn nas lugha? Tha na h-aon fhreagairtean a’ buntainn ri Terraform. Ma tha am modal agad ro mhòr, feumaidh tu a bhriseadh sìos gu modalan nas lugha.
Nach eil do chompanaidh a’ cleachdadh leabharlannan?
Chunnaic mi mar a bha innleadairean, a’ snìomh pròiseact ùr a’ cleachdadh Terraform, gu gòrach a’ dèanamh leth-bhreacan mòra de phròiseactan eile a-steach don fheadhainn aca fhèin, agus an uairsin a’ dol còmhla riutha gus an do thòisich e ag obair. Am biodh tu ag obair mar seo le còd “sabaid” sa chompanaidh agad? Chan eil sinn dìreach a’ cleachdadh leabharlannan. Tha,
Nach eil thu a’ cleachdadh PEP8 no gofmt?
Tha sgeama cruth àbhaisteach aig a’ mhòr-chuid de chànanan ris an deach gabhail. Ann am Python is e seo PEP8. Ann an Go - gofmt. Tha a chuid fhèin aig Terraform: terraform fmt
. Tlachd a ghabhail air airson do shlàinte!
Am bi thu a’ cleachdadh React gun eòlas air JavaScript?
Faodaidh modalan terraform cuid den bhun-structar iom-fhillte a chruthaicheas tu a dhèanamh nas sìmplidhe, ach chan eil seo a 'ciallachadh nach urrainn dhut a bhith ag obair leis idir. A bheil thu airson Terraform a chleachdadh gu ceart gun a bhith a’ tuigsinn ghoireasan? Tha thu do-chreidsinneach: thèid ùine seachad, agus cha dèan thu maighistir gu bràth air Terraform.
A bheil thu a’ còdadh le singletons no stealladh eisimeileachd?
Tha in-stealladh eisimeileachd na chleachdadh aithnichte airson leasachadh bathar-bog agus b’ fheàrr leis seach singletons. Ciamar a tha seo feumail ann an Terraform? Tha mi air modalan Terraform fhaicinn a tha an urra ri staid iomallach. An àite a bhith a 'sgrìobhadh mhodalan a tha a' faighinn air ais stàite iomallach, sgrìobh modal a bheir crìochan. Agus an uairsin cuir na crìochan sin chun mhodal.
Am bi na leabharlannan agad a’ dèanamh deich rudan gu math no aon rud math?
Is e na leabharlannan as fheàrr an fheadhainn a tha ag amas air aon ghnìomh a nì iad glè mhath. An àite a bhith a 'sgrìobhadh mhodalan Terraform mòra a bhios a' feuchainn ri a h-uile càil a dhèanamh aig an aon àm, tog pàirtean dhiubh a nì aon rud gu math. Agus an uairsin cuir còmhla iad mar a dh 'fheumar.
Ciamar a nì thu atharrachaidhean air leabharlannan gun cho-fhreagarrachd air ais?
Feumaidh modal Terraform cumanta, mar leabharlann àbhaisteach, atharrachaidhean a chuir an cèill do luchd-cleachdaidh gun a bhith co-chòrdail air ais. Tha e neònach nuair a thachras na h-atharrachaidhean sin ann an leabharlannan, agus tha e a cheart cho neònach nuair a thèid atharrachaidhean nach eil co-chosmhail air ais a dhèanamh ann am modalan Terraform. Thathas a’ moladh tagaichean git agus semver a chleachdadh nuair a bhios tu a’ cleachdadh mhodalan Terraform.
A bheil an t-seirbheis riochdachaidh agad a’ ruith air do laptop no ann an ionad dàta?
Tha innealan mar Hashicorp
Nach sgrìobh thu deuchainnean?
Tha innleadairean ag aithneachadh gum feumar an còd a dhearbhadh, ach bidh iad fhèin gu tric a’ dìochuimhneachadh mu dheuchainnean nuair a bhios iad ag obair le Terraform. Airson bun-structair, tha seo làn de amannan cunnartach. Is e mo chomhairle cruachan “deuchainn” no “eisimpleirean a chruthachadh” a’ cleachdadh mhodalan a ghabhas cleachdadh gu ceart airson deuchainn rè CI/CD.
Terraform agus microservices
Tha beatha agus bàs chompanaidhean meanbh-sheirbheisean an urra ri astar, ùr-ghnàthachadh agus buaireadh stòran-obrach microservices ùra.
Tha an taobh àicheil as cumanta co-cheangailte ri ailtireachd microservice, agus nach gabh a chuir às, co-cheangailte ris an obair, chan e an còd. Ma smaoinicheas tu air Terraform mar dhòigh air dìreach taobh bun-structair ailtireachd microservices a dhèanamh fèin-ghluasadach, tha thu a’ call a-mach air fìor bhuannachdan an t-siostaim. A-nis tha e mar-thà
Source: www.habr.com