Mynstur í Terraform til að berjast gegn glundroða og handvirkri rútínu. Maxim Kostrikin (Ixtens)

Mynstur í Terraform til að berjast gegn glundroða og handvirkri rútínu. Maxim Kostrikin (Ixtens)

Svo virðist sem Terraform verktaki bjóði upp á nokkuð þægilegar bestu starfsvenjur til að vinna með AWS innviði. Það er bara blæbrigði. Með tímanum eykst fjöldi umhverfi, hvert með sína eiginleika. Næstum afrit af umsóknarbunkanum birtist á nágrannasvæðinu. Og Terraform kóðann þarf að afrita vandlega og breyta í samræmi við nýju kröfurnar eða gera snjókorn.

Ræða mín um mynstur í Terraform til að berjast gegn glundroða og handvirkri rútínu í stórum og löngum verkefnum.

Video:

Mynstur í Terraform til að berjast gegn glundroða og handvirkri rútínu. Maxim Kostrikin (Ixtens)

Ég er 40, ég hef verið í upplýsingatækni í 20 ár. Ég hef unnið hjá Ixtens í 12 ár. Við tökum þátt í þróun sem rekin er á netviðskiptum. Og ég hef æft DevOps æfingar í 5 ár.

Mynstur í Terraform til að berjast gegn glundroða og handvirkri rútínu. Maxim Kostrikin (Ixtens)

Saga mín mun fjalla um reynslu mína í verkefni í fyrirtæki sem ég nefni ekki nafnið, felur sig á bak við þagnarskyldu.

Tölurnar á glærunni eru sýndar til að skilja umfang verkefnisins. Og allt sem ég mun segja næst tengist Amazon.

Mynstur í Terraform til að berjast gegn glundroða og handvirkri rútínu. Maxim Kostrikin (Ixtens)

Ég tók þátt í þessu verkefni fyrir 4 árum. Og endurbygging innviða var í fullum gangi vegna þess að verkefnið hafði vaxið. Og mynstrin sem notuð voru hentuðu ekki lengur. Og miðað við allan fyrirhugaðan vöxt verkefnisins var nauðsynlegt að koma með eitthvað nýtt.

Þökk sé Matvey sem sagði okkur í gær hvað gerðist á Dodo Pizza. Þetta er það sem gerðist hér fyrir 4 árum.

Hönnuðir komu og byrjuðu að búa til innviðakóða.

Augljósustu ástæðurnar fyrir því að þetta var krafist var tími til að markaðssetja. Nauðsynlegt var að tryggja að DevOps teymið væri ekki flöskuháls við útsetningu. Og meðal annars voru Terraform og Puppet notuð á fyrsta stigi.

Mynstur í Terraform til að berjast gegn glundroða og handvirkri rútínu. Maxim Kostrikin (Ixtens)

Terraform er opinn uppspretta verkefni frá HashiCorp. Og fyrir þá sem vita ekki einu sinni hvað þetta er, næstu glærur.

Mynstur í Terraform til að berjast gegn glundroða og handvirkri rútínu. Maxim Kostrikin (Ixtens)

Innviði sem kóða þýðir að við getum lýst innviðum okkar og beðið nokkur vélmenni að ganga úr skugga um að við fáum tilföngin sem við lýstum.

Til dæmis þurfum við sýndarvél. Við munum lýsa og bæta við nokkrum nauðsynlegum breytum.

Mynstur í Terraform til að berjast gegn glundroða og handvirkri rútínu. Maxim Kostrikin (Ixtens)

Eftir þetta munum við stilla aðgang að Amazon í stjórnborðinu. Og við munum biðja um Terraform áætlun. Terraform áætlun mun segja: „Allt í lagi, við getum gert þessa hluti fyrir auðlindina þína. Og að minnsta kosti einu úrræði verður bætt við. Og ekki er búist við neinum breytingum.

Mynstur í Terraform til að berjast gegn glundroða og handvirkri rútínu. Maxim Kostrikin (Ixtens)

Þegar þú ert ánægður með allt geturðu beðið Terraform um að sækja um og Terraform mun búa til dæmi fyrir þig og þú færð sýndarvél í skýinu þínu.

Mynstur í Terraform til að berjast gegn glundroða og handvirkri rútínu. Maxim Kostrikin (Ixtens)

Verkefnið okkar er að þróast enn frekar. Við erum að bæta við nokkrum breytingum þar. Við biðjum um fleiri tilvik, við bætum við 53 færslum.

Mynstur í Terraform til að berjast gegn glundroða og handvirkri rútínu. Maxim Kostrikin (Ixtens)

Og við endurtökum. Vinsamlegast skipulagðu. Við sjáum hvaða breytingar eru fyrirhugaðar. Við sækjum um. Og svona stækka innviðir okkar.

Terraform notar eitthvað sem kallast ástandsskrár. Það er, hann vistar allar breytingar sem fara á Amazon í skrá þar sem fyrir hverja auðlind sem þú lýstir eru samsvarandi auðlindir sem voru búnar til í Amazon. Þannig að þegar lýsingin á auðlind breytist, veit Terraform nákvæmlega hverju þarf að breyta í Amazon.

Mynstur í Terraform til að berjast gegn glundroða og handvirkri rútínu. Maxim Kostrikin (Ixtens)

Þessar ríkisskrár voru upphaflega bara skrár. Og við geymdum þær í Git, sem var mjög óþægilegt. Einhver gleymdi alltaf að skuldbinda sig til breytinga og mörg átök komu upp.

Nú er hægt að nota bakendann, þ.e. Terraform er tilgreint í hvaða fötu og með hvaða lykli skal vista ástandsskrána. Og Terraform sjálft mun sjá um að fá þessa ástandsskrá, gera alla töfrana og setja til baka lokaniðurstöðuna.

Mynstur í Terraform til að berjast gegn glundroða og handvirkri rútínu. Maxim Kostrikin (Ixtens)

Innviðir okkar eru að stækka. Hér er kóðinn okkar. Og nú viljum við ekki bara búa til sýndarvél, við viljum hafa prófunarumhverfi.

Mynstur í Terraform til að berjast gegn glundroða og handvirkri rútínu. Maxim Kostrikin (Ixtens)

Terraform gerir þér kleift að búa til eitthvað sem er eining, það er að lýsa því sama í einhverri möppu.

Mynstur í Terraform til að berjast gegn glundroða og handvirkri rútínu. Maxim Kostrikin (Ixtens)

Og, til dæmis, í prófun, hringdu í þessa einingu og fáðu það sama og ef við hefðum keyrt Terraform application í einingunni sjálfri. Til að prófa verður þessi kóði.

Mynstur í Terraform til að berjast gegn glundroða og handvirkri rútínu. Maxim Kostrikin (Ixtens)

Fyrir framleiðslu getum við sent nokkrar breytingar þangað, vegna þess að við prófun þurfum við ekki stór tilvik; í framleiðslu eru stór tilvik bara gagnleg.

Mynstur í Terraform til að berjast gegn glundroða og handvirkri rútínu. Maxim Kostrikin (Ixtens)

Og þá mun ég snúa aftur að verkefninu. Það var erfitt verkefni, fyrirhugaðir innviðir voru mjög stórir. Og það þurfti einhvern veginn að setja allan kóðann þannig að hann væri þægilegur fyrir alla: bæði fyrir þá sem sinna viðhaldi á þessum kóða og fyrir þá sem gera breytingar. Og það var fyrirhugað að hvaða verktaki sem er gæti farið og lagað innviðina eftir þörfum fyrir sinn hluta pallsins.

Þetta er skráartré sem HashiCorp sjálft mælir með ef þú ert með stórt verkefni og það er skynsamlegt að skipta öllu innviði í nokkra litla bita og lýsa hverju stykki í sérstakri möppu.

Með umfangsmikið safn af auðlindum geturðu hringt í það sama í prófun og framleiðslu.

Mynstur í Terraform til að berjast gegn glundroða og handvirkri rútínu. Maxim Kostrikin (Ixtens)

Í okkar tilviki hentaði þetta ekki alveg, vegna þess að prófastaflan fyrir forritara eða til að prófa þurfti að fá einhvern veginn einfaldari. En ég vildi ekki fara í gegnum möppurnar og nota þær í nauðsynlegri röð og hafa áhyggjur af því að gagnagrunnurinn myndi hækka og þá myndi tilvikið sem notar þennan gagnagrunn hækka. Þess vegna voru allar prófanir settar af stað úr einni möppu. Þar voru kölluð sömu einingar en allt var gert í einni keyrslu.

Terraform sér um alla ósjálfstæði. Og það býr alltaf til auðlindir í röðinni þannig að þú getur fengið IP-tölu, til dæmis frá nýstofnu tilviki, og fengið þetta IP-tölu í route53 skránni.

Auk þess er pallurinn mjög stór. Og það er ansi dýrt verkefni að setja af stað prufusafla, jafnvel þó í klukkutíma, jafnvel þó í 8 klukkustundir.

Og við gerðum þetta mál sjálfvirkt. Og starf Jenkins gerði okkur kleift að reka staflann. Í henni var nauðsynlegt að setja af stað dráttarbeiðni með þeim breytingum sem verktaki vill prófa, tilgreina alla nauðsynlega valkosti, íhluti og stærðir. Ef hann vill frammistöðupróf, þá getur hann tekið fleiri dæmi. Ef hann þarf bara að athuga hvort eitthvað eyðublað opnast, þá gæti hann byrjað á lágmarkslaunum. Og einnig tilgreina hvort þörf sé á klasa eða ekki, o.s.frv.

Og svo ýtti Jenkins á skeljaforskrift, sem breytti kóðanum í Terraform möppunni lítillega. Ég fjarlægði óþarfa skrár og bætti við nauðsynlegum skrám. Og svo með einni keyrslu af Terraform appinu var staflinn hækkaður.

Og svo voru önnur skref sem ég vil ekki fara í.

Mynstur í Terraform til að berjast gegn glundroða og handvirkri rútínu. Maxim Kostrikin (Ixtens)

Vegna þess að til að prófa okkur vantaði aðeins fleiri valkosti en í framleiðslu, urðum við að gera afrit af einingunum svo að í þessum eintökum gætum við bætt þeim eiginleikum sem þurftu aðeins til að prófa.

Og það gerðist þannig að í prófun langar mig að prófa þessar breytingar sem að lokum fara í framleiðslu. En í rauninni var eitt prófað og aðeins annað notað í framleiðslu. Og það var smá brot á mynstrinu að í framleiðslu var öllum breytingum beitt af rekstrarteyminu. Og stundum kom í ljós að þessar breytingar sem áttu að fara frá prófun til framleiðslu voru eftir í annarri útgáfu.

Auk þess kom upp slíkt vandamál að ný þjónusta var bætt við sem var aðeins frábrugðin einhverri sem þegar var til. Og í stað þess að breyta núverandi einingu urðum við að gera afrit af henni og bæta við nauðsynlegum breytingum.

Í meginatriðum er Terraform ekki raunverulegt tungumál. Þetta er yfirlýsing. Ef við þurfum að lýsa yfir einhverju, þá lýsum við yfir því. Og þetta virkar allt.

Einhvern tíma, þegar verið var að ræða eina af dráttarbeiðnum mínum, sagði einn samstarfsmaður minn að það væri engin þörf á að búa til snjókorn. Ég velti því fyrir mér hvað hann meinti. Það er vísindaleg staðreynd að það eru engin tvö eins snjókorn í heiminum, þau eru öll aðeins ólík. Og um leið og ég heyrði þetta fann ég strax fyrir fullum þunga Terraform kóðans. Vegna þess að þegar nauðsynlegt var að fara frá útgáfu til útgáfu, krafðist Terraform keðjubreytinga, þ.e.a.s. kóðinn var ekki lengur samhæfur við næstu útgáfu. Og við þurftum að leggja fram dráttarbeiðni, sem náði yfir næstum helming skránna í innviðunum, til að koma innviðunum í næstu útgáfu af Terraform.

Og eftir að slíkt snjókorn birtist, allt Terraform kóðann sem við höfðum breytt í stóran, stóran snjóhaug.

Fyrir utanaðkomandi þróunaraðila sem er utan starfseminnar skiptir þetta ekki miklu máli fyrir hann, vegna þess að hann lagði fram pull beiðni, úrræði hans byrjaði. Og það er allt, það er ekki áhyggjuefni hans lengur. Og DevOps teymið, sem tryggir að allt sé í lagi, þarf að gera allar þessar breytingar. Og kostnaðurinn við þessar breytingar jókst mjög, mjög mikið með hverju snjókorni til viðbótar.

Mynstur í Terraform til að berjast gegn glundroða og handvirkri rútínu. Maxim Kostrikin (Ixtens)

Til er saga um hvernig nemandi á málstofu teiknar tvo fullkomna hringi með krít á töfluna. Og kennarinn er hissa á því hvernig honum tókst að teikna svona vel án áttavita. Nemandinn svarar: „Mjög einfalt, ég var í tvö ár í hernum við að snúa kjötkvörn.

Og af þeim fjórum árum sem ég hef tekið þátt í þessu verkefni hef ég verið að gera Terraform í um tvö ár. Og auðvitað hef ég nokkur brellur, nokkur ráð um hvernig á að einfalda Terraform kóðann, vinna með hann eins og forritunarmál og draga úr álagi á forritara sem verða að halda þessum kóða uppfærðum.

Mynstur í Terraform til að berjast gegn glundroða og handvirkri rútínu. Maxim Kostrikin (Ixtens)

Það fyrsta sem mig langar til að byrja með er Symlinks. Terraform hefur mikið af endurteknum kóða. Til dæmis er símtalið til þjónustuveitunnar á næstum hverjum stað þar sem við búum til innviði. Og það er rökrétt að setja það í sérstaka möppu. Og hvar sem veitandinn þarf að búa til tákntengla við þessa skrá.

Mynstur í Terraform til að berjast gegn glundroða og handvirkri rútínu. Maxim Kostrikin (Ixtens)

Til dæmis, í framleiðslu notarðu ráð fyrir hlutverki, sem gerir þér kleift að fá aðgangsrétt að einhverjum ytri Amazon reikningi. Og eftir að hafa breytt einni skrá, munu allar þær sem eftir eru í auðlindatrénu hafa tilskilin réttindi svo að Terraform viti hvaða Amazon hluti á að fá aðgang að.

Mynstur í Terraform til að berjast gegn glundroða og handvirkri rútínu. Maxim Kostrikin (Ixtens)

Hvar mistakast samtengingar? Eins og ég sagði, Terraform er með ríkisskrár. Og þeir eru mjög, mjög flottir. En málið er að Terraform frumstillir bakendann í fyrsta lagi. Og hann getur ekki notað neinar breytur í þessum breytum, þær verða alltaf að vera skrifaðar í texta.

Og þar af leiðandi, þegar einhver býr til nýtt tilfang, afritar hann hluta af kóðanum úr öðrum möppum. Og hann gæti gert mistök með lyklinum eða með fötunni. Til dæmis gerir hann sandkassahlut úr sandkassa og gerir hann síðan í framleiðslu. Og svo gæti komið í ljós að fötuna í framleiðslu verði notuð úr sandkassa. Auðvitað munu þeir finna það fljótt. Það verður einhvern veginn hægt að laga þetta en engu að síður er þetta sóun á tíma og að einhverju leyti fjármagni.

Mynstur í Terraform til að berjast gegn glundroða og handvirkri rútínu. Maxim Kostrikin (Ixtens)

Hvað getum við gert næst? Áður en þú vinnur með Terraform þarftu að frumstilla það. Við frumstillingu hleður Terraform niður öllum viðbótum. Á einhverjum tímapunkti skiptust þeir úr einlita yfir í örþjónustuarkitektúr. Og þú þarft alltaf að gera Terraform init þannig að það dragi upp allar einingarnar, allar viðbæturnar.

Og þú getur notað skeljaforskrift, sem í fyrsta lagi getur fengið allar breyturnar. Skeljahandritið er ekki takmarkað á nokkurn hátt. Og í öðru lagi slóðirnar. Ef við notum alltaf slóðina sem er í geymslunni sem lykilinn að ástandsskránni, þá verður villunni hér eytt.

Mynstur í Terraform til að berjast gegn glundroða og handvirkri rútínu. Maxim Kostrikin (Ixtens)

Hvar get ég fengið gögnin? JSON skrá. Terraform gerir þér kleift að skrifa innviði ekki aðeins í hcl (HashiCorp Configuration Language), heldur einnig í JSON.

JSON er auðvelt að lesa úr skeljahandriti. Í samræmi við það geturðu sett stillingarskrána með fötu á einhverjum stað. Og notaðu þessa fötu bæði í Terraform kóðanum og í skeljaskriftinni til að frumstilla.

Mynstur í Terraform til að berjast gegn glundroða og handvirkri rútínu. Maxim Kostrikin (Ixtens)

Af hverju er mikilvægt að hafa fötu fyrir Terraform? Vegna þess að það er til eitthvað eins og fjarlægar ríkisskrár. Það er að segja, þegar ég ala upp einhverja auðlind, til að segja Amazon: „Vinsamlegast hækka tilvik,“ þarf ég að tilgreina fullt af nauðsynlegum breytum.

Og þessi auðkenni eru geymd í einhverri annarri möppu. Og ég get farið og sagt: „Terraform, vinsamlegast hlaupið að ríkisskránni fyrir einmitt þessa auðlind og fáið mér þessi auðkenni. Og þannig birtist ákveðin sameining milli mismunandi svæða eða umhverfis.

Það er ekki alltaf hægt að nota ytri ástandsskrá. Til dæmis bjóstu til VPC með höndunum. Og Terraform kóðinn sem býr til VPC skapar svo mismunandi VPC að það mun taka mjög langan tíma og þú verður að laga einn að öðrum, svo þú getur notað eftirfarandi bragð.

Mynstur í Terraform til að berjast gegn glundroða og handvirkri rútínu. Maxim Kostrikin (Ixtens)

Það er að segja, búðu til einingu sem virðist búa til VPC og gefur þér eins og það var auðkenni, en í raun er einfaldlega skrá með harðkóðaðri gildum sem hægt er að nota til að búa til sama tilvik.

Mynstur í Terraform til að berjast gegn glundroða og handvirkri rútínu. Maxim Kostrikin (Ixtens)

Það er ekki alltaf nauðsynlegt að vista ástandsskrána í skýinu. Til dæmis, þegar þú prófar einingar, geturðu notað bakenda frumstillingu, þar sem skráin verður einfaldlega vistuð á disknum þegar prófunin fer fram.

Mynstur í Terraform til að berjast gegn glundroða og handvirkri rútínu. Maxim Kostrikin (Ixtens)

Nú aðeins um próf. Hvað er hægt að prófa í Terraform? Sennilega er margt hægt, en ég ætla að tala um þessa 4 hluti.

HashiCorp hefur skilning á því hvernig Terraform kóða ætti að vera sniðið. Og Terraform fmt gerir þér kleift að forsníða kóðann sem þú breytir samkvæmt þessari trú. Í samræmi við það verða prófanir endilega að athuga hvort sniðið sé í samræmi við það sem HashiCorp arfleiddi, svo að ekki þurfi að breyta staðsetningu sviga o.s.frv.

Mynstur í Terraform til að berjast gegn glundroða og handvirkri rútínu. Maxim Kostrikin (Ixtens)

Næsta er Terraform validate. Það gerir lítið annað en að athuga setningafræðina - ala, hvort allir svigar séu pöruð. Hvað er mikilvægt hér? Innviðir okkar eru mjög umfangsmiklir. Það eru fullt af mismunandi pabba í því. Og í hverju sem þú þarft að keyra Terraform validate.

Í samræmi við það, til að flýta fyrir prófunum, keyrum við mörg ferli samhliða með samhliða notkun.

Parallel er mjög flott hlutur, notaðu það.

En í hvert skipti sem Terraform frumstillir fer það til HashiCorp og spyr: „Hverjar eru nýjustu viðbæturnar? Og viðbótin sem ég er með í skyndiminni - er það rétta eða rangt? Og þetta hægði á sér við hvert fótmál.

Mynstur í Terraform til að berjast gegn glundroða og handvirkri rútínu. Maxim Kostrikin (Ixtens)

Ef þú segir Terraform hvar viðbæturnar eru, þá mun Terraform segja: „Allt í lagi, þetta er líklega það nýjasta sem er þarna. Ég mun ekki fara neitt, ég mun strax byrja að staðfesta Terraform kóðann þinn.

Mynstur í Terraform til að berjast gegn glundroða og handvirkri rútínu. Maxim Kostrikin (Ixtens)

Til þess að fylla möppuna af nauðsynlegum viðbótum höfum við mjög einfaldan Terraform kóða sem þarf bara að frumstilla. Hér þarftu auðvitað að tilgreina allar veitendur sem einhvern veginn taka þátt í kóðanum þínum, annars mun Terraform segja: „Ég veit ekki um ákveðinn þjónustuaðila vegna þess að hann er ekki í skyndiminni.

Mynstur í Terraform til að berjast gegn glundroða og handvirkri rútínu. Maxim Kostrikin (Ixtens)

Næst er Terraform áætlunin. Eins og ég sagði er þróunin sveiflukennd. Við gerum breytingar á kóðanum. Og þá þarf að finna út hvaða breytingar eru fyrirhugaðar á innviðum.

Og þegar innviðirnir eru mjög, mjög stórir, geturðu breytt einni einingu, lagað eitthvað prófunarumhverfi eða ákveðið svæði og brotið einhverja nærliggjandi. Því ætti að gera Terraform áætlun fyrir alla innviði og sýna hvaða breytingar eru fyrirhugaðar.

Þú getur gert þetta skynsamlega. Til dæmis skrifuðum við Python handrit sem leysir ósjálfstæði. Og allt eftir því sem var breytt: Terraform eining eða bara ákveðinn íhlut, gerir það áætlanir fyrir allar háðar möppur.

Terraform áætlanir þarf að gera sé þess óskað. Það er allavega það sem við gerum.

Auðvitað er gott að gera próf fyrir hverja breytingu, fyrir hverja skuldbindingu, en áætlanir eru frekar dýrar hlutir. Og í dráttarbeiðni segjum við: "Vinsamlegast gefðu mér áætlanirnar." Vélmennið fer í gang. Og sendir inn athugasemdir eða hengið við allar áætlanir sem búist er við af breytingum þínum.

Áætlun er frekar dýr hlutur. Það tekur tíma vegna þess að Terraform fer til Amazon og spyr: „Er þetta tilvik enn til? Er þessi sjálfvirki mælikvarði með nákvæmlega sömu færibreytur?" Og til að flýta fyrir þessu geturðu notað færibreytu eins og refresh=false. Þetta þýðir að Terraform mun hlaða niður ástandi frá S3. Og það mun trúa því að ríkið muni passa nákvæmlega við það sem er í Amazon.

Slík Terraform áætlun gengur mun hraðar, en ríkið verður að samsvara innviðum þínum, þ.e. einhvers staðar, einhvern tíma verður Terraform endurnýjunin að byrja. Terraform refresh gerir nákvæmlega það: ástand passar við það sem er í raunverulegum innviðum.

Og við þurfum að tala um öryggi. Þetta var þar sem við þurftum að byrja. Þar sem þú keyrir Terraform og Terraform keyrir á innviðum þínum er varnarleysi. Það er, þú ert í rauninni að keyra kóðann. Og ef dráttarbeiðnin inniheldur einhvers konar illgjarnan kóða, þá er hægt að framkvæma hana á innviði sem hefur of mikinn aðgang. Svo vertu varkár hvar þú keyrir Terraform áætlun.

Mynstur í Terraform til að berjast gegn glundroða og handvirkri rútínu. Maxim Kostrikin (Ixtens)

Það næsta sem mig langar að tala um er notendagagnaprófun.

Hvað eru notendagögn? Í Amazon, þegar við búum til tilvik, getum við sent ákveðið bréf með tilvikinu - metagögn. Þegar tilvik byrjar er venjulega cloud init alltaf til staðar í þessum tilvikum. Cloud init les þetta bréf og segir: „Allt í lagi, í dag er ég álagsjafnari. Og í samræmi við þessa sáttmála framkvæmir hann nokkrar aðgerðir.

Mynstur í Terraform til að berjast gegn glundroða og handvirkri rútínu. Maxim Kostrikin (Ixtens)

En því miður, þegar við látum Terraform áætlun og Terraform gilda, líta notendagögn út eins og þessi tegund af tölum. Það er, hann sendir þér einfaldlega hassið. Og allt sem þú getur skoðað í áætluninni er hvort það verði einhverjar breytingar eða hvort kjötkássa verði óbreytt.

Og ef þú tekur ekki eftir þessu, þá gæti einhver brotin textaskrá endað á Amazon, á raunverulegum innviðum.

Mynstur í Terraform til að berjast gegn glundroða og handvirkri rútínu. Maxim Kostrikin (Ixtens)

Að öðrum kosti, þegar þú keyrir, geturðu tilgreint ekki allan innviði, heldur aðeins sniðmátið. Og í kóðanum segðu: "Vinsamlegast sýndu þetta sniðmát á skjánum mínum." Og fyrir vikið geturðu fengið útprentun af því hvernig gögnin þín munu líta út á Amazon.

Mynstur í Terraform til að berjast gegn glundroða og handvirkri rútínu. Maxim Kostrikin (Ixtens)

Annar valkostur er að nota einingu til að búa til notendagögn. Þú munt beita þessari einingu. Þú færð skrána á disk. Berðu það saman við tilvísunina. Og þannig, ef einhver gaur ákveður að leiðrétta notendagögnin aðeins, þá munu prófin þín segja: „Allt í lagi, það eru nokkrar breytingar hér og þar - þetta er eðlilegt.

Mynstur í Terraform til að berjast gegn glundroða og handvirkri rútínu. Maxim Kostrikin (Ixtens)

Það næsta sem mig langar að tala um er Automate Terraform application.

Auðvitað er alveg skelfilegt að nota Terraform í sjálfvirkri stillingu, því hver veit hvaða breytingar hafa orðið þar og hversu eyðileggjandi þær geta verið fyrir lifandi innviði.

Fyrir prófunarumhverfi er þetta allt eðlilegt. Það er, starf sem skapar prófunarumhverfi er það sem allir verktaki þurfa. Og slík orðatiltæki eins og „allt virkaði fyrir mig“ er ekki fyndið meme, heldur sönnun þess að einstaklingur ruglaðist, hækkaði stafla og tók nokkur próf á þessum stafla. Og hann sá til þess að allt væri í lagi þarna og sagði: „Allt í lagi, kóðinn sem ég er að gefa út hefur verið prófaður.

Í framleiðslu, sandkassa og öðru umhverfi sem er mikilvægara fyrir viðskipti, geturðu notað sum auðlindir að hluta til nokkuð örugglega vegna þess að það leiðir ekki til þess að neinn deyi. Þetta eru: sjálfvirkir flokkar, öryggishópar, hlutverk, route53 og listinn þar getur verið nokkuð stór. En fylgstu með hvað er að gerast, lestu sjálfvirku umsóknarskýrslur.

Þar sem það er hættulegt eða ógnvekjandi að sækja um, til dæmis ef þetta eru viðvarandi auðlindir úr gagnagrunni, fáðu þá tilkynningar um að það séu óbeittar breytingar á einhverjum hluta innviðanna. Og verkfræðingur, undir eftirliti, byrjar störf til að sækja um eða gerir það frá vélinni sinni.

Amazon hefur eitthvað sem heitir Terminate vernd. Og það getur í sumum tilfellum verndað gegn breytingum sem eru ekki nauðsynlegar fyrir þig. Það er, Terraform fór til Amazon og sagði: "Ég þarf að drepa þetta tilvik til að búa til annað." Og Amazon segir: „Því miður, ekki í dag. Við erum með Terminate vernd.“

Mynstur í Terraform til að berjast gegn glundroða og handvirkri rútínu. Maxim Kostrikin (Ixtens)

Og rúsínan í pylsuendanum er hagræðing kóða. Þegar við vinnum með Terraform kóða verðum við að senda mjög mikinn fjölda breytu til einingarinnar. Þetta eru færibreyturnar sem eru nauðsynlegar til að búa til einhvers konar auðlind. Og kóðinn breytist í stóra lista yfir færibreytur sem þarf að senda frá einingu til einingu, frá einingu til einingu, sérstaklega ef einingarnar eru hreiður.

Og það er mjög erfitt að lesa. Það er mjög erfitt að rifja þetta upp. Og mjög oft kemur í ljós að sumar breytur gangast undir endurskoðun og þær eru ekki nákvæmlega það sem þarf. Og þetta kostar tíma og peninga að laga síðar.

Mynstur í Terraform til að berjast gegn glundroða og handvirkri rútínu. Maxim Kostrikin (Ixtens)

Þess vegna legg ég til að þú notir slíkt sem flókna breytu sem inniheldur ákveðið gildistré. Það er, þú þarft einhvers konar möppu þar sem þú hefur öll þau gildi sem þú vilt hafa í einhverju umhverfi.

Mynstur í Terraform til að berjast gegn glundroða og handvirkri rútínu. Maxim Kostrikin (Ixtens)

Og með því að kalla þessa einingu er hægt að fá tré sem er búið til í einni sameiginlegri einingu, það er að segja í sameiginlegri einingu sem virkar eins fyrir alla innviði.

Í þessari einingu geturðu gert nokkra útreikninga með því að nota svo nýlegan eiginleika í Terraform sem heimamenn. Og gefðu síðan upp einhverja flókna færibreytu með einni útgangi, sem getur innihaldið array kjötkássa osfrv.

Mynstur í Terraform til að berjast gegn glundroða og handvirkri rútínu. Maxim Kostrikin (Ixtens)

Þetta er þar sem allt það besta sem ég hef endað. Og mig langar að segja sögu um Columbus. Þegar hann var að leita að peningum fyrir leiðangurinn sinn til að uppgötva Indland (eins og hann hélt þá), trúði honum enginn og þeir héldu að það væri ómögulegt. Þá sagði hann: „Gakktu úr skugga um að eggið detti ekki. Allir bankastjórarnir, mjög ríkir og líklega klárir menn, reyndu einhvern veginn að koma egginu fyrir og það hélt áfram að detta. Síðan tók Kólumbus eggið og þrýsti því aðeins. Skelin krumpaði og eggið stóð hreyfingarlaust. Þeir sögðu: "Ó, það er of auðvelt!" Og Kólumbus svaraði: „Já, það er of einfalt. Og þegar ég opna Indland munu allir nota þessa viðskiptaleið.“

Og það sem ég sagði þér núna eru líklega frekar einfaldir og léttvægir hlutir. Og þegar þú lærir um þau og byrjar að nota þau, þá er það í röð hlutanna. Svo nýttu þér. Og ef þetta eru alveg eðlilegir hlutir fyrir þig, þá veistu allavega hvernig á að setja eggið svo það detti ekki.

Mynstur í Terraform til að berjast gegn glundroða og handvirkri rútínu. Maxim Kostrikin (Ixtens)

Let's summa upp:

  • Reyndu að forðast snjókorn. Og því færri snjókorn, því færri úrræði þarftu til að gera breytingar á stórum innviðum þínum.
  • Stöðugar breytingar. Það er, þegar einhverjar breytingar verða á kóðanum þarftu að koma innviðum þínum í samræmi við þessar breytingar eins fljótt og auðið er. Það ætti ekki að vera staða þar sem einhver kemur til að skoða Elasticsearch tveimur eða þremur mánuðum síðar, gerir Terraform áætlun og það eru fullt af breytingum sem hann bjóst ekki við. Og það tekur mikinn tíma að koma öllu í lag aftur.
  • Prófanir og sjálfvirkni. Því meira sem kóðinn þinn er þakinn prófum og eiginleikum, því meira sjálfstraust hefur þú um að þú sért að gera allt rétt. Og sjálfvirk afhending mun auka sjálfstraust þitt margfalt.
  • Kóðinn fyrir prófunar- og framleiðsluumhverfið ætti að vera nánast sá sami. Nánast, vegna þess að framleiðslan er enn svolítið öðruvísi og það verða enn nokkur blæbrigði sem fara út fyrir prófunarumhverfið. En engu að síður, plús eða mínus, er hægt að tryggja þetta.
  • Og ef þú ert með mikið af Terraform kóða og það tekur mikinn tíma að halda þessum kóða uppfærðum, þá er aldrei of seint að endurbyggja og koma honum í gott form.

Mynstur í Terraform til að berjast gegn glundroða og handvirkri rútínu. Maxim Kostrikin (Ixtens)

  • Óbreytanleg innviði. AMI afhending á áætlun.
  • Uppbygging fyrir route53 þegar þú ert með mikið af færslum og þú vilt að þær séu í samræmdri röð.
  • Berjast við API hraðamörk. Þetta er þegar Amazon segir: "Það er það, ég get ekki samþykkt fleiri beiðnir, vinsamlegast bíddu." Og helmingur skrifstofunnar bíður þar til hún getur ræst innviði sína.
  • Koma auga á tilvik. Amazon er ekki ódýr viðburður og staðir leyfa þér að spara töluvert. Og þar má segja heila skýrslu um það.
  • Öryggis- og IAM hlutverk.
  • Að leita að týndum auðlindum, þegar þú hefur tilvik af óþekktum uppruna í Amazone, borða þeir peninga. Jafnvel þótt tilvik kosti $ 100-150 á mánuði, þá er það meira en $ 1 á ári. Að finna slíkar auðlindir er arðbært fyrirtæki.
  • Og frátekin tilvik.

Mynstur í Terraform til að berjast gegn glundroða og handvirkri rútínu. Maxim Kostrikin (Ixtens)

Það er allt fyrir mig. Terraform er mjög flott, þú notar það. Þakka þér fyrir!

spurningar

Takk fyrir skýrsluna! Ríkisskráin þín er í S3, en hvernig leysirðu vandamálið að nokkrir geta tekið þessa ástandsskrá og reynt að stækka?

Í fyrsta lagi erum við ekkert að flýta okkur. Í öðru lagi eru fánar, þar sem við tilkynnum að við séum að vinna að einhverju kóðastykki. Það er að segja, þrátt fyrir að innviðirnir séu mjög stórir þýðir það ekki að einhver sé stöðugt að nota eitthvað. Og þegar það var virkur áfangi var þetta vandamál; við geymdum ástandsskrár í Git. Þetta var mikilvægt, annars myndi einhver gera ríkisskrá og við þurftum að setja þær saman handvirkt til að allt gæti haldið áfram. Nú er ekkert slíkt vandamál. Almennt séð leysti Terraform þetta vandamál. Og ef eitthvað er stöðugt að breytast, þá geturðu notað læsingar, sem koma í veg fyrir það sem þú sagðir.

Ertu að nota opinn hugbúnað eða fyrirtæki?

Ekkert fyrirtæki, þ.e.a.s. allt sem þú getur farið og hlaðið niður ókeypis.

Ég heiti Stanislav. Mig langaði að gera smá viðbót. Þú talaðir um Amazon eiginleika sem gerir þér kleift að gera tilvik ódrepanlegt. Þetta er líka í Terraform sjálfu; í Life Second blokkinni geturðu tilgreint bann við breytingum eða bann við eyðingu.

Tíminn var takmarkaður. Góður punktur.

Mig langaði líka að spyrja um tvennt. Í fyrsta lagi talaðir þú um próf. Notaðirðu einhver prófunartæki? Ég heyrði um Test Kitchen viðbótina. Kannski er eitthvað meira. Og mig langar líka að spyrja um staðbundin gildi. Hvernig eru þær í grundvallaratriðum frábrugðnar inntaksbreytum? Og hvers vegna get ég ekki stillt eitthvað aðeins í gegnum staðbundin gildi? Ég reyndi að átta mig á þessu efni, en einhvern veginn gat ég ekki fundið það út sjálfur.

Við getum talað nánar fyrir utan þetta herbergi. Prófunartæki okkar eru algjörlega sjálfsmíðuð. Þarna er ekkert að prófa. Almennt séð eru valkostir þegar sjálfvirk próf taka upp innviði einhvers staðar, athuga hvort það sé í lagi og eyðileggja síðan allt með tilkynningu um að innviðir þínir séu enn í góðu lagi. Við höfum þetta ekki vegna þess að prufusafla er keyrður á hverjum degi. Og það er nóg. Og ef eitthvað byrjar að brotna þá byrjar það að brotna án þess að við höfum athugað það annars staðar.

Varðandi staðbundin gildi, við skulum halda samtalinu áfram fyrir utan herbergið.

Halló! Takk fyrir skýrsluna! Mjög fræðandi. Þú sagðir að þú værir með mikið af sömu tegund af kóða til að lýsa innviðunum. Hefurðu íhugað að búa til þennan kóða?

Frábær spurning, takk! Málið er að þegar við notum innviði sem kóða, gerum við ráð fyrir að við skoðum kóðann og skiljum hvaða innviði liggur á bak við þann kóða. Ef kóði er búinn til, þá þurfum við að ímynda okkur hvaða kóði verður til til að skilja hvers konar innviði verður þar. Annað hvort búum við til kóða, framkvæmum hann og í rauninni gerist það sama. Svo við fórum leiðina sem við skrifuðum, við náðum henni. Plús rafala birtust aðeins seinna þegar við byrjuðum að búa þá til. Og það var þegar of seint að breyta.

Hefurðu heyrt eitthvað um jsonnet?

Nei

Sko, þetta er mjög flottur hlutur. Ég sé ákveðið tilvik þar sem þú getur beitt því og búið til gagnaskipulag.

Rafalar eru góðir þegar þú átt þá, eins og í brandaranum um rakvél. Semsagt í fyrsta skiptið er andlitið öðruvísi en þá eru allir með sama andlitið. Rafallarnir virka mjög vel. En því miður eru andlit okkar aðeins öðruvísi. Þetta er vandamál.

Líttu bara. Þakka þér fyrir!

Ég heiti Maxim, ég er frá Sberbank. Þú talaðir aðeins um hvernig þú varst að reyna að koma Terraform í jafngildi forritunarmáls. Er ekki auðveldara að nota Ansible?

Þetta eru mjög ólíkir hlutir. Þú getur búið til auðlindir í Ansible og Puppet getur búið til auðlindir í Amazon. En Terraform er beint skerpt.

Ertu bara með Amazon?

Það er ekki það að við höfum bara Amazon. Við erum nánast bara með Amazon. En lykilatriðið er að Terraform man. Í Ansible, ef þú segir: „Gefðu mér 5 tilvik,“ þá hækkar það og þá segirðu: „Og nú þarf ég 3.“ Og Terraform mun segja: "Allt í lagi, ég drep 2," og Ansible mun segja: "Allt í lagi, hér eru 3 fyrir þig." Samtals 8.

Halló! Takk fyrir skýrsluna þína! Það var mjög áhugavert að heyra um Terraform. Mig langar strax að gera smá athugasemd um þá staðreynd að Terraform er enn ekki með stöðuga útgáfu, svo farið varlega með Terraform.

Góð skeið í kvöldmatinn. Það er að segja ef þig vantar lausn þá frestar þú stundum því sem er óstöðugt o.s.frv., en það virkar og það hjálpaði okkur.

Spurningin er þessi. Þú notar Remote backend, þú notar S 3. Af hverju notarðu ekki opinbera backend?

Opinber?

Terraform Cloud.

Hvenær birtist hann?

Fyrir um 4 mánuðum síðan.

Ef það hefði birst fyrir 4 árum, þá hefði ég líklega svarað spurningu þinni.

Það er nú þegar innbyggð aðgerð og læsingar og þú getur geymt ástandsskrá. Reyndu. En ég hef ekki prófað það heldur.

Við erum að ferðast með stórri lest sem keyrir á miklum hraða. Og þú getur ekki bara tekið nokkra bíla og hent þeim.

Þú talaðir um snjókorn, af hverju notaðirðu ekki grein? Af hverju gekk þetta ekki svona?

Nálgun okkar er sú að allt innviði er í einni geymslu. Terraform, Puppet, öll handritin sem tengjast þessu einhvern veginn, þau eru öll í einni geymslu. Þannig getum við tryggt að stigvaxandi breytingar séu prófaðar hver á eftir annarri. Ef það væri fullt af útibúum, þá væri svona verkefni nánast ómögulegt að viðhalda. Sex mánuðir líða og þeir eru svo ólíkir að það er bara einhvers konar refsing. Þetta er það sem ég vildi komast undan áður en ég endurtekin.

Svo það virkar ekki?

Þetta gengur alls ekki.

Í grein klippti ég út möppuglasið. Það er að segja ef þú gerir það fyrir hvern prufustafla, til dæmis, lið A hefur sína eigin möppu, lið B hefur sína eigin möppu, þá virkar þetta heldur ekki. Við bjuggum til sameinaðan prófumhverfiskóða sem var nógu sveigjanlegur til að henta öllum. Það er, við þjónuðum einum kóða.

Halló! Ég heiti Yura! Takk fyrir skýrsluna! Spurning um einingar. Þú segir að þú sért að nota einingar. Hvernig leysir þú málið ef breytingar hafa verið gerðar á einni einingu sem eru ekki samhæfðar breytingum annars manns? Ertu einhvern veginn að útgáfa einingarnar eða að reyna að koma með wunderwaffle til að uppfylla tvær kröfur?

Þetta er mikið snjóhrúga vandamál. Þetta er það sem við þjáumst af þegar einhver skaðlaus breyting getur brotið einhvern hluta innviðanna. Og þetta verður áberandi aðeins eftir nokkurn langan tíma.

Semsagt, það hefur ekki verið leyst ennþá?

Þú býrð til alhliða einingar. Forðastu snjókorn. Og allt mun ganga upp. Seinni hluti skýrslunnar fjallar um hvernig eigi að forðast þetta.

Halló! Takk fyrir skýrsluna! Mig langar til að skýra. Á bak við tjöldin var stór haugur sem ég kom eftir. Hvernig eru leikbrúðu- og hlutverkadreifing samþætt?

Notendagögn.

Það er, þú spýtir bara út skránni og keyrir hana einhvern veginn?

User-data eru minnismiða, þ.e. þegar við gerum klón af myndinni, rís Daemon þar og reynir að komast að því hver hann er, les athugasemdina um að hann sé álagsjafnari.

Það er, er þetta einhvers konar aðskilið ferli sem er gefið frá sér?

Við fundum það ekki upp. Við notum það.

Halló! Ég er bara með spurningu um User - data. Þú sagðir að það væru vandamál þarna, að einhver gæti sent eitthvað á rangan stað. Er einhver leið til að geyma notendagögn í sama Git, þannig að það sé alltaf ljóst hvað notendagögn vísa til?

Við búum til notendagögn úr sniðmáti. Það er að segja að þarna er notaður ákveðinn fjöldi breyta. Og Terraform býr til lokaniðurstöðuna. Þess vegna geturðu ekki bara skoðað sniðmátið og sagt hvað mun gerast, því öll vandamálin tengjast því að verktaki heldur að hann sé að senda streng í þessari breytu, en fylki er notað þar. Og hann - bam og ég - svo og svo, svo og svo, næsta lína, og allt brotnaði. Ef þetta er nýtt úrræði og maður tekur það upp og sér að eitthvað virkar ekki, þá er það fljótt leyst. Og ef þessi sjálfvirka mælikvarðahópur er uppfærður, þá byrjar á einhverjum tímapunkti að skipta um tilvik í sjálfvirka kvarðahópnum. Og bang, eitthvað virkar ekki. Það er sárt.

Það kemur í ljós að eina lausnin er að prófa?

Já, þú sérð vandamálið, þú bætir við prófskrefum þar. Það er að segja að framleiðsla er einnig hægt að prófa. Kannski er það ekki svo þægilegt, en þú getur líka sett nokkur merki - athugaðu að notendagögn séu negld hér niður.

Ég heiti Timur. Það er mjög flott að það eru skýrslur um hvernig eigi að skipuleggja Terraform rétt.

Ég er ekki einu sinni byrjuð.

Ég held að það verði kannski á næstu ráðstefnu. Ég er með einfalda spurningu. Af hverju ertu að harðkóða gildið í sérstakri einingu frekar en að nota tfvars, þ.e.a.s. hvers vegna er eining með gildi betri en tfvars?

Það er að segja, ætti ég að skrifa hér (slide: Framleiðsla/umhverfi/settings.tf): lén = breyta, lén vpcnetwork, breyta vpcnetwork og stvars - get ég fengið það sama?

Það er einmitt það sem við gerum. Við vísum til dæmis til stillingauppsprettueiningarinnar.

Í meginatriðum er þetta svona tfvars. Tfvars er mjög þægilegt í prófunarumhverfi. Ég hef tfvar fyrir stór tilvik, fyrir lítil. Og ég henti einni skrá inn í möppuna. Og ég fékk það sem ég vildi. Þegar við erum að skera niður innviði viljum við að hægt sé að skoða og skilja allt strax. Og svo kemur í ljós að þú þarft að líta hér, þá líta á tfvars.

Er hægt að hafa allt á einum stað?

Já, tfvars er þegar þú ert með einn kóða. Og það er notað á nokkrum mismunandi stöðum með mismunandi blæbrigðum. Þá myndir þú kasta tfvars og fá blæbrigði þín. Og við erum innviðir sem kóða í sinni hreinustu mynd. Ég leit og skildi.

Halló! Hefur þú lent í aðstæðum þar sem skýjaveitan truflar það sem þú gerðir Terraform? Segjum að við breytum lýsigögnunum. Það eru ssh lyklar. Og Google setur stöðugt lýsigögn sín og lykla þar. Og Terraform skrifar alltaf að það hafi breytingar. Eftir hverja keyrslu, jafnvel þótt ekkert breytist, segir hann alltaf að hann muni uppfæra þennan reit núna.

Með lyklum, en já, hluti af innviðum hefur áhrif á þetta, þ.e. Terraform getur ekki breytt neinu. Við getum heldur engu breytt með höndunum. Við munum lifa með því í bili.

Það er að segja, þú hefur lent í einhverju svona, en hefur ekki fundið neitt, hvernig gerir hann það og gerir það sjálfur?

Því miður já.

Halló! Ég heiti Starkov Stanislav. Póstur. ru Group. Hvernig leysir þú vandamálið við að búa til merki á..., hvernig sendir þú það inn? Eins og ég skil það, í gegnum User - gögn til að tilgreina hýsilheitið, stilltu Puppet á? Og seinni hluti spurningarinnar. Hvernig leysir þú þetta mál í SG, þ.e. þegar þú býrð til SG, hundruð tilvika af sömu gerð, hvað er þá rétta nafnið á þeim?

Þau tilvik sem eru okkur mjög mikilvæg, við nefnum þau fallega. Þeir sem ekki eru nauðsynlegir, það er athugasemd að þetta er sjálfvirkur flokkur. Og í orði er hægt að negla það niður og fá nýjan.

Hvað vandamálið með merkið varðar, þá er ekkert slíkt vandamál, en það er slíkt verkefni. Og við notum merki mjög, mjög mikið, vegna þess að innviðir eru stórir og dýrir. Og við þurfum að skoða hvert peningarnir fara, þannig að merkingar gera okkur kleift að sundurliða það sem fór hvert. Og í samræmi við það er leitinni að einhverju sem þýðir mikið fé varið hér.

Um hvað var spurningin annars?

Þegar SG býr til hundruð tilvika, þarf þá að greina þau á einhvern hátt?

Nei, ekki. Í hverju tilviki er umboðsmaður sem tilkynnir að ég eigi við vandamál að stríða. Ef umboðsmaður tilkynnir, þá veit umboðsmaðurinn um hann og að minnsta kosti er IP-tala hans til. Þú getur nú þegar hlaupið í burtu. Í öðru lagi notum við Consul for Discovery, þar sem Kubernetes er ekki. Og Consul sýnir einnig IP tölu tilviksins.

Það er að segja, ertu að einbeita þér sérstaklega að IP, en ekki á hýsilheiti?

Það er ómögulegt að fletta eftir nafni hýsils, þ.e.a.s. þeir eru margir. Það eru tilvikaauðkenni - AE, osfrv. Þú getur fundið það einhvers staðar, þú getur hent því í leitina.

Halló! Ég áttaði mig á því að Terraform er af hinu góða, sniðið fyrir skýin.

Ekki aðeins.

Þetta er einmitt spurningin sem vekur áhuga minn. Ef þú ákveður að flytja, segjum, til Bare Metal í massavís með öllum þínum tilvikum? Verða einhver vandamál? Eða verður þú enn að nota aðrar vörur, til dæmis sömu Ansible og var minnst á hér?

Ansible snýst svolítið um eitthvað annað. Það er, Ansible virkar þegar þegar tilvik hefur byrjað. Og Terraform virkar áður en tilvikið byrjar. Skipti yfir í Bare Metal - nei.

Ekki núna, en fyrirtæki munu koma og segja: "Komdu."

Skipta yfir í annað ský - já, en það er aðeins öðruvísi bragð hér. Þú þarft að skrifa Terraform kóða á þann hátt að þú getur skipt yfir í annað ský með minni fyrirhöfn.

Upphaflega var það verkefni sett á að allur innviði okkar væri agnostic, þ.e.a.s. hvaða ský sem er ætti að henta, en á einhverjum tímapunkti gafst fyrirtækið upp og sagði: „Allt í lagi, á næstu N árum förum við ekki neitt, við getum notað þjónustu frá Amazon "

Terraform gerir þér kleift að búa til Front-End störf, stilla PagerDuty, gagnaskjal, osfrv. Það hefur mikið af skottum. Hann getur nánast stjórnað öllum heiminum.

Takk fyrir skýrsluna! Ég hef líka notað Terraform í 4 ár núna. Á stigi sléttrar umskipti yfir í Terraform, yfir í innviði, yfir í yfirlýsandi lýsingu, stóðum við frammi fyrir aðstæðum þar sem einhver var að gera eitthvað í höndunum og þú varst að reyna að gera áætlun. Og ég fékk einhvers konar villu þarna. Hvernig bregst þú við svona vandamálum? Hvernig finnurðu týnd auðlind sem hefur verið skráð?

Aðallega með höndum okkar og augum, ef við sjáum eitthvað skrítið í skýrslunni, þá greinum við hvað er að gerast þar, eða við drepum einfaldlega. Almennt séð eru dráttarbeiðnir algengur hlutur.

Ef það er villa, afturkallarðu þá? Hefurðu prófað að gera þetta?

Nei, þetta er ákvörðun einstaklings á því augnabliki sem hann sér vandamál.

Heimild: www.habr.com