Sampuli katika Terraform ili kukabiliana na machafuko na utaratibu wa mikono. Maxim Kostrikin (Ixtens)

Sampuli katika Terraform ili kukabiliana na machafuko na utaratibu wa mikono. Maxim Kostrikin (Ixtens)

Inaweza kuonekana kuwa watengenezaji wa Terraform hutoa mbinu bora zinazofaa za kufanya kazi na miundombinu ya AWS. Kuna nuance tu. Baada ya muda, idadi ya mazingira huongezeka, kila mmoja na sifa zake. Takriban nakala ya rundo la programu inaonekana katika eneo jirani. Na msimbo wa Terraform unahitaji kunakiliwa kwa uangalifu na kuhaririwa kulingana na mahitaji mapya au kufanywa kuwa kitambaa cha theluji.

Ripoti yangu kuhusu mifumo katika Terraform ili kukabiliana na machafuko na utaratibu wa mwongozo kwenye miradi mikubwa na mirefu.

Video:

Sampuli katika Terraform ili kukabiliana na machafuko na utaratibu wa mikono. Maxim Kostrikin (Ixtens)

Nina umri wa miaka 40, nimekuwa kwenye IT kwa miaka 20. Nimekuwa nikifanya kazi kwa Ixtens kwa miaka 12. Tunajishughulisha na maendeleo yanayoendeshwa na ecommerce. Na nimekuwa nikifanya mazoezi ya DevOps kwa miaka 5.

Sampuli katika Terraform ili kukabiliana na machafuko na utaratibu wa mikono. Maxim Kostrikin (Ixtens)

Hadithi yangu itakuwa juu ya uzoefu wangu katika mradi katika kampuni ambayo sitasema jina, kujificha nyuma ya makubaliano ya kutofichua.

Nambari kwenye slaidi zimeonyeshwa ili kuelewa ukubwa wa mradi. Na kila kitu ambacho nitasema baadaye kinahusiana na Amazon.

Sampuli katika Terraform ili kukabiliana na machafuko na utaratibu wa mikono. Maxim Kostrikin (Ixtens)

Nilijiunga na mradi huu miaka 4 iliyopita. Na urekebishaji wa miundombinu ulikuwa unaendelea kwa sababu mradi ulikuwa umekua. Na mifumo iliyotumiwa haikufaa tena. Na kutokana na ukuaji wote uliopangwa wa mradi huo, ilikuwa ni lazima kuja na kitu kipya.

Asante kwa Matvey, ambaye jana alituambia kilichotokea huko Dodo Pizza. Hiki ndicho kilichotokea hapa miaka 4 iliyopita.

Watengenezaji walikuja na kuanza kutengeneza nambari ya miundombinu.

Sababu za wazi zaidi kwa nini hii ilihitajika ilikuwa wakati wa soko. Ilikuwa ni lazima kuhakikisha kuwa timu ya DevOps haikuwa kizuizi wakati wa uchapishaji. Na miongoni mwa mambo mengine, Terraform na Puppet zilitumika katika ngazi ya kwanza kabisa.

Sampuli katika Terraform ili kukabiliana na machafuko na utaratibu wa mikono. Maxim Kostrikin (Ixtens)

Terraform ni mradi wa chanzo huria kutoka HashiCorp. Na kwa wale ambao hawajui hata hii ni nini, slaidi chache zinazofuata.

Sampuli katika Terraform ili kukabiliana na machafuko na utaratibu wa mikono. Maxim Kostrikin (Ixtens)

Miundombinu kama msimbo inamaanisha kuwa tunaweza kuelezea miundombinu yetu na kuuliza baadhi ya roboti kuhakikisha kuwa tunapokea rasilimali ambazo tulielezea.

Kwa mfano, tunahitaji mashine ya kawaida. Tutaelezea na kuongeza vigezo kadhaa vinavyohitajika.

Sampuli katika Terraform ili kukabiliana na machafuko na utaratibu wa mikono. Maxim Kostrikin (Ixtens)

Baada ya hayo, tutasanidi ufikiaji wa Amazon kwenye koni. Na tutauliza mpango wa Terraform. Mpango wa Terraform utasema: "Sawa, tunaweza kufanya mambo haya kwa rasilimali yako." Na angalau rasilimali moja itaongezwa. Na hakuna mabadiliko yanayotarajiwa.

Sampuli katika Terraform ili kukabiliana na machafuko na utaratibu wa mikono. Maxim Kostrikin (Ixtens)

Mara tu unapofurahishwa na kila kitu, unaweza kuuliza Terraform kutuma maombi na Terraform itakuundia mfano, na utapokea mashine pepe kwenye wingu lako.

Sampuli katika Terraform ili kukabiliana na machafuko na utaratibu wa mikono. Maxim Kostrikin (Ixtens)

Zaidi mradi wetu unaendelea. Tunaongeza mabadiliko kadhaa hapo. Tunaomba mifano zaidi, tunaongeza maingizo 53.

Sampuli katika Terraform ili kukabiliana na machafuko na utaratibu wa mikono. Maxim Kostrikin (Ixtens)

Na tunarudia. Tafadhali panga. Tunaona mabadiliko gani yamepangwa. Tunatuma maombi. Na hivi ndivyo miundombinu yetu inavyokua.

Terraform hutumia kitu kinachoitwa faili za serikali. Hiyo ni, mabadiliko yote ambayo huenda kwa Amazon yanahifadhiwa kwenye faili ambapo kwa kila rasilimali uliyoelezea, kuna rasilimali zinazofanana ambazo ziliundwa huko Amazon. Kwa hivyo, wakati maelezo ya rasilimali yanabadilika, Terraform anajua haswa ni nini kinahitaji kubadilishwa huko Amazon.

Sampuli katika Terraform ili kukabiliana na machafuko na utaratibu wa mikono. Maxim Kostrikin (Ixtens)

Faili hizi za serikali awali zilikuwa faili tu. Na tulizihifadhi huko Git, ambayo ilikuwa ngumu sana. Mtu alisahau kila wakati kufanya mabadiliko, na migogoro mingi ikaibuka.

Sasa inawezekana kutumia backend, i.e. Terraform imeainishwa kwenye ndoo gani na kwa ufunguo gani faili ya serikali inapaswa kuhifadhiwa. Na Terraform yenyewe itachukua huduma ya kupata faili hii ya serikali, kufanya uchawi wote na kurejesha matokeo ya mwisho.

Sampuli katika Terraform ili kukabiliana na machafuko na utaratibu wa mikono. Maxim Kostrikin (Ixtens)

Miundombinu yetu inakua. Hapa kuna nambari yetu. Na sasa hatutaki tu kuunda mashine pepe, tunataka kuwa na mazingira ya majaribio.

Sampuli katika Terraform ili kukabiliana na machafuko na utaratibu wa mikono. Maxim Kostrikin (Ixtens)

Terraform hukuruhusu kuunda kitu kama moduli, ambayo ni kuelezea kitu kimoja kwenye folda fulani.

Sampuli katika Terraform ili kukabiliana na machafuko na utaratibu wa mikono. Maxim Kostrikin (Ixtens)

Na, kwa mfano, katika kujaribu, piga simu moduli hii na upate kitu sawa na kama tumetekeleza Terraform kuomba kwenye moduli yenyewe. Kwa ajili ya kupima kutakuwa na kanuni hii.

Sampuli katika Terraform ili kukabiliana na machafuko na utaratibu wa mikono. Maxim Kostrikin (Ixtens)

Kwa ajili ya uzalishaji, tunaweza kutuma baadhi ya mabadiliko huko, kwa sababu katika majaribio hatuhitaji matukio makubwa; katika uzalishaji, matukio makubwa yanafaa tu.

Sampuli katika Terraform ili kukabiliana na machafuko na utaratibu wa mikono. Maxim Kostrikin (Ixtens)

Na kisha nitarudi kwenye mradi. Ilikuwa kazi ngumu, miundombinu iliyopangwa ilikuwa kubwa sana. Na ilikuwa ni lazima kwa namna fulani kuweka kanuni zote ili iwe rahisi kwa kila mtu: kwa wale wanaofanya matengenezo kwenye kanuni hii na kwa wale wanaofanya mabadiliko. Na ilipangwa kuwa msanidi programu yeyote anaweza kwenda kurekebisha miundombinu kama inavyohitajika kwa sehemu yake ya jukwaa.

Huu ni mti wa saraka ambao unapendekezwa na HashiCorp yenyewe ikiwa una mradi mkubwa na inafanya akili kugawanya miundombinu yote katika vipande vidogo, na kuelezea kila kipande kwenye folda tofauti.

Kuwa na maktaba ya kina ya rasilimali, unaweza kupiga takriban kitu sawa katika kupima na katika uzalishaji.

Sampuli katika Terraform ili kukabiliana na machafuko na utaratibu wa mikono. Maxim Kostrikin (Ixtens)

Kwa upande wetu, hii haikufaa kabisa, kwa sababu safu ya majaribio ya watengenezaji au ya majaribio ilibidi ipatikane kwa njia rahisi zaidi. Lakini sikutaka kupitia folda na kuzitumia katika mlolongo unaohitajika, na kuwa na wasiwasi kwamba hifadhidata itaongezeka, na kisha mfano unaotumia hifadhidata hii ungeongezeka. Kwa hiyo, majaribio yote yalizinduliwa kutoka kwa folda moja. Modules sawa ziliitwa pale, lakini kila kitu kilifanyika kwa kukimbia moja.

Terraform inachukua huduma tegemezi zote. Na daima huunda rasilimali katika mlolongo ili uweze kupata anwani ya IP, kwa mfano, kutoka kwa mfano mpya, na kupata anwani hii ya IP katika rekodi ya njia53.

Kwa kuongeza, jukwaa ni kubwa sana. Na kuzindua safu ya majaribio, hata ikiwa kwa saa moja, hata ikiwa kwa saa 8, ni kazi ghali sana.

Na tulibadilisha jambo hili kiotomatiki. Na kazi ya Jenkins ilituruhusu kuendesha safu. Ndani yake, ilikuwa ni lazima kuzindua ombi la kuvuta na mabadiliko ambayo msanidi anataka kupima, taja chaguo zote muhimu, vipengele, na vipimo. Ikiwa anataka kupima utendaji, basi anaweza kuchukua matukio zaidi. Ikiwa anahitaji tu kuangalia kwamba fomu fulani inafungua, basi anaweza kuanza kwa mshahara wa chini. Na pia onyesha ikiwa nguzo inahitajika au la, nk.

Na kisha Jenkins alisukuma hati ya ganda, ambayo ilibadilisha msimbo kidogo kwenye folda ya Terraform. Niliondoa faili zisizo za lazima na kuongeza faili zinazohitajika. Na kisha kwa kukimbia moja kwa Terraform kuomba stack iliinuliwa.

Na kisha kulikuwa na hatua zingine ambazo sitaki kuingia.

Sampuli katika Terraform ili kukabiliana na machafuko na utaratibu wa mikono. Maxim Kostrikin (Ixtens)

Kutokana na ukweli kwamba kwa ajili ya majaribio tulihitaji chaguo zaidi kidogo kuliko katika uzalishaji, ilibidi tutengeneze nakala za moduli ili katika nakala hizi tuweze kuongeza vipengele vilivyohitajika kwa ajili ya majaribio tu.

Na ikawa kwamba katika kupima ninataka kujaribu mabadiliko hayo ambayo hatimaye yataingia kwenye uzalishaji. Lakini kwa kweli, kitu kimoja kilijaribiwa, na tofauti kidogo ilitumiwa katika uzalishaji. Na kulikuwa na mapumziko madogo katika muundo kwamba katika uzalishaji mabadiliko yote yalitumiwa na timu ya uendeshaji. Na wakati mwingine ikawa kwamba mabadiliko hayo ambayo yalipaswa kwenda kutoka kwa kupima hadi uzalishaji yalibakia katika toleo jingine.

Kwa kuongezea, kulikuwa na shida kwamba huduma mpya iliongezwa, ambayo ilikuwa tofauti kidogo na ile iliyopo tayari. Na badala ya kurekebisha moduli iliyopo, tulipaswa kufanya nakala yake na kuongeza mabadiliko muhimu.

Kimsingi, Terraform sio lugha halisi. Hili ni tamko. Ikiwa tunahitaji kutangaza kitu, basi tunatangaza. Na yote hufanya kazi.

Wakati fulani, wakati ombi langu moja la kuvuta lilipojadiliwa, mmoja wa wenzangu alisema kuwa hakuna haja ya kuunda vipande vya theluji. Nilijiuliza anamaanisha nini. Kuna ukweli wa kisayansi kwamba hakuna theluji mbili zinazofanana ulimwenguni, zote ni tofauti kidogo. Na mara tu niliposikia hii, mara moja nilihisi uzito kamili wa nambari ya Terraform. Kwa sababu ilipohitajika kuhama kutoka toleo hadi toleo, Terraform ilihitaji mabadiliko ya msururu wa kuvunja, yaani, msimbo haukubaliani tena na toleo linalofuata. Na tulilazimika kufanya ombi la kuvuta, ambalo lilifunika karibu nusu ya faili kwenye miundombinu, ili kuleta miundombinu kwa toleo linalofuata la Terraform.

Na baada ya theluji kama hiyo kuonekana, nambari zote za Terraform ambazo tuligeuza kuwa rundo kubwa la theluji.

Kwa msanidi wa nje ambaye yuko nje ya operesheni, hii haijalishi sana kwake, kwa sababu alifanya ombi la kuvuta, rasilimali yake ilianza. Na hiyo ndiyo yote, sio wasiwasi wake tena. Na timu ya DevOps, ambayo inahakikisha kuwa kila kitu kiko sawa, inahitajika kufanya mabadiliko haya yote. Na gharama ya mabadiliko haya iliongezeka sana, sana na kila theluji ya ziada.

Sampuli katika Terraform ili kukabiliana na machafuko na utaratibu wa mikono. Maxim Kostrikin (Ixtens)

Kuna hadithi kuhusu jinsi mwanafunzi kwenye semina anachora miduara miwili kamili na chaki ubaoni. Na mwalimu anashangaa jinsi aliweza kuchora vizuri bila dira. Mwanafunzi huyo anajibu: β€œNi rahisi sana, nilitumia miaka miwili jeshini nikigeuza mashine ya kusagia nyama.”

Na kati ya miaka minne ambayo nimekuwa nikihusika katika mradi huu, nimekuwa nikifanya Terraform kwa takriban miaka miwili. Na, kwa kweli, nina hila kadhaa, ushauri fulani juu ya jinsi ya kurahisisha nambari ya Terraform, fanya kazi nayo kama lugha ya programu na kupunguza mzigo kwa watengenezaji ambao lazima wasasishe nambari hii.

Sampuli katika Terraform ili kukabiliana na machafuko na utaratibu wa mikono. Maxim Kostrikin (Ixtens)

Jambo la kwanza ningependa kuanza nalo ni Symlinks. Terraform ina msimbo mwingi unaorudiwa. Kwa mfano, wito kwa mtoa huduma karibu kila mahali ambapo tunaunda kipande cha miundombinu ni sawa. Na ni mantiki kuiweka kwenye folda tofauti. Na popote mtoa huduma anahitajika kutengeneza Symlink kwa faili hii.

Sampuli katika Terraform ili kukabiliana na machafuko na utaratibu wa mikono. Maxim Kostrikin (Ixtens)

Kwa mfano, katika uzalishaji unatumia jukumu la kudhania, ambalo hukuruhusu kupata haki za ufikiaji kwa baadhi ya akaunti ya nje ya Amazon. Na baada ya kubadilisha faili moja, zote zilizobaki kwenye mti wa rasilimali zitakuwa na haki zinazohitajika ili Terraform ijue ni sehemu gani ya Amazon ya kufikia.

Sampuli katika Terraform ili kukabiliana na machafuko na utaratibu wa mikono. Maxim Kostrikin (Ixtens)

Symlink hushindwa wapi? Kama nilivyosema, Terraform ina faili za serikali. Na wao ni baridi sana. Lakini jambo ni kwamba Terraform inaanzisha backend katika nafasi ya kwanza kabisa. Na hawezi kutumia vigeuzo vyovyote katika vigezo hivi; lazima viandikwe kila mara kwa maandishi.

Na matokeo yake, mtu anapotengeneza rasilimali mpya, anakili baadhi ya msimbo kutoka kwenye folda nyingine. Na anaweza kufanya makosa kwa ufunguo au kwa ndoo. Kwa mfano, yeye hufanya kitu cha sandbox kutoka sanduku la mchanga, na kisha kuifanya katika uzalishaji. Na hivyo inaweza kugeuka kuwa ndoo katika uzalishaji itatumika kutoka sanduku la mchanga. Bila shaka, wataipata haraka. Itawezekana kurekebisha hili kwa namna fulani, lakini hata hivyo ni kupoteza muda na, kwa kiasi fulani, rasilimali.

Sampuli katika Terraform ili kukabiliana na machafuko na utaratibu wa mikono. Maxim Kostrikin (Ixtens)

Je, tunaweza kufanya nini baadaye? Kabla ya kufanya kazi na Terraform, unahitaji kuianzisha. Wakati wa kuanzishwa, Terraform inapakua programu-jalizi zote. Wakati fulani waligawanyika kutoka kwa monolith hadi usanifu zaidi wa huduma ndogo. Na daima unahitaji kufanya Terraform init ili iweze kuvuta moduli zote, programu-jalizi zote.

Na unaweza kutumia hati ya ganda, ambayo, kwanza, inaweza kupata anuwai zote. Hati ya ganda haina kikomo kwa njia yoyote. Na, pili, njia. Ikiwa tunatumia kila wakati njia iliyo kwenye hazina kama ufunguo wa faili ya serikali, basi, ipasavyo, kosa hapa litaondolewa.

Sampuli katika Terraform ili kukabiliana na machafuko na utaratibu wa mikono. Maxim Kostrikin (Ixtens)

Ninaweza kupata wapi data? JSON faili. Terraform hukuruhusu kuandika miundombinu sio tu katika hcl (Lugha ya Usanidi ya HashiCorp), lakini pia katika JSON.

JSON ni rahisi kusoma kutoka kwa hati ya ganda. Ipasavyo, unaweza kuweka faili ya usanidi na ndoo mahali fulani. Na tumia ndoo hii katika nambari ya Terraform na kwenye hati ya ganda ili kuanzishwa.

Sampuli katika Terraform ili kukabiliana na machafuko na utaratibu wa mikono. Maxim Kostrikin (Ixtens)

Kwa nini ni muhimu kuwa na ndoo ya Terraform? Kwa sababu kuna kitu kama faili za hali ya mbali. Hiyo ni, ninapoinua rasilimali fulani, ili kuwaambia Amazon: "Tafadhali ongeza mfano," ninahitaji kutaja vigezo vingi vinavyohitajika.

Na vitambulisho hivi huhifadhiwa kwenye folda nyingine. Na ninaweza kwenda na kusema: "Terraform, tafadhali kimbilia kwenye faili ya serikali ya nyenzo hiyo hiyo na unipatie vitambulisho hivi." Na kwa hivyo muunganisho fulani unaonekana kati ya mikoa au mazingira tofauti.

Si mara zote inawezekana kutumia faili ya hali ya mbali. Kwa mfano, uliunda VPC kwa mkono. Na nambari ya Terraform inayounda VPC inaunda VPC tofauti hivi kwamba itachukua muda mrefu sana na itabidi urekebishe moja hadi nyingine, ili uweze kutumia hila ifuatayo.

Sampuli katika Terraform ili kukabiliana na machafuko na utaratibu wa mikono. Maxim Kostrikin (Ixtens)

Hiyo ni, tengeneza moduli ambayo inaonekana kutengeneza VPC na, kama ilivyokuwa, inakupa vitambulisho, lakini kwa kweli kuna faili iliyo na maadili ngumu ambayo inaweza kutumika kuunda mfano sawa.

Sampuli katika Terraform ili kukabiliana na machafuko na utaratibu wa mikono. Maxim Kostrikin (Ixtens)

Sio lazima kila wakati kuhifadhi faili ya serikali kwenye wingu. Kwa mfano, wakati wa kupima modules, unaweza kutumia uanzishaji wa nyuma, ambapo faili itahifadhiwa tu kwenye diski wakati wa kupima.

Sampuli katika Terraform ili kukabiliana na machafuko na utaratibu wa mikono. Maxim Kostrikin (Ixtens)

Sasa kidogo kuhusu kupima. Unaweza kujaribu nini katika Terraform? Labda mengi yanawezekana, lakini nitazungumza juu ya mambo haya 4.

HashiCorp ina ufahamu wa jinsi msimbo wa Terraform unapaswa kuumbizwa. Na Terraform fmt hukuruhusu kufomati msimbo unaohariri kulingana na imani hii. Ipasavyo, majaribio lazima yaangalie ikiwa uumbizaji unalingana na usia wa HashiCorp, ili hakuna haja ya kubadilisha eneo la mabano, n.k.

Sampuli katika Terraform ili kukabiliana na machafuko na utaratibu wa mikono. Maxim Kostrikin (Ixtens)

Inayofuata ni uthibitisho wa Terraform. Inafanya kidogo zaidi ya kuangalia syntax - ala, ikiwa mabano yote yameunganishwa. Nini muhimu hapa? Miundombinu yetu ni pana sana. Kuna baba nyingi tofauti ndani yake. Na katika kila unahitaji kuendesha Terraform kuhalalisha.

Ipasavyo, ili kuharakisha majaribio, tunaendesha michakato mingi kwa sambamba kwa kutumia sambamba.

Sambamba ni jambo la baridi sana, tumia.

Lakini kila wakati Terraform inapoanzisha, huenda kwa HashiCorp na kuuliza, β€œNi matoleo ya hivi punde zaidi ya programu-jalizi? Na programu-jalizi niliyo nayo kwenye kashe - ni sahihi au sio sahihi?" Na hii ilipungua kwa kila hatua.

Sampuli katika Terraform ili kukabiliana na machafuko na utaratibu wa mikono. Maxim Kostrikin (Ixtens)

Ukiiambia Terraform mahali programu-jalizi ziko, basi Terraform itasema: "Sawa, labda hiki ndicho kitu kipya zaidi kilichopo. Sitaenda popote, nitaanza mara moja kuthibitisha nambari yako ya Terraform."

Sampuli katika Terraform ili kukabiliana na machafuko na utaratibu wa mikono. Maxim Kostrikin (Ixtens)

Ili kujaza folda na programu-jalizi zinazohitajika, tuna nambari rahisi sana ya Terraform ambayo inahitaji tu kuanzishwa. Hapa, bila shaka, unahitaji kutaja watoa huduma wote ambao kwa namna fulani wanashiriki katika nambari yako, vinginevyo Terraform itasema: "Sijui mtoa huduma fulani kwa sababu hayuko kwenye kache."

Sampuli katika Terraform ili kukabiliana na machafuko na utaratibu wa mikono. Maxim Kostrikin (Ixtens)

Ifuatayo ni mpango wa Terraform. Kama nilivyosema, maendeleo ni ya mzunguko. Tunafanya mabadiliko kwenye kanuni. Na kisha unahitaji kujua ni mabadiliko gani yamepangwa kwa miundombinu.

Na wakati miundombinu ni kubwa sana, unaweza kubadilisha moduli moja, kurekebisha mazingira ya mtihani au eneo fulani maalum na kuvunja jirani. Kwa hiyo, mpango wa Terraform unapaswa kufanywa kwa miundombinu yote na kuonyesha mabadiliko gani yamepangwa.

Unaweza kufanya hivi kwa busara. Kwa mfano, tuliandika hati ya Python ambayo husuluhisha utegemezi. Na kulingana na kile kilichobadilishwa: moduli ya Terraform au sehemu maalum tu, hufanya mipango kwa folda zote zinazotegemea.

Mipango ya Terraform lazima ifanywe kwa ombi. Angalau ndivyo tunavyofanya.

Kwa kweli, ni vizuri kufanya vipimo kwa kila mabadiliko, kwa kila ahadi, lakini mipango ni jambo la gharama kubwa. Na katika ombi la kuvuta tunasema, "Tafadhali nipe mipango." Roboti inaanza. Na hutuma maoni au ambatisha mipango yote inayotarajiwa kutoka kwa mabadiliko yako.

Mpango ni kitu ghali kabisa. Inachukua muda kwa sababu Terraform inakwenda Amazon na kuuliza, β€œJe, tukio hili bado lipo? Je, kipengele hiki kiotomatiki kina vigezo sawa?" Na ili kuharakisha hili, unaweza kutumia kigezo kama vile refresh=false. Hii inamaanisha kuwa Terraform itapakua hali kutoka kwa S3. Na itaamini kuwa jimbo hilo litalingana kabisa na kile kilichopo Amazon.

Mpango kama huo wa Terraform huenda haraka zaidi, lakini serikali lazima ilingane na miundombinu yako, i.e. mahali fulani, wakati fulani uboreshaji wa Terraform lazima uanze. Kuonyesha upya kwa Terraform hufanya hivyo hasa: hali inalingana na kile kilicho katika miundombinu halisi.

Na tunahitaji kuzungumza juu ya usalama. Hapa ndipo tulipopaswa kuanza. Mahali unapoendesha Terraform na Terraform inaendeshwa kwenye miundombinu yako kuna udhaifu. Hiyo ni, kimsingi unatekeleza nambari. Na ikiwa ombi la kuvuta lina aina fulani ya msimbo mbaya, basi inaweza kutekelezwa kwenye miundombinu ambayo ina ufikiaji mwingi. Kwa hivyo kuwa mwangalifu unapoendesha mpango wa Terraform.

Sampuli katika Terraform ili kukabiliana na machafuko na utaratibu wa mikono. Maxim Kostrikin (Ixtens)

Jambo linalofuata ningependa kuzungumzia ni upimaji wa data ya mtumiaji.

Data ya mtumiaji ni nini? Katika Amazon, tunapounda mfano, tunaweza kutuma barua fulani na mfano - data ya meta. Mfano unapoanza, kawaida wingu init huwa ipo kwenye matukio haya. Cloud init inasoma barua hii na kusema: "Sawa, leo mimi ndiye msawazishaji wa mizigo." Na kwa mujibu wa maagano haya anafanya baadhi ya matendo.

Sampuli katika Terraform ili kukabiliana na machafuko na utaratibu wa mikono. Maxim Kostrikin (Ixtens)

Lakini, kwa bahati mbaya, tunapofanya mpango wa Terraform na Terraform kuomba, data ya mtumiaji inaonekana kama aina hii ya nambari. Hiyo ni, anakutumia hashi tu. Na unachoweza kuangalia katika mpango ni kama kutakuwa na mabadiliko yoyote au kama heshi itabaki vile vile.

Na ikiwa hutazingatia hili, basi faili fulani ya maandishi iliyovunjika inaweza kuishia kwenye Amazon, kwenye miundombinu halisi.

Sampuli katika Terraform ili kukabiliana na machafuko na utaratibu wa mikono. Maxim Kostrikin (Ixtens)

Vinginevyo, wakati wa kutekeleza, unaweza kutaja sio miundombinu yote, lakini kiolezo tu. Na katika msimbo sema: "Tafadhali onyesha kiolezo hiki kwenye skrini yangu." Na kama matokeo, unaweza kupata uchapishaji wa jinsi data yako itakavyoonekana kwenye Amazon.

Sampuli katika Terraform ili kukabiliana na machafuko na utaratibu wa mikono. Maxim Kostrikin (Ixtens)

Chaguo jingine ni kutumia moduli kutoa data ya mtumiaji. Utatumia moduli hii. Unapokea faili kwenye diski. Linganisha na ile ya kumbukumbu. Na kwa hivyo, ikiwa mtu fulani ataamua kusahihisha data ya mtumiaji kidogo, basi vipimo vyako vitasema: "Sawa, kuna mabadiliko hapa na pale - hii ni kawaida."

Sampuli katika Terraform ili kukabiliana na machafuko na utaratibu wa mikono. Maxim Kostrikin (Ixtens)

Jambo linalofuata ningependa kuzungumzia ni Automate Terraform apply.

Bila shaka, inatisha sana kufanya Terraform kuomba moja kwa moja, kwa sababu ni nani anayejua ni mabadiliko gani yamekuja huko na jinsi ya kuharibu miundombinu ya maisha.

Kwa mazingira ya mtihani, hii yote ni ya kawaida. Hiyo ni, kazi ambayo inaunda mazingira ya mtihani ndiyo ambayo watengenezaji wote wanahitaji. Na usemi kama vile "kila kitu kilinifanyia kazi" sio meme ya kuchekesha, lakini dhibitisho kwamba mtu alichanganyikiwa, akainua rundo, na akafanya majaribio kwenye rafu hii. Na alihakikisha kuwa kila kitu kilikuwa sawa na kusema: "Sawa, nambari ambayo ninatoa imejaribiwa."

Katika uzalishaji, sanduku la mchanga na mazingira mengine ambayo ni muhimu zaidi katika biashara, unaweza kutumia baadhi ya rasilimali kwa usalama kabisa kwa sababu haisababishi mtu yeyote kufa. Hizi ni: vikundi vya otomatiki, vikundi vya usalama, majukumu, njia53, na orodha inaweza kuwa kubwa kabisa. Lakini endelea kutazama kinachoendelea, soma ripoti za otomatiki za programu.

Ambapo ni hatari au inatisha kuomba, kwa mfano, ikiwa hizi ni baadhi ya rasilimali zinazoendelea kutoka kwa hifadhidata, basi pokea ripoti kwamba kuna mabadiliko ambayo hayajatekelezwa katika baadhi ya sehemu ya miundombinu. Na mhandisi, chini ya usimamizi, huanza kazi za kuomba au kuifanya kutoka kwa console yake.

Amazon ina kitu kama Kukomesha ulinzi. Na inaweza kulinda katika baadhi ya matukio kutokana na mabadiliko ambayo hayahitajiki kwako. Hiyo ni, Terraform alienda Amazon na kusema: "Ninahitaji kuua mfano huu ili kuunda nyingine." Na Amazon inasema: "Samahani, sio leo. Tunayo ulinzi wa kukomesha."

Sampuli katika Terraform ili kukabiliana na machafuko na utaratibu wa mikono. Maxim Kostrikin (Ixtens)

Na icing kwenye keki ni uboreshaji wa kanuni. Tunapofanya kazi na msimbo wa Terraform, lazima tupitishe idadi kubwa sana ya vigezo kwenye moduli. Hizi ni vigezo ambavyo ni muhimu ili kuunda aina fulani ya rasilimali. Na msimbo unageuka kuwa orodha kubwa za vigezo vinavyohitaji kupitishwa kutoka kwa moduli hadi moduli, kutoka kwa moduli hadi moduli, hasa ikiwa moduli zimewekwa.

Na ni ngumu sana kusoma. Ni vigumu sana kukagua hili. Na mara nyingi sana zinageuka kuwa vigezo vingine vinakaguliwa na sio kile kinachohitajika. Na hii inagharimu muda na pesa kurekebisha baadaye.

Sampuli katika Terraform ili kukabiliana na machafuko na utaratibu wa mikono. Maxim Kostrikin (Ixtens)

Kwa hivyo, ninapendekeza utumie kitu kama paramu ngumu ambayo inajumuisha mti fulani wa maadili. Hiyo ni, unahitaji aina fulani ya folda ambapo unayo maadili yote ambayo ungependa kuwa nayo katika mazingira fulani.

Sampuli katika Terraform ili kukabiliana na machafuko na utaratibu wa mikono. Maxim Kostrikin (Ixtens)

Na kwa kupiga moduli hii, unaweza kupata mti unaozalishwa katika moduli moja ya kawaida, yaani, katika moduli ya kawaida ambayo inafanya kazi sawa kwa miundombinu yote.

Katika moduli hii unaweza kufanya mahesabu kwa kutumia kipengele cha hivi majuzi katika Terraform kama wenyeji. Na kisha, na pato moja, toa parameta ngumu, ambayo inaweza kujumuisha heshi za safu, nk.

Sampuli katika Terraform ili kukabiliana na machafuko na utaratibu wa mikono. Maxim Kostrikin (Ixtens)

Hapa ndipo nilipopata matokeo bora zaidi. Na ningependa kusimulia hadithi kuhusu Columbus. Alipokuwa akitafuta pesa kwa ajili ya msafara wake wa kuigundua India (kama alivyofikiri wakati huo), hakuna aliyemwamini na walidhani haiwezekani. Kisha akasema: β€œHakikisha kwamba yai halianguki.” Mabenki wote, matajiri sana na labda watu wenye akili, walijaribu kwa namna fulani kuweka yai, na iliendelea kuanguka. Kisha Columbus alichukua yai na kulisisitiza kidogo. Ganda lilikunjwa na yai likabaki bila mwendo. Wakasema, "Oh, hiyo ni rahisi sana!" Na Columbus akajibu: "Ndio, ni rahisi sana. Na nitakapofungua India, kila mtu atatumia njia hii ya biashara."

Na nilichokuambia hivi punde labda ni vitu rahisi na visivyo na maana. Na unapojifunza juu yao na kuanza kuzitumia, ni kwa utaratibu wa mambo. Hivyo kuchukua faida. Na ikiwa haya ni mambo ya kawaida kabisa kwako, basi angalau unajua jinsi ya kuweka yai ili isianguke.

Sampuli katika Terraform ili kukabiliana na machafuko na utaratibu wa mikono. Maxim Kostrikin (Ixtens)

Hebu tuangalie:

  • Jaribu kuzuia theluji za theluji. Na vipande vichache vya theluji, utahitaji rasilimali chache kufanya mabadiliko katika miundombinu yako mikubwa.
  • Mabadiliko ya mara kwa mara. Hiyo ni, wakati baadhi ya mabadiliko yanatokea katika kanuni, unahitaji kuleta miundombinu yako katika kufuata mabadiliko haya haraka iwezekanavyo. Haipaswi kuwa na hali ambapo mtu anakuja kuangalia Elasticsearch miezi miwili au mitatu baadaye, hufanya mpango wa Terraform, na kuna kundi la mabadiliko ambayo hakutarajia. Na inachukua muda mwingi kurejesha kila kitu kwa utaratibu.
  • Vipimo na otomatiki. Kadiri msimbo wako unavyofunikwa na majaribio na vipengele, ndivyo unavyokuwa na imani zaidi kwamba unafanya kila kitu kwa usahihi. Na uwasilishaji otomatiki utaongeza imani yako mara nyingi.
  • Msimbo wa mazingira ya majaribio na uzalishaji unapaswa kuwa karibu sawa. Kivitendo, kwa sababu uzalishaji bado ni tofauti kidogo na bado kutakuwa na baadhi ya nuances ambayo kwenda zaidi ya mazingira ya mtihani. Lakini hata hivyo, pamoja na au minus, hii inaweza kuhakikisha.
  • Na ikiwa una nambari nyingi za msimbo wa Terraform na inachukua muda mwingi kusasisha msimbo huu, basi hujachelewa sana kurekebisha tena na kuipata katika hali nzuri.

Sampuli katika Terraform ili kukabiliana na machafuko na utaratibu wa mikono. Maxim Kostrikin (Ixtens)

  • Miundombinu isiyobadilika. Uwasilishaji wa AMI kwa ratiba.
  • Muundo wa route53 wakati una maingizo mengi na unataka yawe katika mpangilio thabiti.
  • Kupambana na viwango vya API. Hapa ndipo Amazon inaposema, "Ni hivyo, siwezi kukubali maombi yoyote zaidi, tafadhali subiri." Na nusu ya ofisi inasubiri hadi iweze kuzindua miundombinu yake.
  • Matukio ya doa. Amazon sio tukio la bei rahisi na matangazo hukuruhusu kuokoa mengi. Na hapo unaweza kuwaambia ripoti nzima kuhusu hilo.
  • Usalama na majukumu ya IAM.
  • Kutafuta rasilimali zilizopotea, wakati una matukio ya asili isiyojulikana huko Amazone, hula pesa. Hata kama matukio yanagharimu $100-150 kwa mwezi, hiyo ni zaidi ya $1 kwa mwaka. Kupata rasilimali kama hizo ni biashara yenye faida.
  • Na matukio yaliyohifadhiwa.

Sampuli katika Terraform ili kukabiliana na machafuko na utaratibu wa mikono. Maxim Kostrikin (Ixtens)

Hiyo yote ni kwangu. Terraform ni nzuri sana, unaitumia. Asante!

maswali

Asante kwa ripoti! Faili yako ya serikali iko katika S3, lakini unawezaje kutatua tatizo kwamba watu kadhaa wanaweza kuchukua faili hii ya serikali na kujaribu kupanua?

Kwanza kabisa, hatuna haraka. Pili, kuna bendera, ambazo tunaripoti kwamba tunafanyia kazi kipande fulani cha msimbo. Hiyo ni, pamoja na ukweli kwamba miundombinu ni kubwa sana, hii haina maana kwamba mtu anatumia kitu mara kwa mara. Na wakati kulikuwa na awamu inayotumika, hii ilikuwa shida; tulihifadhi faili za serikali kwenye Git. Hii ilikuwa muhimu, vinginevyo mtu angetengeneza faili ya serikali, na tulilazimika kuziweka pamoja ili kila kitu kiendelee. Sasa hakuna shida kama hiyo. Kwa ujumla, Terraform ilitatua tatizo hili. Na ikiwa kitu kinabadilika kila wakati, basi unaweza kutumia kufuli, ambayo huzuia ulichosema.

Je, unatumia chanzo huria au biashara?

Hakuna biashara, i.e. kila kitu unaweza kwenda na kupakua bila malipo.

Jina langu ni Stanislav. Nilitaka kufanya nyongeza ndogo. Ulizungumza juu ya huduma ya Amazon ambayo hukuruhusu kufanya mfano usiweze kutekelezwa. Hii pia iko katika Terraform yenyewe; katika kizuizi cha Maisha ya Pili unaweza kubainisha marufuku ya mabadiliko au kupiga marufuku uharibifu.

Muda ulikuwa mdogo. Wazo zuri.

Pia nilitaka kuuliza mambo mawili. Kwanza, ulizungumza juu ya majaribio. Je, ulitumia zana zozote za majaribio? Nilisikia juu ya programu-jalizi ya Jiko la Jaribio. Labda kuna kitu zaidi. Na pia ningependa kuuliza kuhusu Maadili ya Ndani. Je, ni tofauti gani kimsingi na Vigezo vya Kuingiza Data? Na kwa nini siwezi kuainisha kitu kupitia Maadili ya Ndani pekee? Nilijaribu kujua mada hii, lakini kwa namna fulani sikuweza kuijua mwenyewe.

Tunaweza kuzungumza kwa undani zaidi nje ya chumba hiki. Zana zetu za majaribio zimejitengenezea yenyewe. Hakuna kitu hapo cha kujaribu. Kwa ujumla, kuna chaguo wakati vipimo vya kiotomatiki huchukua miundombinu mahali fulani, angalia kuwa ni sawa, na kisha kuharibu kila kitu na ripoti kwamba miundombinu yako bado iko katika hali nzuri. Hatuna hii kwa sababu rafu za majaribio zinaendeshwa kila siku. Na hiyo inatosha. Na ikiwa kitu kitaanza kuvunjika, kitaanza kuvunjika bila sisi kukiangalia mahali pengine.

Kuhusu Maadili ya Eneo, hebu tuendeleze mazungumzo nje ya chumba.

Habari! Asante kwa ripoti! Taarifa sana. Ulisema kuwa una aina nyingi za nambari za kuelezea miundombinu. Je, umefikiria kuzalisha nambari hii ya kuthibitisha?

Swali zuri, asante! Jambo ni kwamba tunapotumia miundombinu kama kanuni, tunadhani kwamba tunaangalia kanuni na kuelewa ni miundombinu gani iko nyuma ya kanuni hiyo. Ikiwa nambari itatolewa, basi tunahitaji kufikiria ni nambari gani itatolewa ili kuelewa ni aina gani ya miundombinu itakuwepo. Ama tunatoa msimbo, tuifanye, na kimsingi jambo hilo hilo hufanyika. Kwa hivyo tulifuata njia tuliyoandika, tukaipata. Pamoja na jenereta zilionekana baadaye kidogo tulipoanza kuzitengeneza. Na tayari ilikuwa imechelewa sana kubadilika.

Je! umesikia chochote kuhusu jsonnet?

No

Angalia, hili ni jambo zuri sana. Ninaona kesi maalum ambapo unaweza kuitumia na kutoa muundo wa data.

Jenereta ni nzuri unapokuwa nazo, kama katika utani kuhusu mashine ya kunyoa. Hiyo ni, mara ya kwanza uso ni tofauti, lakini basi kila mtu ana uso sawa. Jenereta hufanya kazi vizuri sana. Lakini, kwa bahati mbaya, nyuso zetu ni tofauti kidogo. Hili ni tatizo.

Angalia tu. Asante!

Jina langu ni Maxim, ninatoka Sberbank. Ulizungumza kidogo kuhusu jinsi ulivyokuwa unajaribu kuleta Terraform kwa sawa na lugha ya programu. Je, si rahisi kutumia Ansible?

Haya ni mambo tofauti sana. Unaweza kuunda rasilimali katika Ansible, na Puppet inaweza kuunda rasilimali katika Amazon. Lakini Terraform imeinuliwa moja kwa moja.

Je! una Amazon pekee?

Sio kwamba tuna Amazon pekee. Karibu tuna Amazon pekee. Lakini kipengele muhimu ni kwamba Terraform anakumbuka. Katika Ansible, ikiwa unasema: "Nipe mifano 5," basi itainua, halafu unasema: "Na sasa ninahitaji 3." Na Terraform itasema: "Sawa, nitaua 2," na Ansible atasema: "Sawa, hapa kuna 3 kwako." Jumla 8.

Habari! Asante kwa ripoti yako! Ilikuwa ya kuvutia sana kusikia kuhusu Terraform. Ningependa mara moja kutoa maoni madogo juu ya ukweli kwamba Terraform bado haina toleo thabiti, kwa hivyo tibu Terraform kwa tahadhari kubwa.

Kijiko kizuri kwa chakula cha jioni. Hiyo ni, ikiwa unahitaji suluhisho, basi wakati mwingine huondoa kile kisicho na msimamo, nk, lakini inafanya kazi na ilitusaidia.

Swali ni hili. Unatumia Remote backend, unatumia S 3. Kwa nini usitumie backend rasmi?

Rasmi?

Wingu la Terraform.

Alionekana lini?

Takriban miezi 4 iliyopita.

Ikiwa ilionekana miaka 4 iliyopita, basi labda ningejibu swali lako.

Tayari kuna kazi iliyojengwa na kufuli, na unaweza kuhifadhi faili ya serikali. Jaribu. Lakini pia sijaijaribu.

Tunasafiri kwa treni kubwa inayotembea kwa mwendo wa kasi. Na huwezi tu kuchukua magari machache na kuyatupa.

Ulizungumza juu ya theluji, kwa nini haukutumia tawi? Kwa nini haikufaulu hivyo?

Mtazamo wetu ni kwamba miundombinu yote iko kwenye hazina moja. Terraform, Puppet, hati zote ambazo kwa namna fulani zinahusiana na hii, zote ziko kwenye hazina moja. Kwa njia hii tunaweza kuhakikisha kuwa mabadiliko ya nyongeza yanajaribiwa moja baada ya jingine. Ikiwa ni rundo la matawi, basi mradi kama huo haungewezekana kudumisha. Miezi sita inapita, na wanatofautiana sana kwamba ni aina fulani ya adhabu. Hii ndio nilitaka kutoroka kabla ya kufikiria tena.

Kwa hivyo haifanyi kazi?

Hii haifanyi kazi hata kidogo.

Kwenye tawi nilikata slaidi ya folda. Hiyo ni, ikiwa unafanya kwa kila stack ya mtihani, kwa mfano, timu A ina folda yake, timu B ina folda yake, basi hii pia haifanyi kazi. Tumeunda msimbo uliounganishwa wa mazingira wa jaribio ambao ulikuwa rahisi kunyumbulika ili kutosheleza kila mtu. Hiyo ni, tulitumikia nambari moja.

Habari! Jina langu ni Yura! Asante kwa ripoti! Swali kuhusu moduli. Unasema unatumia moduli. Je, unatatuaje suala hili ikiwa mabadiliko yamefanywa kwenye sehemu moja ambayo hayaambatani na mabadiliko ya mtu mwingine? Je, kwa namna fulani unabadilisha moduli au unajaribu kuleta mwangaza ili kukidhi mahitaji mawili?

Hili ni shida kubwa ya rundo la theluji. Hivi ndivyo tunavyoteseka wakati mabadiliko fulani yasiyo na hatia yanaweza kuvunja sehemu fulani ya miundombinu. Na hii itaonekana tu baada ya muda mrefu.

Hiyo ni, bado haijatatuliwa?

Unatengeneza moduli za ulimwengu wote. Epuka vipande vya theluji. Na kila kitu kitafanya kazi. Nusu ya pili ya ripoti ni kuhusu jinsi ya kuepuka hili.

Habari! Asante kwa ripoti! Ningependa kufafanua. Nyuma ya pazia kulikuwa na rundo kubwa ambalo nilikuja nalo. Je! Usambazaji wa Puppet na jukumu huunganishwaje?

Data ya mtumiaji.

Hiyo ni, unatemea faili tu na uifanye kwa njia fulani?

Data ya mtumiaji ni kidokezo, i.e. tunapotengeneza mfano wa picha, Daemon huinuka hapo na, akijaribu kujua yeye ni nani, anasoma barua kwamba yeye ni msawazishaji wa mzigo.

Hiyo ni, hii ni aina fulani ya mchakato tofauti ambao hutolewa?

Hatukuizua. Tunaitumia.

Habari! Nina swali tu kuhusu Mtumiaji - data. Ulisema kwamba kuna shida huko, kwamba mtu anaweza kutuma kitu mahali pabaya. Kuna njia fulani ya kuhifadhi data ya mtumiaji kwenye Git hiyo hiyo, ili iwe wazi kila wakati data ya Mtumiaji inarejelea nini?

Tunatengeneza data ya Mtumiaji kutoka kwa kiolezo. Hiyo ni, idadi fulani ya vigezo hutumiwa huko. Na Terraform hutoa matokeo ya mwisho. Kwa hiyo, huwezi tu kuangalia template na kusema nini kitatokea, kwa sababu matatizo yote yanahusiana na ukweli kwamba msanidi anafikiri kwamba anapitisha kamba katika kutofautiana hii, lakini safu hutumiwa huko. Na yeye - bam na mimi - fulani na fulani, fulani-na-fulani, mstari uliofuata, na kila kitu kilivunjika. Ikiwa hii ni rasilimali mpya na mtu huichukua na kuona kwamba kitu haifanyi kazi, basi hutatuliwa haraka. Na ikiwa kikundi hiki cha autoscale kinasasishwa, basi wakati fulani matukio katika kikundi cha autoscale huanza kubadilishwa. Na bang, kitu haifanyi kazi. Inauma.

Inageuka kuwa suluhisho pekee ni kupima?

Ndiyo, unaona tatizo, unaongeza hatua za mtihani hapo. Hiyo ni, matokeo yanaweza pia kujaribiwa. Labda sio rahisi sana, lakini pia unaweza kuweka alama - angalia kuwa data ya Mtumiaji imetundikwa hapa.

Jina langu ni Timur. Ni nzuri sana kwamba kuna ripoti juu ya jinsi ya kupanga vizuri Terraform.

hata sijaanza.

Nadhani labda katika mkutano ujao kutakuwa na. Nina swali rahisi. Kwa nini unaweka thamani katika moduli tofauti badala ya kutumia tfvars, yaani kwa nini moduli iliyo na maadili bora kuliko tfvars?

Hiyo ni, je, niandike hapa (slide: Uzalishaji/mazingira/settings.tf): domain = variable, domain vpcnetwork, variable vpcnetwork na stvars - naweza kupata kitu kimoja?

Hivyo ndivyo tunavyofanya. Tunarejelea moduli ya chanzo cha mpangilio, kwa mfano.

Kimsingi, hii ni tfvars kama hiyo. Tfvars ni rahisi sana katika mazingira ya majaribio. Nina tfvars kwa hali kubwa, kwa ndogo. Na nikatupa faili moja kwenye folda. Na nilipata nilichotaka. Tunapokata miundombinu, tunataka iwezekane kuangalia na kuelewa kila kitu mara moja. Na hivyo inageuka kuwa unahitaji kuangalia hapa, kisha uangalie tfvars.

Je, inawezekana kuwa na kila kitu mahali pamoja?

Ndio, tfvars ni wakati una nambari moja. Na inatumika katika maeneo kadhaa tofauti na nuances tofauti. Kisha ungetupa tfvars na kupata nuances yako. Na sisi ni miundombinu kama kanuni katika hali yake safi. Niliangalia na kuelewa.

Habari! Je, umekumbana na hali ambapo mtoa huduma wa wingu anaingilia ulichotengeneza Terraform? Wacha tuseme tunahariri metadata. Kuna funguo za ssh. Na Google daima huweka metadata yake na funguo zake hapo. Na Terraform daima anaandika kwamba ina mabadiliko. Baada ya kila kukimbia, hata ikiwa hakuna kinachobadilika, anasema kila wakati kwamba atasasisha uwanja huu sasa.

Kwa funguo, lakini ndiyo, sehemu ya miundombinu huathiriwa na jambo hili, yaani Terraform haiwezi kubadilisha chochote. Hatuwezi kubadilisha chochote kwa mikono yetu pia. Tutaishi nayo kwa sasa.

Hiyo ni, umekutana na kitu kama hiki, lakini haujapata chochote, anafanyaje na anafanya mwenyewe?

Kwa bahati mbaya ndiyo.

Habari! Jina langu ni Starkov Stanislav. Barua. ru Group. Je, unatatuaje tatizo la kutengeneza tag kwenye..., unaipitishaje ndani? Kama ninavyoielewa, kupitia Mtumiaji - data ya kutaja jina la mwenyeji, kuweka Puppet? Na sehemu ya pili ya swali. Je, unatatuaje suala hili katika SG, yaani, unapotengeneza SG, mamia ya matukio ya aina moja, ni jina gani sahihi kwao?

Matukio hayo ambayo ni muhimu sana kwetu, tunayataja kwa uzuri. Wale ambao hawahitajiki, kuna kumbuka kwamba hii ni kikundi cha autoscale. Na kwa nadharia unaweza kuipiga chini na kupata mpya.

Kuhusu shida na lebo, hakuna shida kama hiyo, lakini kuna kazi kama hiyo. Na tunatumia vitambulisho sana, sana, kwa sababu miundombinu ni kubwa na ya gharama kubwa. Na tunahitaji kuangalia pesa zinakwenda wapi, kwa hivyo vitambulisho vinaturuhusu kuchambua ni nini kilienda wapi. Na, ipasavyo, utaftaji wa kitu ambacho kinamaanisha pesa nyingi hutumiwa hapa.

Swali lilihusu nini tena?

SG inapounda mamia ya matukio, je, zinahitaji kutofautishwa kwa njia fulani?

Hapana, usifanye. Kwa kila mfano kuna wakala anayeripoti kuwa nina shida. Ikiwa wakala anaripoti, basi wakala anajua kuhusu yeye na, angalau, anwani yake ya IP ipo. Unaweza tayari kukimbia. Pili, tunatumia Consul for Discovery, ambapo Kubernetes haipo. Na Balozi pia anaonyesha anwani ya IP ya mfano.

Hiyo ni, unazingatia IP haswa, na sio jina la mwenyeji?

Haiwezekani kuabiri kwa jina la mwenyeji, i.e. kuna mengi yao. Kuna vitambulisho vya mfano - AE, nk. Unaweza kuipata mahali fulani, unaweza kuitupa kwenye utafutaji.

Habari! Niligundua kuwa Terraform ni kitu kizuri, iliyoundwa kwa ajili ya mawingu.

Siyo tu.

Hili ndilo swali ambalo linanivutia. Ikiwa unaamua kuhama, sema, kwa Bare Metal en masse na matukio yako yote? Je, kutakuwa na matatizo yoyote? Au bado utalazimika kutumia bidhaa zingine, kwa mfano, Ansible ile ile iliyotajwa hapa?

Ansible ni kidogo juu ya kitu kingine. Hiyo ni, Ansible tayari inafanya kazi wakati mfano umeanza. Na Terraform inafanya kazi kabla ya mfano kuanza. Kubadilisha kwa Metal Bare - hapana.

Sio sasa, lakini biashara itakuja na kusema: "Njoo."

Kubadilisha hadi wingu lingine - ndio, lakini kuna hila tofauti kidogo hapa. Unahitaji kuandika msimbo wa Terraform kwa njia ambayo unaweza kubadili wingu lingine kwa bidii kidogo.

Hapo awali, kazi iliwekwa kwamba miundombinu yetu yote ni ya agnostic, i.e. wingu lolote linafaa, lakini wakati fulani biashara ilikata tamaa na kusema: "Sawa, katika miaka ijayo ya N hatutaenda popote, tunaweza kutumia huduma. kutoka Amazon"

Terraform hukuruhusu kuunda kazi za Front-End, kusanidi PagerDuty, hati ya data, n.k. Ina mikia mingi. Anaweza kudhibiti ulimwengu wote kivitendo.

Asante kwa ripoti! Pia nimekuwa nikitumia Terraform kwa miaka 4 sasa. Katika hatua ya mabadiliko ya laini ya Terraform, kwa miundombinu, kwa maelezo ya kutangaza, tulikabiliwa na hali ambapo mtu alikuwa akifanya kitu kwa mkono, na ulikuwa unajaribu kufanya mpango. Na nilipata aina fulani ya makosa hapo. Je, unakabilianaje na matatizo kama haya? Je, unapataje rasilimali zilizopotea ambazo zimeorodheshwa?

Hasa kwa mikono na macho yetu, ikiwa tunaona kitu cha ajabu katika ripoti, basi tunachambua kinachotokea huko, au tunaua tu. Kwa ujumla, maombi ya kuvuta ni jambo la kawaida.

Ikiwa kuna hitilafu, je, unarudisha nyuma? Umejaribu kufanya hivi?

Hapana, huu ni uamuzi wa mtu kwa sasa anapoona tatizo.

Chanzo: mapenzi.com