{"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":"Infrastruktuur kui kood: esimene tutvustus","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Meie ettev\u00f5ttes on k\u00e4imas SRE-meeskonna onboardingu protsess. Ma l\u00e4ksin k\u00f5ikidesse detailidesse arenduse poolelt. Protsessi k\u00e4igus tekkisid mul m\u00f5tted ja teadmised, mida soovin jagada teiste arendajatega. Selles artiklis m\u00f5tisklen, mis toimub, kuidas see toimub ja kuidas k\u00f5igil edasi elada. <\/p>\n<p><img decoding=\"async\" alt=\"Infrastruktuur kui kood: 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>Seeria artiklid, mis on kirjutatud meie sisemise \u00fcrituse ettekannete p\u00f5hjal <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: konsensusprobleem jaotatud s\u00fcsteemides.<\/a><\/noindex><br \/>\n2. Infrastruktur kui kood. (Sa oled siin)<br \/>\n3. Typescript lepingute genereerimine C# mudelite p\u00f5hjal. (T\u00f6\u00f6s&#8230;)<br \/>\n4. Sissejuhatus Raft konsensusalgoritmi. (T\u00f6\u00f6s&#8230;)<br \/>\n&#8230;<\/p><\/blockquote>\n<p>\nOleme otsustanud luua SRE-meeskonna, elluviides ideid <noindex><a rel=\"nofollow\" href=\"https:\/\/landing.google.com\/sre\/books\/\">google sre<\/a><\/noindex>. V\u00e4rbasime oma arendajatest programmeerijaid ja saatsime nad mitmeks kuuks koolitusele. <\/p>\n<p>Meeskonna ees seisis j\u00e4rgmine \u00f5pik\u00fcsimuste kogum:<\/p>\n<ul>\n<li>Kirjeldada meie infrastruktuuri, mis enamikus asub Microsoft Azure\u2019is, koodina (Terraform ja k\u00f5ik, mis selle \u00fcmber on). <\/li>\n<li>\u00d5petada arendajaid infrastruktuuriga t\u00f6\u00f6tama. <\/li>\n<li>Valmistada arendajad ette vahetusteks.<\/li>\n<\/ul>\n<p><\/p>\n<h2>Tutvustame m\u00f5istet Infrastructure as code<\/h2>\n<p>\nTavap\u00e4rases maailmamudelis (klassikalises halduses) on teadlikkus infrastruktuurist kahes kohas:<\/p>\n<ol>\n<li>Kas ekspertide peades.<img decoding=\"async\" alt=\"Infrastruktuur kui kood: esimene tutvustus\" src=\"\/wp-content\/uploads\/2019\/08\/2400dea0a90c24b05c275b709bbd2057.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/li>\n<li>V\u00f5i need andmed asuvad mingitel masinatel, millest osa teavad ekspertid. Kuid pole kindel, et keegi v\u00e4ljastpoolt (kui meie meeskond peaks \u00e4kki k\u00f5ik \u00fchesuguste probleemide t\u00f5ttu lahkuma) suudab aru saada, mis ja kuidas t\u00f6\u00f6tab. Masinas v\u00f5ib olla palju andmeid: ligip\u00e4\u00e4sud, cron-t\u00f6\u00f6d, pealeloodud (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\u00f5iks juhtuda. Sellest on keeruline aru saada, mis tegelikult toimub.<img decoding=\"async\" alt=\"Infrastruktuur kui kood: esimene tutvustus\" src=\"\/wp-content\/uploads\/2019\/08\/37bafea85a641c48683c35975f67f24d.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/li>\n<\/ol>\n<p>\nM\u00f5lemas olukorras satume l\u00f5ksu, muutes end s\u00f5ltuvaks:<\/p>\n<ul>\n<li>kas inimesest, kes on surelik, haigestuv, armumas, tujukas ja lihtsalt tavaliste lahkumiste t\u00f5ttu;<\/li>\n<li>v\u00f5i f\u00fc\u00fcsiliselt t\u00f6\u00f6tavast masinast, mis ka v\u00f5ib kokku kukkuda, varastada, tuua ootamatuid olukordi ja ebamugavusi. <\/li>\n<\/ul>\n<p>\nIlmselgelt kerkib lahendusena esile m\u00f5te, et ideaaljuhul tuleb k\u00f5ik viia inimloetavasse, hooldatavasse, kvaliteetselt kirjutatud koodi. <\/p>\n<p>Nii et infrastruktuur kui kood (Infrastructure as Code \u2013 IaC) on kogu olemasoleva infrastruktuuri kirjeldus koodina, samuti selle t\u00f6\u00f6riistad ja meetodid, mis v\u00f5imaldavad seda tegelikuks infrastruktuuriks muuta.<\/p>\n<p><b class=\"spoiler_title\">Miks tuleks k\u00f5ik koodi t\u00f5lkida<\/b>Inimesed ei ole masinad. Nad ei suuda k\u00f5ike meelde j\u00e4tta. Inimese ja masina reaktsioon on erinev. K\u00f5ik automatiseeritud toimib potentsiaalselt kiiremini kui see, mida teeb inimene. K\u00f5ige olulisem on see, et oleks \u00fcks t\u00f5e allikas (single source of truth). <\/p>\n<p><b class=\"spoiler_title\">Kust tulevad uued SRE-insenerid<\/b>Nii et me otsustasime kaasata uusi SRE-insenere, aga kust neid saada? Raamat \u00f5igete vastustega (<noindex><a rel=\"nofollow\" href=\"https:\/\/landing.google.com\/sre\/books\/\">Google SRE raamat<\/a><\/noindex>) \u00fctleb meile: arendajatest. Nad t\u00f6\u00f6tavad koodiga, samas kui teie saavutate ideaalse oleku.<\/p>\n<p>Oleme pikka aega ja p\u00f5hjalikult otsinud neid t\u00f6\u00f6j\u00f5uturult v\u00e4ljaspool meie ettev\u00f5tet. Aga peame tunnistama, et ei leidnud kedagi, kes vastaks meie n\u00f5udmistele. PIDIME uurima oma seast. <\/p>\n<h2>Infra struktuuuri kui koodi probleemid<\/h2>\n<p>\nVaatame n\u00fc\u00fcd n\u00e4iteid sellest, kuidas infrastruktuur v\u00f5ib olla koodi sisse kirjutatud. Kood on h\u00e4sti kirjutatud, kvaliteetne, koos kommentaaride ja s\u00e4tetega. <\/p>\n<p>N\u00e4ide koodist Terraformis.<\/p>\n<p><img decoding=\"async\" alt=\"Infrastruktuur kui kood: esimene tutvustus\" src=\"\/wp-content\/uploads\/2019\/08\/1a0bbca47e88fb12e97c0f270efba177.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nN\u00e4ide koodist Ansible'is.<\/p>\n<p><img decoding=\"async\" alt=\"Infrastruktuur kui kood: esimene tutvustus\" src=\"\/wp-content\/uploads\/2019\/08\/358fad8f5944bca1b97b2d6e37b2ee5e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nHead daamid ja h\u00e4rrad, aga kui k\u00f5ik oleks nii lihtne! Me oleme reaalsetes oludes ja need suudavad teid alati \u00fcllatada, tuues esile probleeme. Siin ei ole erandiks.<\/p>\n<p><b>1. Esimene probleem seisneb selles, et enamasti on IaC mingi DSL.<\/b><\/p>\n<p>Ja DSL on omakorda struktuuri kirjeldus. T\u00e4psemalt, mida sul peaks olema: Json, Yaml, suurte ettev\u00f5tete modifikatsioonid, kes on loonud oma DSL-i (Terraformis kasutatakse HCL-i). <\/p>\n<p>Probleem on selles, et seal v\u00f5ivad puududa sellised tuttavad asjad nagu:<\/p>\n<ul>\n<li>muutujad;<\/li>\n<li>tingimused;<\/li>\n<li>m\u00f5nes kohas puuduvad kommentaarid, n\u00e4iteks Jsonis, nende jaoks pole vaikimisi ette n\u00e4htud;<\/li>\n<li>funktsioonid;<\/li>\n<li>ja ma ei ole veel r\u00e4\u00e4kinud sellistest k\u00f5rgema taseme asjadest nagu klassid, p\u00e4rimine ja k\u00f5ik selline.<\/li>\n<\/ul>\n<p>\n <b>2. Teine probleem sellise koodi puhul on see, et see on enamasti heterogeenne keskkond<\/b>. Tavaliselt istute ja t\u00f6\u00f6tate C#-ga, s.t. \u00fche keele, \u00fche tehnoloogia, \u00fche \u00f6kos\u00fcsteemiga. Ja n\u00fc\u00fcd on teil tohutu tehnoloogiate mitmekesisus. <\/p>\n<p>Tavaliselt on olukord, kus bash Pythoniga k\u00e4ivitab mingi protsessi, millele pannakse alla Json. Sa anal\u00fc\u00fcsid seda, siis mingisugune generaator genereerib veel 30 faili. K\u00f5ikide nende jaoks sisendi muutujad tulevad Azure Key Vault'ist, mis on drone.io plugina kaudu, mis on kirjutatud Go-s, ja need muutujad l\u00e4hevad l\u00e4bi yaml-i, mis on saadud jsonnet'i templati generaatori tulemusena. Suhteliselt keeruline on omada rangelt h\u00e4sti kirjeldatud koodi, kui sul on nii mitmekesine keskkond. <\/p>\n<p>Traditsiooniline areng \u00fche \u00fclesande raames toimub \u00fche keelega. Siin aga t\u00f6\u00f6tab suur hulk keeli. <\/p>\n<p><b>3. Kolmas probleem on t\u00f6\u00f6riistadega.<\/b>. Oleme harjunud \u00e4gedate redaktoritega (Ms Visual Studio, Jetbrains Rider), mis teevad k\u00f5ik meie eest. Ja isegi, kui me eksime, \u00fctlevad nad, et me ei ole \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 toeta. Tuli v\u00e4lja uusi versioone, kuid neid ei toetatud. Tavaline \u00fcleminek funktsiooni rakendamisele (isegi kui see on olemas) muutub keeruliseks ja mitte triviaalseteks probleemiks. Lihtne muutuja nimetuse muutmine \u2013 see on asendus projektis k\u00fcmnes failis. On \u00f5nne, kui see asendab \u00f5iged asjad. \u00dckskord, muidugi, on kuskil valgustamine, on automaatkomplekteerimine, kuskil on vormindamine (kuid mul ei l\u00e4inud see t\u00f6\u00f6le Terraformis Windowsis). <\/p>\n<p>Artikli kirjutamise hetkeks <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/mauve\/vscode-terraform\">vscode-terraform plugin<\/a><\/noindex> pole veel v\u00e4lja antud versiooni 0.12 toetamiseks, kuigi see on juba kolm kuud v\u00e4lja lastud.<\/p>\n<h2>On aeg unustada&#8230;<\/h2>\n<p><\/p>\n<ol>\n<li>Silumine.<\/li>\n<li>Refaktoreerimise t\u00f6\u00f6riist.<\/li>\n<li>Automaatne t\u00e4iendamine.<\/li>\n<li>Vigade avastamine kompileerimisel.<\/li>\n<\/ol>\n<p>\nNaeruv\u00e4\u00e4rne, aga see suurendab arendusaega ja suurendab vigade arvu, mis on paratamatud. <\/p>\n<p>K\u00f5ige hullem on, et meie peame m\u00f5tlema mitte sellele, kuidas projekteerida, jagada faile kaustadesse, dekompositsioneerida, teha koodi toetavaks, loetavaks ja nii edasi, vaid sellele, kuidas ma pean \u00f5igesti seda k\u00e4sku kirjutama, sest ma kirjutasin selle kuidagi valesti. <\/p>\n<p>Kuna uus inimene proovib \u00f5ppida Terraformi, ei aita IDE teid selle osas \u00fcldse. Kui on dokumentatsioon - sisenen, vaatan. Kuid kui sisenete uude programmeerimiskeelde, siis IDE n\u00e4itaks, et selline t\u00fc\u00fcp on olemas ja sellist pole. \u00dcksk\u00f5ik millisel juhul, int ja string tasemel. See on sageli kasulik. <\/p>\n<h2>Aga kuidas testidega?<\/h2>\n<p>\nK\u00fcsite: \u00abKuidas on testide asi, h\u00e4rrased programmeerijad?\u00bb T\u00f5sised kutid testivad k\u00f5ike tootmises, ja see on karm. Siin on n\u00e4ide \u00fcksustest terrafomi mooduli jaoks veebisaidilt. <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=\"Infrastruktuur kui kood: 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 alati mulle meeldinud oma l\u00e4henemise t\u00f5ttu dokumentatsioonile ja \u00f5ppimisele. Kuid pole vaja olla onu Bob, et m\u00f5ista, et kood ei ole siin ideaalne. Pange t\u00e4hele, et valideerimine on t\u00f5stetud paremale. <\/p>\n<p>\u00dcksuse testi probleem on see, et saame kontrollida JSON-i korrektsust v\u00e4ljundis. Ma andsin 5 parameetrit, mulle tuli v\u00e4lja 2000 rea pikkune JSON. Ma saan anal\u00fc\u00fcsida, mis siin toimub, valideerida testitulemust... <\/p>\n<p>JSON-i anal\u00fc\u00fcsimine Go-s on keeruline. Kuid tuleb kirjutada Go-s, sest terrafomi kirjutamine Go-s on hea praktika, et testida selles keeles, milles sa kirjutad. Koodi korraldus on v\u00e4ga n\u00f5rk. Sellegipoolest on see parim testimise teek. <\/p>\n<p>Isegi Microsoft kirjutab oma mooduleid, testides neid niimoodi. Muidugi, see on avatud l\u00e4htekoodiga. K\u00f5ike, millest ma r\u00e4\u00e4gin, saad tulla ja parandada. Ma saan istuda ja n\u00e4dalaga k\u00f5ik korda teha, avada VS koodi pistikprogrammid, terrafomi, kirjutada pistikprogrammi raiderile. V\u00f5ib-olla kirjutada paar anal\u00fcsaatorit, lisada linterid, panustada testimise teeki. Ma saan k\u00f5ik teha. Kuid ma ei peaks sellega tegelema. <\/p>\n<h2>Parimad praktikad infrastruktuuri kui koodi osas<\/h2>\n<p>\nJ\u00e4tkame. Kui IaC-s ei ole teste, on IDE ja t\u00f6\u00f6riistadega kehvasti, peaksid olema v\u00e4hemalt parimad praktikad. Ma l\u00e4ksin lihtsalt Google Analyticsisse ja v\u00f5rdlesin kahte otsingup\u00e4ringut: Terraformi parimad praktikad ja C# parimad praktikad. <\/p>\n<p><img decoding=\"async\" alt=\"Infrastruktuur kui kood: 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 kasuks. Materjali arvu poolest on sama. C# arenduses me lihtsalt ujume materjalides, meil on \u00fclbed parimad praktikad, on raamatud, mis on kirjutatud ekspertide poolt, samuti raamatud, mis on kirjutatud raamatute kohta, mis on kirjutatud teiste ekspertide poolt, kes kritiseerivad neid raamatuid. Meres on ametlikku dokumentatsiooni, artikleid, koolituskursusi, praegu veel avatud l\u00e4htekoodiga arendust.<\/p>\n<p>Mis puutub IaC p\u00e4ringusse: siin p\u00fc\u00fcate killukaupa koguda teavet k\u00f5rgkoormuse ettekannetest v\u00f5i HashiConfi ametlikest dokumentidest ja paljusid probleeme GitHubis. Kuidas need moodulid \u00fcldse levitada, mida nendega teha? Tundub, et see on t\u00f5eline probleem... On ju olemas kogukond, h\u00e4rrased, kus igale k\u00fcsimusele antakse sulle 10 kommentaari GitHubis. Kuid see ei ole kindel. <\/p>\n<p>Kahjuks on hetkel eksperdid alles alustamas. Nende on liiga v\u00e4he. Ja kogu kogukond on alles algusj\u00e4rgus. <\/p>\n<h2>Kuhu k\u00f5ik see liigub ja mida teha<\/h2>\n<p>\nV\u00f5ib k\u00f5ik visata ja minna tagasi C# maailma, rahu juurde. Aga ei. Miks te \u00fcldse selle tegevuse juurde asusite, kui mitte lahenduse leidmiseks. Edasi toon oma subjektiivsed j\u00e4reldused. V\u00f5ite minuga kommenteerida, see oleks huvitav. <\/p>\n<p>Isiklikult panustan mitmele asjale:<\/p>\n<ol>\n<li>Selles valdkonnas areng toimub v\u00e4ga kiiresti. Toon v\u00e4lja DevOps'i p\u00e4ringute graafiku.\n<p><img decoding=\"async\" alt=\"Infrastruktuur kui kood: esimene tutvustus\" src=\"\/wp-content\/uploads\/2019\/08\/068276f040f17c84a4c7eb9e11703c5c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nV\u00f5ib-olla on teema \u00e4rgitav, kuid see, et valdkond kasvab, annab teatavat lootust. <\/p>\n<p>Kui midagi kasvab nii kiiresti, siis kindlasti tulevad nutikad inimesed, kes \u00fctlevad, kuidas peab tegema ja kuidas mitte. Populaarsuse suurenemine toob kaasa selle, et ehk on kellelgi aega l\u00f5puks kirjutada jsonnet'i plugin vscode'ile, mis v\u00f5imaldab minna funktsiooni rakendusse, mitte otsida seda ctrl+shift+f abil. Kui k\u00f5ik areneb, on rohkem materjale. Google'i v\u00e4ljaanne SRE kohta on sellele hea n\u00e4ide.<\/li>\n<li>On v\u00e4lja t\u00f6\u00f6tatud meetodid ja praktikaid tavap\u00e4rases arenduses, mida saame siin edukalt rakendada. Jah, on n\u00fcansse testimise ja heterogeense keskkonnaga, puudulikud t\u00f6\u00f6riistad, kuid on kogunenud tohutult praktikaid, mis v\u00f5ivad olla kasulikud ja abiks.\n<p>Lihtne n\u00e4ide: paarist\u00f6\u00f6 kaudu koost\u00f6\u00f6. See aitab t\u00f5eliselt aru saada. Kui sul on k\u00f5rval naaber, kes samuti p\u00fc\u00fcab midagi m\u00f5ista, siis koos saate paremini aru.<\/p>\n<p> M\u00f5istmine, kuidas refaktoreerimist l\u00e4bi viia, aitab isegi sellises olukorras seda teostada. See t\u00e4hendab, et sa ei muuda k\u00f5ike korraga, vaid muudad nimed, siis muudad asukohta, p\u00e4rast seda v\u00f5ib-olla eraldad mingisuguse osa, oh, ja siin j\u00e4\u00e4b kommentaaridest puudu. <\/li>\n<\/ol>\n<p><\/p>\n<h2>Kokkuv\u00f5te<\/h2>\n<p>\nKuigi mu m\u00f5tisklused v\u00f5ivad tunduda pessimistlikud, vaatan tulevikku lootusrikkalt ja loodan siiralt, et meil (ja teil) k\u00f5ik \u00f5nnestub.<\/p>\n<blockquote><p>J\u00e4rgneb teise artikli osa. Selles r\u00e4\u00e4gin, kuidas oleme proovinud rakendada paindliku arenduse praktikaid, et parandada meie \u00f5ppimise ja infrastruktuuri haldamise protsessi.<\/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 5.0.1.1 - 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.\" \/>\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) 5.0.1.1\" \/>\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.\" \/>\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 k\u00e4ib SRE-meeskonna onboardimise protsess. Sisenesin sellesse loomepoolelt. Protsessi k\u00e4igus tekkis mul m\u00f5tteid ja n\u00e4gemusi, mida soovin jagada teiste arendajatega.","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.","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","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"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}]}}