{"id":37586,"date":"2019-10-31T22:18:27","date_gmt":"2019-10-31T19:18:27","guid":{"rendered":"https:\/\/prohoster.info\/blog\/infrastructure-as-code-pervoe-znakomstvo\/"},"modified":"2019-10-31T22:18:27","modified_gmt":"2019-10-31T19:18:27","slug":"infrastructure-as-code-pervoe-znakomstvo","status":"publish","type":"post","link":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/infrastructure-as-code-pervoe-znakomstvo","title":{"rendered":"Infrastructure as code: esimene tutvustus","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Meie ettev\u00f5ttes on k\u00e4imas SRE meeskonna onboardimise protsess. Alustasin seda teekonda arenduspoolelt. Protsessi k\u00e4igus tekkisid mul m\u00f5tted ja arusaamad, mida tahan teiste arendajatega jagada. Selles m\u00f5tteartiklis r\u00e4\u00e4gin, mis toimub, kuidas see toimub ja kuidas k\u00f5ik sellega edasi elavad. <\/p>\n<p><img decoding=\"async\" alt=\"Infrastructure as code: esimene tutvustus\" src=\"\/wp-content\/uploads\/2019\/08\/d154a2fbbd0dd846c763db178f02702e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<blockquote><p><b>J\u00e4tkub artiklite seeria, mis on inspireeritud esinemistest meie sise\u00fcritusel. <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/dodopizzaio\/blog\/462033\/\">DevForum<\/a><\/noindex><\/b>: <\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/dodopizzaio\/blog\/463469\/\">1. Schr\u00f6dingeri kass ilma karbita: konsensuse probleem jaotatud s\u00fcsteemides.<\/a><\/noindex><br \/>\n2. Infrastruktuur kui kood. (Sa oled siin)<br \/>\n3. \u0413\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f Typescript \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u043e\u0432 \u043f\u043e c# \u043c\u043e\u0434\u0435\u043b\u044f\u043c. (In progress&#8230;)<br \/>\n4. \u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0432 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u043a\u043e\u043d\u0441\u0435\u043d\u0441\u0443\u0441\u0430 Raft. (In progress&#8230;)<br \/>\n&#8230;<\/p><\/blockquote>\n<p>\nOtsustasime luua SRE meeskonna, ellu viies ideed <noindex><a rel=\"nofollow\" href=\"https:\/\/landing.google.com\/sre\/books\/\">google sre<\/a><\/noindex>. Koondasime programmistid oma arendajatest ja saatsime nad mitmeks kuuks koolitusele. <\/p>\n<p>Meeskonna ees seisis j\u00e4rgmine \u00f5pik\u00fcsimuste loetelu:<\/p>\n<ul>\n<li>K\u00e4esolev infrastruktuur, mis enamasti asub Microsoft Azure'is, peab olema kirjeldatud koodis (Terraform ja k\u00f5ik muu, mis sellega seondub). <\/li>\n<li>Koolitada arendajaid infrastruktuuri t\u00f6\u00f6dega. <\/li>\n<li>Valmistada arendajad ette valvekordade jaoks.<\/li>\n<\/ul>\n<p><\/p>\n<h2>Tutvustame m\u00f5istet Infrastructure as code.<\/h2>\n<p>\nTavap\u00e4rases maailmamudelisse (klassikalises halduses) on teadlikkus infrastruktuurist kahes kohas:<\/p>\n<ol>\n<li>Kas ekspertide peades olevate teadmiste kujul.<img decoding=\"async\" alt=\"Infrastructure as code: esimene tutvustus\" src=\"\/wp-content\/uploads\/2019\/08\/2400dea0a90c24b05c275b709bbd2057.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/li>\n<li>V\u00f5i on need andmed mingites masinates, millest osa teavad eksperdid. Aga ei ole kindel, et v\u00e4ljast tulev inimene (kui meie kogu meeskond \u00e4kki sureb) suudab aru saada, mis ja kuidas t\u00f6\u00f6tab. Masinas v\u00f5ib olla palju teavet: juurdep\u00e4\u00e4sud, cron-t\u00f6\u00f6d, monteeritud (vt <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Mount_(computing)\">disk mounting<\/a><\/noindex>) ketas ja lihtsalt l\u00f5putu nimekiri sellest, mis v\u00f5ib juhtuda. Selle p\u00f5hjal on keeruline m\u00f5ista, mis tegelikult toimub.<img decoding=\"async\" alt=\"Infrastructure as code: esimene tutvustus\" src=\"\/wp-content\/uploads\/2019\/08\/37bafea85a641c48683c35975f67f24d.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/li>\n<\/ol>\n<p>\nM\u00f5lemas juhul satume l\u00f5ksu, muutudes s\u00f5ltuvaks:<\/p>\n<ul>\n<li>kui inimesest, kes on surelik, haavatav haigustele, armumistele, tuju k\u00f5ikumisele ja lihtsalt banaalsetele lahkumistele;<\/li>\n<li>v\u00f5i f\u00fc\u00fcsiliselt t\u00f6\u00f6tavast masinast, mis samuti v\u00f5ib laguneda, varastada, tuua esile ootamatusi ja ebamugavusi. <\/li>\n<\/ul>\n<p>\nTuleb loomulikult v\u00e4lja m\u00f5elda lahendus, et ideaalis peaks k\u00f5ik olema viidud arusaadavasse, hooldatavasse ja kvaliteetselt kirjutatud koodi. <\/p>\n<p>Seega infrastruktuur kui kood (Infrastructure as Code \u2013 IaC) on olemasoleva infrastruktuuri kirjeldamine koodina, samuti sellega t\u00f6\u00f6tamiseks ja selleks reaalse infrastruktuuri elluviimiseks vajalikud t\u00f6\u00f6riistad.<\/p>\n<p><b class=\"spoiler_title\">Miks t\u00f5lkida k\u00f5ik koodi<\/b>Inimesed ei ole masinad. Nad ei suuda k\u00f5ike meeles pidada. Inimese ja masina reaktsioon on erinev. K\u00f5ik automatiseeritud t\u00f6\u00f6tab potentsiaalselt kiiremini kui k\u00f5ik, mida inimene teeb. K\u00f5ige olulisem on, et oleks \u00fcks t\u00f5eallikas (single source of truth). <\/p>\n<p><b class=\"spoiler_title\">Kust tulevad uued SRE-insenerid<\/b>Nii et oleme otsustanud v\u00e4rvata uusi SRE-insenere, kuid kust neid leida? Raamat \u00f5igeid vastuseid (<noindex><a rel=\"nofollow\" href=\"https:\/\/landing.google.com\/sre\/books\/\">Google SRE Raamat<\/a><\/noindex>) \u00fctleb meile: arendajatest. L\u00f5pp afinal t\u00f6\u00f6tavad nad koodiga ja te saavutate ideaalset seisundit.<\/p>\n<p>Oleme palju ja kaua otsinud neid t\u00f6\u00f6j\u00f5uturult v\u00e4ljaspool meie ettev\u00f5tet. Kuid peame tunnistama, et ei leidnud \u00fchtki, kes vastaks meie n\u00f5udmistele. Pidi vaatama oma seast. <\/p>\n<h2>Probleemid Infrastructure as Code'iga<\/h2>\n<p>\nVaadakem n\u00fc\u00fcd n\u00e4iteid selle kohta, kuidas infrastruktuur v\u00f5ib olla koodi sisse kirjutatud. Kood on h\u00e4sti kirjutatud, kvaliteetne, kommentaaride ja sisset\u00f5mmetega. <\/p>\n<p>Koodi n\u00e4ide Terraformist.<\/p>\n<p><img decoding=\"async\" alt=\"Infrastructure as code: esimene tutvustus\" src=\"\/wp-content\/uploads\/2019\/08\/1a0bbca47e88fb12e97c0f270efba177.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKoodi n\u00e4ide Ansible'ist.<\/p>\n<p><img decoding=\"async\" alt=\"Infrastructure as code: esimene tutvustus\" src=\"\/wp-content\/uploads\/2019\/08\/358fad8f5944bca1b97b2d6e37b2ee5e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nH\u00e4rra, kui ainult k\u00f5ik oleks nii lihtne! Me oleme ju reaalsetes tingimustes ja need on alati valmis \u00fcllatama, tuues esile probleeme. Siin ei saa ka ilma nendeta.<\/p>\n<p><b>1. Esimene probleem on see, et enamikul juhtudel on IaC mingi DSL.<\/b><\/p>\n<p>Ja DSL on omakorda struktuuri kirjeldus. T\u00e4psemalt, see, mis sul olema peab: JSON, YAML, suuremate ettev\u00f5tete modifikatsioonid, kes on loonud oma DSL-i (Terraformis kasutatakse HCL-i). <\/p>\n<p>Mure on selles, et see v\u00f5ib kergesti mitte sisaldada selliseid tuttavaid elemente nagu:<\/p>\n<ul>\n<li>muutujad;<\/li>\n<li>tingimused;<\/li>\n<li>kusagil ei ole kommentaare, n\u00e4iteks JSON-is ei ole neid vaikimisi;<\/li>\n<li>funktsioonid;<\/li>\n<li>ja ma ei ole veel r\u00e4\u00e4kinud sellistest k\u00f5rgema taseme asjadest nagu klassid, p\u00e4rilikkus ja k\u00f5ik muu.<\/li>\n<\/ul>\n<p>\n <b>2. Teine sellise koodi probleem on see, et see on enamasti heterogeenne keskkond.<\/b>Tavaliselt istud ja t\u00f6\u00f6tad C#-ga, st \u00fche keele, \u00fche stack-i, \u00fche \u00f6kos\u00fcsteemiga. Ja n\u00fc\u00fcd on sul tohutu tehnoloogiate mitmekesisus. <\/p>\n<p>V\u00e4ga reaalne olukord, kus bash Pythonis k\u00e4ivitab mingi protsessi, kuhu sisestatakse Json. Te anal\u00fc\u00fcsite seda, seej\u00e4rel annab mingi generaator veel 30 faili. K\u00f5ik need sisendmuutujad tulevad Azure Key Vaultist, mis on t\u00f5mmatud drone.io pistikprogrammiga, mis on kirjutatud Go keeles, ja need muutujad l\u00e4bivad yaml'i, mis on saadud jsonnet'i mallist genereerimise tulemusena. On \u00fcsna keeruline omada rangelt h\u00e4sti dokumenteeritud koodi, kui teil on nii mitmekesine keskkond. <\/p>\n<p>Traditsiooniline arendus \u00fche \u00fclesande raames k\u00e4ib \u00fche keelega. Siiski t\u00f6\u00f6tame me siin suure hulga keeltes. <\/p>\n<p><b>3. Kolmas probleem on t\u00f6\u00f6riistad.<\/b>. Oleme harjunud \u00e4gedate redigeerijate (Ms Visual Studio, Jetbrains Rider) kasutamisega, mis teevad k\u00f5ik meie eest. Ja isegi kui me eksime, \u00fctlevad nad, et me pole \u00f5iged. Tundub, et see on normaalne ja loomulik. <\/p>\n<p>Aga kuskil l\u00e4hedal on VSCode, kus on m\u00f5ned pluginad, mis kuidagi installitakse, toetatakse v\u00f5i ei toetata. Uued versioonid on v\u00e4lja tulnud, kuid neid ei ole toetatud. Lihtne \u00fcleminek funktsiooni rakendamisele (isegi kui see olemas on) muutub keeruliseks ja mitte triviaalseks probleemiks. Lihtne muutuja \u00fcmbernimetamine on projektis asendus k\u00fcmnes failis. \u00d5nnestub, kui see t\u00f5esti teeb vajalikud asendused. Muidugi on seal kuskil esilet\u00f5stmine, automaatne l\u00f5petamine, kuskil on vormindus (t\u00f5si, mul ei hakanud see Windowsis Terrraformis t\u00f6\u00f6le). <\/p>\n<p>Artikli kirjutamise hetkel <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/mauve\/vscode-terraform\">vscode-terraform plugin<\/a><\/noindex> veel ei ole v\u00e4lja antud versiooni 0.12 toetamiseks, kuigi see on juba kolm kuud v\u00e4lja antud.<\/p>\n<h2>\u041f\u0440\u0438\u0448\u043b\u043e \u0432\u0440\u0435\u043c\u044f \u0437\u0430\u0431\u044b\u0442\u044c \u043e&#8230;<\/h2>\n<p><\/p>\n<ol>\n<li>Silumisega.<\/li>\n<li>Refaktooringut\u00f6\u00f6riist.<\/li>\n<li>Automaatne l\u00f5petamine.<\/li>\n<li>Vigu tuvastades kompileerimisel.<\/li>\n<\/ol>\n<p>\nNaljakas, aga see t\u00f5stab arendusaega ja suurendab vigade arvu, mis paratamatult tekivad. <\/p>\n<p>K\u00f5ige hullem on see, et me oleme sunnitud m\u00f5tlema mitte sellele, kuidas projekteerida, faile kaustades jaotada, dekompositsioonida, teha koodi hooldatavaks, loetavaks jne, vaid sellele, kuidas ma selle k\u00e4su \u00f5igesti kirjutaksin, sest ma kirjutasin selle kuidagi valesti. <\/p>\n<p>Kuna algaja proovite m\u00f5ista Terraformi, ja IDE ei aita teid selle juures sugugi. Kui on dokumentatsioon \u2013 logite sisse, vaatate \u00fcle. Aga kui te siseneksite uude programmeerimiskeelde, siis IDE annaks teada, et selline t\u00fc\u00fcp on olemas, aga sellist pole. V\u00e4hemalt int v\u00f5i string tasemel. See on sageli kasulik. <\/p>\n<h2>Aga kuidas j\u00e4\u00e4b testidega?<\/h2>\n<p>\nTe v\u00f5ite k\u00fcsida: \u201eAga kuidas j\u00e4\u00e4b testidega, h\u00e4rra programmistid?\u201d T\u00f5sised kutid testivad k\u00f5ike tootmises, ja see on karm. Siin on n\u00e4ide \u00fchi-testist Terraformi mooduli jaoks saidilt. <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.microsoft.com\/ru-ru\/azure\/terraform\/terratest-in-terraform-modules\">Microsoft<\/a><\/noindex>. <\/p>\n<p><img decoding=\"async\" alt=\"Infrastructure as code: esimene tutvustus\" src=\"\/wp-content\/uploads\/2019\/08\/b9391409941e14f7e3cf6f8d964a2668.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNeil on hea dokumentatsioon. Microsoft on mulle alati meeldinud oma l\u00e4henemise t\u00f5ttu dokumentatsioonile ja koolitusele. Kuid ei pea olema onu Bob, et m\u00f5ista, et siin pole ideaalne kood. P\u00f6\u00f6rake t\u00e4helepanu valideerimisele, mis on viidud paremale. <\/p>\n<p>\u00dchi-testi probleem on see, et me saame kontrollida Jsoni korrektsust v\u00e4ljundis. Ma sisestasin 5 parameetrit, ja mulle anti 2000 rida Jsoni. Ma saan anal\u00fc\u00fcsida, mis siin toimub, valideerida testitulemust... <\/p>\n<p>JSON-i anal\u00fc\u00fcsimine Go-s on keeruline. Samas on vajalik kirjutada Go-s, kuna Terraform Go-s on hea praktika, et testida selles keeles, milles sa kirjutad. Koodi struktuur on v\u00e4ga n\u00f5rk. Sellegipoolest on see parim raamatukogu testimiseks. <\/p>\n<p>Isegi Microsoft kirjutab oma mooduleid, testides neid sellisel viisil. Loomulikult on see avatud l\u00e4htekoodiga. K\u00f5ike, millest ma r\u00e4\u00e4gin, saad tulla ja parandada. Ma v\u00f5in istuda ja n\u00e4dala jagu k\u00f5ik parandada, avatud l\u00e4htekoodiga VS-koodipluginad, Terraform'i, teha plugina Riderile. V\u00f5ib-olla kirjutada paar anal\u00fcsaatorit, lisada linte, anda panuse testimise raamatukokku. K\u00f5ike saan teha. Aga ma ei peaks sellega tegelema. <\/p>\n<h2>Parimad praktikad infrastruktuuri kui koodi puhul<\/h2>\n<p>\nLiikume edasi. Kui IaC-s ei ole teste, on IDE ja t\u00f6\u00f6riistadega halb, siis peavad olema v\u00e4hemalt parimad praktikad. L\u00e4ksin lihtsalt Google Analyticsisse ja tegin v\u00f5rdluse kahe otsingu vahel: Terraformi parimad praktikad ja C# parimad praktikad. <\/p>\n<p><img decoding=\"async\" alt=\"Infrastructure as code: esimene tutvustus\" src=\"\/wp-content\/uploads\/2019\/08\/3d0e8cd626596deea99324285321a0ab.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMida me n\u00e4eme? Raudne statistika ei ole meie heaks. Materjali osas on olukord sama. C# arenduses oleme lihtsalt \u00fcle ujutatud materjalidest \u2013 meil on parimad praktikad, ekspertide kirjutatud raamatud ning samuti raamatud, mis on kirjutatud teiste ekspertide poolt, kes kritiseerivad neid raamatuid. Hulgaliselt ametlikku dokumentatsiooni, artikleid, koolituskursusi ning n\u00fc\u00fcd ka open source arendust.<\/p>\n<p>Mis puutub IaC p\u00e4ringusse: siin p\u00fc\u00fcate killukehaaval koguda teavet highload konverentsidelt v\u00f5i HashiConf'ilt, ametlikest dokumentatsioonidest ja arvukatest probleemidest GitHubis. Kuidas need moodulid \u00f5igesti laiendada, mida nendega teha? Tundub, et see on t\u00f5eline probleem\u2026 Meil on ju olemas kogukond, head inimesed, kus iga k\u00fcsimuse peale antakse teile 10 kommentaari GitHubis. Aga see ei ole sugugi kindel. <\/p>\n<p>Kahjuks hakkavad eksperdid alles n\u00fc\u00fcd v\u00e4lja tulema. Praegu on neid veel liiga v\u00e4he. Ja kogu kogukond on veel algusj\u00e4rgus. <\/p>\n<h2>Kuhu see k\u00f5ik suundub ja mida teha?<\/h2>\n<p>\nV\u00f5id k\u00f5ik ringi teha ja naasta C# maailma, aga miks? Miks sa \u00fcldse teeksid nii, kui pole lahendust leida. Allpool toon v\u00e4lja oma subjektiivsed j\u00e4reldused. Saate minuga kommenteerida, oleks huvitav. <\/p>\n<p>Isiklikult panustan mitmele asjale:<\/p>\n<ol>\n<li>Areng sellel alal toimub v\u00e4ga kiiresti. Toon v\u00e4lja DevOps'i p\u00e4ringute graafiku.\n<p><img decoding=\"async\" alt=\"Infrastructure as code: esimene tutvustus\" src=\"\/wp-content\/uploads\/2019\/08\/068276f040f17c84a4c7eb9e11703c5c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nV\u00f5ib-olla on teema moes, kuid see, et valdkond kasvab, annab teatud lootust. <\/p>\n<p>Kui midagi kasvab nii kiiresti, siis kindlasti tekivad targad inimesed, kes \u00fctlevad, kuidas asju teha ja kuidas mitte. Populaarsuse suurenemine v\u00f5ib t\u00e4hendada, et l\u00f5puks kellegil on aega l\u00f5petada jsonnet plugin vscode'ile, mis v\u00f5imaldab liikuda funktsiooni rakenduse juurde, mitte otsida seda l\u00e4bi ctrl+shift+f. Kui k\u00f5ik areneb, tuleb rohkem materjale. Google'i uus SRE raamat on suurep\u00e4rane n\u00e4ide sellest.<\/li>\n<li>On olemas v\u00e4lja t\u00f6\u00f6tatud meetodid ja praktikad tavaarenduses, mida saame siin edukalt rakendada. Jah, testimise ja heterogeense keskkonna osas on n\u00fcansse, t\u00f6\u00f6riistade puuduj\u00e4\u00e4gid, kuid on kogunenud tohutult praktikaid, mis v\u00f5ivad olla kasulikud ja abi pakkuda.\n<p>\u00dcks lihtne n\u00e4ide: koost\u00f6\u00f6 l\u00e4bi paarit\u00f6\u00f6. See aitab t\u00f5eliselt arusaamist parandada. Kui sul on k\u00f5rval naaber, kes \u00fcritab ka midagi m\u00f5ista, siis koos m\u00f5istate paremini.<\/p>\n<p> M\u00f5istmine, kuidas refaktoreerida, aitab isegi sellises olukorras seda teostada. See t\u00e4hendab, et sa ei pea kohe k\u00f5ike muutma, vaid saad alustada nimedest, seej\u00e4rel asukohast, ja p\u00e4rast v\u00f5ib-olla eraldada mingi osa. Oi, ja siia j\u00e4\u00e4b kommenteerimisest puudu. <\/li>\n<\/ol>\n<p><\/p>\n<h2>Kokkuv\u00f5te<\/h2>\n<p>\nKuigi minu m\u00f5tted v\u00f5ivad tunduda pessimistlikud, vaatan ma tulevikku lootusrikkalt ja loodan siiralt, et meil (ja teil) l\u00e4heb k\u00f5ik h\u00e4sti.<\/p>\n<blockquote><p>J\u00e4rgmine osa artiklist on valmimas. Selles r\u00e4\u00e4gin sellest, kuidas proovime rakendada paindliku arenduse praktikaid, et parandada meie \u00f5ppeprotsessi ja t\u00f6\u00f6d infrastruktuuriga.<\/p><\/blockquote>\n<p>Allikas: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/dodopizzaio\/blog\/465137\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0423 \u043d\u0430\u0441 \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u0438\u0434\u0451\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043e\u043d\u0431\u043e\u0440\u0434\u0438\u043d\u0433\u0430 SRE-\u043a\u043e\u043c\u0430\u043d\u0434\u044b. \u042f \u0437\u0430\u0448\u0451\u043b \u0432\u043e \u0432\u0441\u044e \u044d\u0442\u0443 \u0438\u0441\u0442\u043e\u0440\u0438\u044e \u0441\u043e \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438. \u0412 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0443 \u043c\u0435\u043d\u044f \u043f\u043e\u044f\u0432\u0438\u043b\u0438\u0441\u044c \u043c\u044b\u0441\u043b\u0438 \u0438 \u0438\u043d\u0441\u0430\u0439\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u044f \u0445\u043e\u0447\u0443 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0441 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c\u0438. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435-\u0440\u0430\u0437\u043c\u044b\u0448\u043b\u0435\u043d\u0438\u0438 \u044f \u0433\u043e\u0432\u043e\u0440\u044e \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442, \u043a\u0430\u043a \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442, \u0438 \u043a\u0430\u043a \u0432\u0441\u0435\u043c \u0434\u0430\u043b\u044c\u0448\u0435 \u0441 \u044d\u0442\u0438\u043c \u0436\u0438\u0442\u044c. \u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u0435 \u0441\u0435\u0440\u0438\u0438 \u0441\u0442\u0430\u0442\u0435\u0439, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0445 \u043f\u043e [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":28211,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-37586","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0423 \u043d\u0430\u0441 \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u0438\u0434\u0451\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043e\u043d\u0431\u043e\u0440\u0434\u0438\u043d\u0433\u0430 SRE-\u043a\u043e\u043c\u0430\u043d\u0434\u044b. \u042f \u0437\u0430\u0448\u0451\u043b \u0432\u043e \u0432\u0441\u044e \u044d\u0442\u0443 \u0438\u0441\u0442\u043e\u0440\u0438\u044e \u0441\u043e \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438. \u0412 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0443 \u043c\u0435\u043d\u044f \u043f\u043e\u044f\u0432\u0438\u043b\u0438\u0441\u044c \u043c\u044b\u0441\u043b\u0438 \u0438 \u0438\u043d\u0441\u0430\u0439\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u044f \u0445\u043e\u0447\u0443 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0441 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c\u0438. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435-\u0440\u0430\u0437\u043c\u044b\u0448\u043b\u0435\u043d\u0438\u0438 \u044f \u0433\u043e\u0432\u043e\u0440\u044e \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442, \u043a\u0430\u043a \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442, \u0438 \u043a\u0430\u043a \u0432\u0441\u0435\u043c \u0434\u0430\u043b\u044c\u0448\u0435 \u0441 \u044d\u0442\u0438\u043c \u0436\u0438\u0442\u044c. \u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u0435 \u0441\u0435\u0440\u0438\u0438 \u0441\u0442\u0430\u0442\u0435\u0439, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/infrastructure-as-code-pervoe-znakomstvo\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"et_EE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47Infrastructure as code: \u043f\u0435\u0440\u0432\u043e\u0435 \u0437\u043d\u0430\u043a\u043e\u043c\u0441\u0442\u0432\u043e | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0423 \u043d\u0430\u0441 \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u0438\u0434\u0451\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043e\u043d\u0431\u043e\u0440\u0434\u0438\u043d\u0433\u0430 SRE-\u043a\u043e\u043c\u0430\u043d\u0434\u044b. \u042f \u0437\u0430\u0448\u0451\u043b \u0432\u043e \u0432\u0441\u044e \u044d\u0442\u0443 \u0438\u0441\u0442\u043e\u0440\u0438\u044e \u0441\u043e \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438. \u0412 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0443 \u043c\u0435\u043d\u044f \u043f\u043e\u044f\u0432\u0438\u043b\u0438\u0441\u044c \u043c\u044b\u0441\u043b\u0438 \u0438 \u0438\u043d\u0441\u0430\u0439\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u044f \u0445\u043e\u0447\u0443 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0441 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c\u0438. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435-\u0440\u0430\u0437\u043c\u044b\u0448\u043b\u0435\u043d\u0438\u0438 \u044f \u0433\u043e\u0432\u043e\u0440\u044e \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442, \u043a\u0430\u043a \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442, \u0438 \u043a\u0430\u043a \u0432\u0441\u0435\u043c \u0434\u0430\u043b\u044c\u0448\u0435 \u0441 \u044d\u0442\u0438\u043c \u0436\u0438\u0442\u044c. \u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u0435 \u0441\u0435\u0440\u0438\u0438 \u0441\u0442\u0430\u0442\u0435\u0439, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/infrastructure-as-code-pervoe-znakomstvo\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:18:27+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:18:27+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Infrastruktuur kui kood: esimene tutvustus | ProHoster","description":"Meie ettev\u00f5ttes on SRE-meeskonna onboardimise protsess k\u00e4imas. Olen selles loos olnud arenduse k\u00fcljest. Protsessi jooksul on mul tekkinud m\u00f5tteid ja m\u00e4rkusi, millega tahan teiste arendajatega jagada. Selles m\u00f5tteartiklis r\u00e4\u00e4gin, mis toimub, kuidas toimub ja kuidas saavad k\u00f5ik sellega edasi elada. Artiklite seeria j\u00e4tk, mille on kirjutanud","canonical_url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/infrastructure-as-code-pervoe-znakomstvo","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"et_EE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47Infrastructure as code: \u043f\u0435\u0440\u0432\u043e\u0435 \u0437\u043d\u0430\u043a\u043e\u043c\u0441\u0442\u0432\u043e | ProHoster","og:description":"\u0423 \u043d\u0430\u0441 \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u0438\u0434\u0451\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043e\u043d\u0431\u043e\u0440\u0434\u0438\u043d\u0433\u0430 SRE-\u043a\u043e\u043c\u0430\u043d\u0434\u044b. \u042f \u0437\u0430\u0448\u0451\u043b \u0432\u043e \u0432\u0441\u044e \u044d\u0442\u0443 \u0438\u0441\u0442\u043e\u0440\u0438\u044e \u0441\u043e \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438. \u0412 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0443 \u043c\u0435\u043d\u044f \u043f\u043e\u044f\u0432\u0438\u043b\u0438\u0441\u044c \u043c\u044b\u0441\u043b\u0438 \u0438 \u0438\u043d\u0441\u0430\u0439\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u044f \u0445\u043e\u0447\u0443 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0441 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c\u0438. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435-\u0440\u0430\u0437\u043c\u044b\u0448\u043b\u0435\u043d\u0438\u0438 \u044f \u0433\u043e\u0432\u043e\u0440\u044e \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442, \u043a\u0430\u043a \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442, \u0438 \u043a\u0430\u043a \u0432\u0441\u0435\u043c \u0434\u0430\u043b\u044c\u0448\u0435 \u0441 \u044d\u0442\u0438\u043c \u0436\u0438\u0442\u044c. \u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u0435 \u0441\u0435\u0440\u0438\u0438 \u0441\u0442\u0430\u0442\u0435\u0439, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0445 \u043f\u043e","og:url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/infrastructure-as-code-pervoe-znakomstvo","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:18:27+00:00","article:modified_time":"2019-10-31T19:18:27+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"37586","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-23 18:29:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:24:24","updated":"2026-01-23 18:29:19"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/37586","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/comments?post=37586"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/37586\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media\/28211"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=37586"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=37586"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=37586"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}