{"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\/sl\/blog\/administrirovanie\/infrastructure-as-code-pervoe-znakomstvo","title":{"rendered":"Infrastruktura kot koda: prvo sre\u010danje","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>V na\u0161i podjetju poteka postopek uvajanja ekipe SRE. V to zgodbo sem vstopil kot razvijalec. Med procesom so se mi pojavile misli in vpogledi, ki jih \u017eelim deliti z drugimi razvijalci. V tem \u010dlanku razmi\u0161ljanja govorim o tem, kaj se dogaja, kako se dogaja in kako \u017eiveti naprej s tem. <\/p>\n<p><img decoding=\"async\" alt=\"Infrastruktura kot koda: prvo sre\u010danje\" 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>Nadaljevanje serije \u010dlankov, napisanih na podlagi predstavitev na na\u0161em notranjem dogodku. <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\u00f6dingerjeva ma\u010dka brez \u0161katle: problem konsenza v razpr\u0161enih sistemih.<\/a><\/noindex><br \/>\n2. Infrastructure as code. (Tukaj ste)<br \/>\n3. Generiranje Typescript pogodb iz C# modelov. (V teku&#8230;)<br \/>\n4. Uvod v algoritem konsenza Raft. (V teku&#8230;)<br \/>\n\u2026<\/p><\/blockquote>\n<p>\nOdlo\u010dili smo se ustanoviti ekipo SRE, uresni\u010diti ideje <noindex><a rel=\"nofollow\" href=\"https:\/\/landing.google.com\/sre\/books\/\">google sre<\/a><\/noindex>. Zbrali smo programerje izmed na\u0161ih razvijalcev in jih poslali na usposabljanje za ve\u010d mesecev. <\/p>\n<p>Pred ekipo so bile naslednje u\u010dne naloge:<\/p>\n<ul>\n<li>Opisati na\u0161o infrastrukturo, ki je ve\u010dinoma v Microsoft Azure, v obliki kode (Terraform in vse, kar sodi zraven). <\/li>\n<li>Nau\u010diti razvijalce dela z infrastrukturo. <\/li>\n<li>Pripraviti razvijalce na de\u017eurstva.<\/li>\n<\/ul>\n<p><\/p>\n<h2>Uvajamo koncept Infrastructure as code.<\/h2>\n<p>\nV obi\u010dajnem modelu sveta (klasi\u010dno administriranje) se znanje o infrastrukturi nahaja na dveh mestih:<\/p>\n<ol>\n<li>Bodisi kot znanje v glavah strokovnjakov.<img decoding=\"async\" alt=\"Infrastruktura kot koda: prvo sre\u010danje\" src=\"\/wp-content\/uploads\/2019\/08\/2400dea0a90c24b05c275b709bbd2057.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/li>\n<li>Bodisi so ti podatki shranjeni na nekaterih napravah, o katerih vedo strokovnjaki. Ni pa nujno, da bo nekdo od zunaj (v primeru, da na\u0161a ekipa nenadoma umre) lahko razumel, kaj in kako deluje. Na napravi je lahko veliko informacij: dostopi, cron naloge, podprti (glej <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Mount_(computing)\">disk mounting<\/a><\/noindex>) disk in preprosto neskon\u010den seznam stvari, ki se lahko zgodijo. Te\u017eko je razumeti, kaj se v resnici dogaja.<img decoding=\"async\" alt=\"Infrastruktura kot koda: prvo sre\u010danje\" src=\"\/wp-content\/uploads\/2019\/08\/37bafea85a641c48683c35975f67f24d.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/li>\n<\/ol>\n<p>\nV obeh primerih se znajdemo v pasti, postanemo odvisni:<\/p>\n<ul>\n<li>bodisi od \u010dloveka, ki je smrten, podvr\u017een boleznim, zaljubljanju, nihanju razpolo\u017eenja in preprostim odpu\u0161\u010danjem;<\/li>\n<li>bodisi od fizi\u010dno delujo\u010de naprave, ki tudi odpove, se ukrade, prina\u0161a nepri\u010dakovane te\u017eave in nev\u0161e\u010dnosti. <\/li>\n<\/ul>\n<p>\nSeveda se pojavi re\u0161itev, da bi v idealnem primeru vse prenesli v \u010dloveku berljivo, vzdr\u017eevano, kakovostno napisano kodo. <\/p>\n<p>Tako je infrastruktura kao kod (Infrastructure as Code \u2013 IaC) opis cijele postoje\u0107e infrastrukture u obliku koda, kao i prate\u0107ih sredstava za rad s njom i realizaciju stvarne infrastrukture iz tog koda.<\/p>\n<p><b class=\"spoiler_title\">Za\u0161to sve prevesti u kod<\/b>Ljudi nisu ma\u0161ine. Ne mogu zapamtiti sve. Reakcija \u010dovjeka i ma\u0161ine je razli\u010dita. Sve automatizirano potencijalno radi br\u017ee od onoga \u0161to radi \u010dovjek. Najva\u017enije je imati jedan izvor istine (single source of truth). <\/p>\n<p><b class=\"spoiler_title\">Odakle dolaze novi SRE in\u017eenjeri<\/b>Dakle, odlu\u010dili smo uklju\u010diti nove SRE in\u017eenjere, ali gde ih na\u0107i? Knjiga sa pravim odgovorima (<noindex><a rel=\"nofollow\" href=\"https:\/\/landing.google.com\/sre\/books\/\">Google SRE Book<\/a><\/noindex>) govori nam: od programera. Jer oni rade s kodom, dok vi dosti\u017eete idealno stanje.<\/p>\n<p>Dugo smo tra\u017eili na tr\u017ei\u0161tu rada van na\u0161e kompanije. Ali moramo priznati da nismo prona\u0161li nijednog koji odgovara na\u0161im zahtevima. Morali smo pretra\u017eiti me\u0111u svojim. <\/p>\n<h2>Problemi Infrastructure as Code<\/h2>\n<p>\nSada hajde da pogledamo primere kako infrastruktura mo\u017ee biti utkana u kod. Kod je dobro napisan, kvalitetan, sa komentarima i uvla\u010denjima. <\/p>\n<p>Primer koda iz Terraforma.<\/p>\n<p><img decoding=\"async\" alt=\"Infrastruktura kot koda: prvo sre\u010danje\" src=\"\/wp-content\/uploads\/2019\/08\/1a0bbca47e88fb12e97c0f270efba177.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPrimer koda iz Ansiblea.<\/p>\n<p><img decoding=\"async\" alt=\"Infrastruktura kot koda: prvo sre\u010danje\" src=\"\/wp-content\/uploads\/2019\/08\/358fad8f5944bca1b97b2d6e37b2ee5e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nGospodo, ali da je sve tako jednostavno! Mi smo u stvarnom svetu, a on uvek spreman iznenaditi vas, doneti iznena\u0111enja, probleme. Nema ih ni ovde.<\/p>\n<p><b>1. Prvi problem je u tome \u0161to je u ve\u0107ini slu\u010dajeva IaC neka vrsta DSL-a.<\/b><\/p>\n<p>A DSL, zauzvrat, je opis strukture. Ta\u010dnije, ono \u0161to bi ste trebali imati: Json, Yaml, modifikacije koje su osmislile velike kompanije koje su napravile svoj DSL (u Terraformu se koristi HCL). <\/p>\n<p>Mala je neprijatnost da u njemu lako mogu nedostajati poznate stvari kao \u0161to su:<\/p>\n<ul>\n<li>varijable;<\/li>\n<li>uslovi;<\/li>\n<li>negde nema komentara, na primer, u Json-u, koji po defaultu nisu predvi\u0111eni;<\/li>\n<li>funkcije;<\/li>\n<li>i jo\u0161 nisam spomenuo visoko nivo\u0161ne stvari poput klasa, nasle\u0111ivanja i sli\u010dno.<\/li>\n<\/ul>\n<p>\n <b>2. Drugi problem takvog koda \u2013 \u010desto je to heterogena sredina<\/b>. Obi\u010dno sedite i radite s C#, tj. sa jednim jezikom, jednim stekom, jednom ekosistemom. A ovde imate ogromno raznolikost tehnologija. <\/p>\n<p>Povsem realna situacija, ko bash s Pythonom za\u017eene nek proces, v katerega se namesti Json. Analizirate ga, nato \u0161e nek generator izda \u0161e 30 datotek. Za vse to prihajajo vhodne spremenljivke iz Azure Key Vault, ki jih prenese vti\u010dnik za drone.io, napisan v Go, in te spremenljivke gredo skozi yaml, ki je nastal kot rezultat generiranja iz predloge jsonnet. Kar precej zapleteno je imeti strogo dobro opisano kodo, ko imate tako raznoliko okolje. <\/p>\n<p>Tradicionalni razvoj v okviru enega naloga poteka z enim jezikom. Tukaj pa delamo z veliko \u0161tevilo jezikov. <\/p>\n<p><b>3. Tretji problem \u2013 to je orodja.<\/b>. Navadili smo se na odli\u010dne urejevalnike (Ms Visual Studio, Jetbrains Rider), ki vse naredijo namesto nas. In celo, \u010de zgre\u0161imo, nam povedo, da nismo pravi. Zdi se, da je to normalno in naravno. <\/p>\n<p>Ampak nekje blizu je VSCode, v katerem so nekateri vti\u010dniki, ki se nekako namestijo, podpirajo ali ne podpirajo. Izkazali so se nove razli\u010dice, in jih niso podprli. Prehod k implementaciji funkcije (tudi \u010de obstaja) postane zapletena in nenavadna te\u017eava. Enostavno preimenovanje spremenljive je zamenjava v projektu iz desetih datotek. Imate sre\u010do, \u010de zamenja tisto, kar je treba. Seveda je nekje osvetlitev, nekje je avtokompletiranje, nekje je formatiranje (res pa se mi v Terraformu na Windows ni posre\u010dilo). <\/p>\n<p>Ob \u010dasu pisanja \u010dlanka <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/mauve\/vscode-terraform\">vscode-terraform vti\u010dnik<\/a><\/noindex> \u0161e niso izdali za podporo razli\u010dici 0.12, \u010deprav je \u017ee tri mesece na voljo.<\/p>\n<h2>Pri\u0161el je \u010das, da pozabimo na&#8230;<\/h2>\n<p><\/p>\n<ol>\n<li>Odpravljanje napak.<\/li>\n<li>Orodje za prestrukturiranje.<\/li>\n<li>Samodejno zaklju\u010devanje.<\/li>\n<li>Odkrivanje napak pri prevajanju.<\/li>\n<\/ol>\n<p>\nSme\u0161no, a pove\u010duje \u010das razvoja in pove\u010duje \u0161tevilo napak, ki se neizogibno pojavijo. <\/p>\n<p>Najhuj\u0161e je, da moramo razmi\u0161ljati ne o tem, kako zasnovati, razvrstiti datoteke po mapah, dekompoziciji, narediti kodo obvladljivo, berljivo in tako naprej, ampak o tem, kako naj pravilno napi\u0161em to ukaz, ker sem ga napisal nekako napa\u010dno. <\/p>\n<p>Kot novinec posku\u0161ate spoznati Terraform, IDE pa vam pri tem ne pomaga. Ko je dokumentacija \u2013 vstopite, pogledate. Ampak \u010de bi se u\u010dili novega programskega jezika, bi vam IDE povedal, da obstaja tak tip, tak pa ne. Vsaj na ravni int ali string. To je pogosto koristno. <\/p>\n<h2>Kaj pa testi?<\/h2>\n<p>\nPitate se: \u201eKako testirati, gospodo programeri?\u201c Ozbiljni momci testiraju sve na produkciji, i to je strogo. Evo primera unit testa za terraform modul sa sajta <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=\"Infrastruktura kot koda: prvo sre\u010danje\" src=\"\/wp-content\/uploads\/2019\/08\/b9391409941e14f7e3cf6f8d964a2668.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nImaju odli\u010dnu dokumentaciju. Microsoft mi je uvek bio simpati\u010dan zbog svog pristupa dokumentaciji i obrazovanju. Ali ne morate biti ujne Bob da shvatite da ovde nije savr\u0161en kod. Obratite pa\u017enju na validaciju, koja je pomerena udesno. <\/p>\n<p>Problem unit testa je u tome \u0161to mo\u017eemo proveriti ta\u010dnost JSON-a na izlazu. Ubacio sam 5 parametara, dobio sam duga\u010dak JSON od 2000 redova. Mogu analizirati \u0161ta se ovde de\u0161ava, validirati test rezultat... <\/p>\n<p>Te\u0161ko je analizirati JSON u Go-u. A potrebno je pisati u Go-u, jer je terraform na Go-u \u2013 dobra praksa testiranja u jeziku u kojem pi\u0161ete. Sama organizacija koda je vrlo slaba. Ipak, ovo je najbolja biblioteka za testiranje. <\/p>\n<p>Microsoft sam pi\u0161e svoje module, testiraju\u0107i ih na ovaj na\u010din. Naravno, ovo je Open Source. Sve o \u010demu govorim mo\u017eete do\u0107i i popraviti. Mogu se posvetiti i za nedelju dana sve popraviti, open-sourceovati VS-code dodatke, terraform, napraviti dodatak za rider. Mo\u017eda napisati nekoliko analizatora, dodati lintere, doprineti biblioteci za testiranje. Sve mogu uraditi. Ali ne bih trebao time da se bavim. <\/p>\n<h2>Najbolje prakse Infrastructure as code<\/h2>\n<p>\nIdemo dalje. Ako u IaC nema testova, lo\u0161a je situacija sa IDE-om i alatima, onda barem moraju postojati najbolje prakse. Jednostavno sam oti\u0161ao u Google analitiku i uporedio dva pretra\u017eiva\u010dka upita: Terraform best practices i c# best practices. <\/p>\n<p><img decoding=\"async\" alt=\"Infrastruktura kot koda: prvo sre\u010danje\" src=\"\/wp-content\/uploads\/2019\/08\/3d0e8cd626596deea99324285321a0ab.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u0160ta vidimo? Nemilosrdnu statistiku koja nije u na\u0161u korist. Po koli\u010dini materijala \u2013 isto. U C# razvoju jednostavno se kupamo u materijalima, imamo vrhunske prakse, postoje knjige napisane ekspertima, kao i knjige napisane o knjigama drugih eksperata koji kritikuju te knjige. More zvani\u010dne dokumentacije, \u010dlanaka, obrazovnih kurseva, sada jo\u0161 i open source razvoj.<\/p>\n<p>\u0160to se ti\u010de upita po IaC: ovde poku\u0161avate da sakupite informacije sa predavanja u vezi sa high-load-om ili HashiConf, iz zvani\u010dne dokumentacije i brojnih issue-a na GitHub-u. Kako uop\u0161te rasporediti te module, \u0161ta raditi s njima? \u010cini se da je to pravi problem\u2026 Postoji zajednica, gospodo, gde na svako pitanje dobijate 10 komentara na GitHub-u. Ali, to nije uvek ta\u010dno. <\/p>\n<p>Na \u017ealost, strokovnjaki \u0161ele za\u010detki prihajajo na sceno. Trenutno je jih premalo. Samo skupnost je \u0161e v povojih. <\/p>\n<h2>Kam vse to vodi in kaj storiti<\/h2>\n<p>\nLahko bi vse pustil in se vrnil k C#, v svet rajderja. A ne. Zakaj bi se sploh ukvarjali s tem, \u010de ne bi iskali re\u0161itve. Tukaj vam prina\u0161am svoje subjektivne zaklju\u010dke. Lahko me ovr\u017eete v komentarjih, bi bilo zanimivo. <\/p>\n<p>Osebno stavim na ve\u010d stvari:<\/p>\n<ol>\n<li>Razvoj na tem podro\u010dju poteka zelo hitro. Prikazujem graf povpra\u0161evanja po DevOps.\n<p><img decoding=\"async\" alt=\"Infrastruktura kot koda: prvo sre\u010danje\" src=\"\/wp-content\/uploads\/2019\/08\/068276f040f17c84a4c7eb9e11703c5c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMorda je tema aktualna, a sam dejstvo, da se podro\u010dje razvija, daje nek upanje. <\/p>\n<p>\u010ce nekaj tako hitro raste, se brez dvoma pojavijo pametni ljudje, ki povedo, kako je treba delati in kako ne. Pove\u010danje priljubljenosti pomeni, da bo morda kdo kon\u010dno imel \u010das, da doda vti\u010dnik za jsonnet za vscode, ki bo omogo\u010dil prehod na implementacijo funkcije, namesto da jo i\u0161\u010dem skozi ctrl+shift+f. Ko se vse razvija, je na voljo ve\u010d gradiva. Izid knjige od Googla o SRE-ju je odli\u010den primer tega.<\/li>\n<li>Obstoje\u010de metode in prakse v obi\u010dajnem razvoju, ki jih lahko uspe\u0161no uporabimo tukaj. Da, obstajajo razlike z poznavanjem in heterogenim okoljem, pomanjkljiva orodja, a je zbrano ogromno praks, ki bi lahko bile koristne in pomagale.\n<p>Povsem preprost primer: sodelovanje prek pair programming. To zelo pomaga pri razumevanju. Ko ima\u0161 ob sebi soseda, ki tudi posku\u0161a razumeti, bosta skupaj bolje razumela.<\/p>\n<p> Razumevanje, kako se izvaja refaktoring, pomaga tudi v taki situaciji. To pomeni, da ne more\u0161 vsega spremeniti hkrati, ampak najprej spremeni\u0161 poimenovanje, nato razporeditev, nato lahko izpostavi\u0161 dolo\u010den del, oh, tukaj pa primanjkuje komentarjev. <\/li>\n<\/ol>\n<p><\/p>\n<h2>Zaklju\u010dek<\/h2>\n<p>\nKljub temu, da se morda moja razmi\u0161ljanja zdijo pesimisti\u010dna, z zaupanje gledam v prihodnost in iskreno upam, da nam (in vam) uspe.<\/p>\n<blockquote><p>Nato pripravljamo drugi del \u010dlanka. V njem bom predstavil, kako smo posku\u0161ali uporabiti prakse agilnega razvoja za izbolj\u0161anje na\u0161ega u\u010dnega procesa in dela z infrastrukturo.<\/p><\/blockquote>\n<p>Izvor: <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.4 - 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\/sl\/blog\/administrirovanie\/infrastructure-as-code-pervoe-znakomstvo\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"sl_SI\" \/>\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\/sl\/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\udd47Infrastruktura kot koda: prvo sre\u010danje | ProHoster","description":"V na\u0161i dru\u017ebi poteka proces uvajanja SRE ekipe. Vanjo sem vstopil iz perspektive razvoja. Med procesom so se mi porodile misli in uvide, ki jih \u017eelim deliti z drugimi razvijalci.","canonical_url":"https:\/\/prohoster.info\/sl\/blog\/administrirovanie\/infrastructure-as-code-pervoe-znakomstvo","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sl_SI","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\/sl\/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\/sl\/wp-json\/wp\/v2\/posts\/37586","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/comments?post=37586"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/posts\/37586\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/media\/28211"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/media?parent=37586"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/categories?post=37586"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/tags?post=37586"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}