{"id":38747,"date":"2019-10-31T22:25:42","date_gmt":"2019-10-31T19:25:42","guid":{"rendered":"https:\/\/prohoster.info\/blog\/infrastructure-as-code-kak-poborot-problemy-s-pomoshhyu-xp\/"},"modified":"2019-10-31T22:25:42","modified_gmt":"2019-10-31T19:25:42","slug":"infrastructure-as-code-kak-poborot-problemy-s-pomoshhyu-xp","status":"publish","type":"post","link":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/infrastructure-as-code-kak-poborot-problemy-s-pomoshhyu-xp","title":{"rendered":"Infrastructure as Code: kuidas lahendada probleeme XP abil","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Tere, Habr! Varem kaebasin ma elu \u00fcle, mis p\u00f5hines Infrastructure as code paradigmil, ning ei pakkunud lahendusi olemasolevale olukorrale. T\u00e4na olen tagasi, et r\u00e4\u00e4kida l\u00e4henemistest ja praktikatest, mis aitavad p\u00e4\u00e4seda meeleheitev\u00f5imest ja suunata olukord \u00f5iges suunas. <\/p>\n<p><img decoding=\"async\" alt=\"Infrastructure as Code: kuidas lahendada probleeme XP abil\" src=\"\/wp-content\/uploads\/2019\/10\/e23fbf20980e731ae1cdb4719c97eb00.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nEelnevas artiklis <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/dodopizzaio\/blog\/465137\/\">\u201eInfrastructure as code: esimene tutvumine\u201c<\/a><\/noindex> Olen jaganud oma muljeid selle valdkonna kohta, p\u00fc\u00fcdnud m\u00f5elda praegusele olukorrale ja isegi oletanud, et k\u00f5ik tuntud praktikad, mis on arendajatele teada, v\u00f5ivad abiks olla. V\u00f5is tunduda, et seal oli palju kaebusi elu \u00fcle, kuid mitte \u00fchtegi v\u00e4ljapakutud lahendust. <\/p>\n<h2>Kes me oleme, kus me oleme ja millised on meie probleemid<\/h2>\n<p>\nOleme praegu Sre Onboarding Teamis, mis koosneb kuuest programmeerijast ja kolmest infrastruktuuriinsenerist. K\u00f5ik p\u00fc\u00fcame kirjutada Infrastructure as code (IaC). Teeme seda, sest p\u00f5him\u00f5tteliselt oskame kirjutada koodi ja meil on arenguharidus tasemel '\u00fcle keskmise'. <\/p>\n<ul>\n<li>Meil on mitmeid plusse: teatud taust, praktiliste teadmiste oskus, koodikirjutamise oskus ja soov \u00f5ppida uut. <\/li>\n<li>Ja on ka n\u00f5rk koht, mis on miinus: infrastruktuuri teoreetiliste teadmiste puudumine. <\/li>\n<\/ul>\n<p>\n<b class=\"spoiler_title\">Tehnoloogiad, mida me oma IaC-s rakendame.<\/b><\/p>\n<ul>\n<li>Terraform ressursside loomiseks.<\/li>\n<li>Packer piltide koostamiseks. Need on Windows, CentOS 7 pildid.<\/li>\n<li>Jsonnet, et luua v\u00f5imas kogum drone.io-s ning genereerida packer json ja meie Terraformi mooduleid.<\/li>\n<li>Azure.<\/li>\n<li>Ansible piltide ettevalmistamisel.<\/li>\n<li>Python abiteenuste ja provizionimise skriptide jaoks.<\/li>\n<li>Ja k\u00f5ik see VSCode'is pluginate abil, mida jagavad meeskonna liikmed.<\/li>\n<\/ul>\n<p>Minu <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/dodopizzaio\/blog\/465137\/\">eelmisest artiklist<\/a><\/noindex> tuli selline j\u00e4reldus: ma p\u00fc\u00fcdsin sisendada (esmaj\u00e4rjekorras endasse) optimismi, soovisin \u00f6elda, et proovime tuntud l\u00e4henemisi ja tavasid, et v\u00f5idelda selle valdkonna raskuste ja probleemidega. <\/p>\n<p>Praegu seisame silmitsi j\u00e4rgmiste IaC probleemidega:<\/p>\n<ul>\n<li>T\u00f6\u00f6riistade, koodiarenduse vahendite puudulikkus.<\/li>\n<li>Aeglane juurutamine. Infrastruktuur on osa reaalsest maailmast ja see v\u00f5ib olla aeglane.<\/li>\n<li>L\u00e4henemiste ja praktikate puudumine.<\/li>\n<li>Me oleme uued ja ei tea palju.<\/li>\n<\/ul>\n<p><\/p>\n<h2>Ekstremalne programmeerimine (XP) kiirendab appi.<\/h2>\n<p>\nK\u00f5igile arendajatele on h\u00e4sti tuttav \u00e4\u00e4rmuslik programmeerimine (XP) ja selle taga olevad praktikad. Paljudele meist on l\u00e4henemine tuttav ja see on olnud edukas. Miks mitte kasutada sealsete p\u00f5him\u00f5tete ja praktikate rakendamist, et t\u00f5husalt lahendada infrastruktuuri v\u00e4ljakutseid? Otsustasime selle l\u00e4henemise rakendada ja vaadata, mis sellest v\u00e4lja tuleb.<\/p>\n<p><b class=\"spoiler_title\">XP l\u00e4henemise rakendamise sobivuse kontrollimine teie valdkonnas<\/b>Kirjeldan keskkonda, mille jaoks XP sobib h\u00e4sti, ja kuidas see meiega seondub: <\/p>\n<p>1. D\u00fcnaamiliselt muutuvaid tarkvaran\u00f5udeid. Meil oli selge, mis on l\u00f5ppeesm\u00e4rk. Kuid detailides v\u00f5ib varieerida. Me otsustame ise, kuhu suunduda, seega n\u00f5uded muutuvad perioodiliselt (enamasti meie enda poolt). Kui v\u00f5tta SRE meeskond, kes ise teeb automatiseerimise ja piirab n\u00f5udeid ja t\u00f6\u00f6 ulatust, siis see punkt sobib h\u00e4sti. <\/p>\n<p>2. Uued tehnoloogiad toovad projekti fikseeritud ajaga seotud riskid. Meie v\u00f5ime sattuda riskidesse, kui kasutame midagi meile tundmatut. See on 100% meie juhtum. Kogu meie projekt p\u00f5hineb tehnoloogiatel, millega me polnud l\u00f5puni tuttavad. See on pidev probleem, kuna infrastruktuuri valdkonnas tekib pidevalt uusi tehnoloogiaid. <\/p>\n<p>3,4. V\u00e4ike, samas asuv laiendatud arendustiim. Kasutatav tehnoloogia v\u00f5imaldab automatiseeritud \u00fcksuste ja funktsionaalsete testide l\u00e4biviimist. Need kaks punkti ei sobi meile t\u00e4pselt. Esiteks, me pole kolokatsiooniga meeskond ja teiseks, meid on \u00fcheksa, mis v\u00f5ib olla suur tiim. Kuigi m\u00f5nede definitsioonide j\u00e4rgi on \"suur\" meeskond see, kus on 14+ inimest. <\/p>\n<p>Kaalume m\u00f5ningaid XP praktikaid ja kuidas need m\u00f5jutavad tagasiside kiirus ja kvaliteet.<\/p>\n<h4>Tagasiside ts\u00fckli p\u00f5him\u00f5te XP-s<\/h4>\n<p>\nMinu arusaama kohaselt on tagasiside vastus k\u00fcsimusele, kas ma teen \u00f5iget asja ja kas me liigume \u00f5igesse suunda? XP-s on selle kohta jumalik skeem: ajaliselt tagasiside ts\u00fckkel. Huvi seisneb selles, et mida madalamal me oleme, seda kiiremini saame OS-i, et vastata vajalikele k\u00fcsimustele. <\/p>\n<p><img decoding=\"async\" alt=\"Infrastructure as Code: kuidas lahendada probleeme XP abil\" src=\"\/wp-content\/uploads\/2019\/10\/e381fb2d7937cbd1978fd6740e63e790.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSee on t\u00f5eliselt huvitav teema arutamiseks, et meie IT-t\u00f6\u00f6stuses on v\u00f5imalik kiiresti operatsioonis\u00fcsteem saada. Kujutage ette, kui valus on t\u00f6\u00f6tada mingi projektiga kuus kuud ja alles seej\u00e4rel avastada, et alguses tehti viga. Selliseid olukordi juhtub nii projekteerimises kui ka keerukate s\u00fcsteemide ehitamisel. <\/p>\n<p>Meie juhul aitab IaC meil tagasisidet saada. Teen skeemis v\u00e4ikese paranduse: v\u00e4ljaandmisplaan ei toimu kuu ts\u00fcklina, vaid mitu korda p\u00e4evas. Selle ts\u00fckli raames on seotud teatud praktikad, mida vaatame l\u00e4hemalt.<\/p>\n<blockquote><p>Oluline: tagasiside v\u00f5ib olla lahendus k\u00f5igile \u00fclalkirjeldatud probleemidele. Koos XP praktikatega v\u00f5ib see meid heidutusest v\u00e4lja t\u00f5mmata.<\/p><\/blockquote>\n<p><\/p>\n<h2>Kuidas end heidutusest v\u00e4lja t\u00f5mmata: kolm praktikat<\/h2>\n<p><\/p>\n<h4>Testid <\/h4>\n<p>\nTestimine mainitakse XP tagasiside ts\u00fcklis kaks korda. See pole niisama. Need on \u00e4\u00e4rmiselt olulised kogu \u00e4\u00e4rmusliku programmeerimise tehnika jaoks. <\/p>\n<p>Oletatakse, et sul on Unit ja Acceptance testid. \u00dcks annab sulle tagasisidet m\u00f5ne minuti jooksul, teine m\u00f5ne p\u00e4eva jooksul, sest neid kirjutatakse kauem ja neid k\u00e4ivitatakse harvem. <\/p>\n<p>On olemas klassikaline testimise pyramida, mis n\u00e4itab, et teatud teste peaks olema rohkem. <\/p>\n<p><img decoding=\"async\" alt=\"Infrastructure as Code: kuidas lahendada probleeme XP abil\" src=\"\/wp-content\/uploads\/2019\/10\/29f3217f11b67378c9c0c3f14fab9d61.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKuidas see skeem meie projektis IaC rakendub? Tegelikult... mitte kuidagi. <\/p>\n<ul>\n<li>Kuigi unit-teste peaks olema v\u00e4ga palju, ei saa neid siiski olla liig palju. Kas nad testivad midagi v\u00e4ga kaudselt. Tegelikult v\u00f5ib \u00f6elda, et me neid \u00fcldse ei kirjuta. Aga siinkohal on m\u00f5ned rakendused selliste testide jaoks, mida meil siiski \u00f5nnestus teha:\n<ol>\n<li>Koodi testimine jsonnet'is. See on n\u00e4iteks meie ehituspipeline drone'is, mis on piisavalt keeruline. Kood jsonnet'is katab testidega h\u00e4sti. <br \/>\n Me kasutame seda <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/yugui\/jsonnetunit\">Unit testing framework for Jsonnet<\/a><\/noindex>. <\/li>\n<li> Testid skriptide jaoks, mida tehakse ressursi k\u00e4ivitamisel. Skriptid on Pythonis, seega on ka nende testid kirjutatavad.<\/li>\n<\/ol>\n<\/li>\n<li>Potentsiaalselt on v\u00f5imalik kontrollida konfiguratsiooni testides, kuid me ei tee seda. On ka v\u00f5imalus seadistada ressursi konfigureerimise reeglite kontrollimist l\u00e4bi <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/wata727\/tflint\">tflint<\/a><\/noindex>. Siiski, lihtsalt terraformi jaoks on seal liiga p\u00f5hjalikud kontrollid, kuid palju kontrollstsenaariume on kirjutatud AWS jaoks. Meie aga oleme Azure'is, seega see ei sobi j\u00e4lle.<\/li>\n<li>Komponentide integreerimistests: see s\u00f5ltub sellest, kuidas sa neid klasifitseerid ja kuhu need paigutad. Kuid need toimivad p\u00f5him\u00f5tteliselt.\n<p>Nii n\u00e4evad v\u00e4lja integreerimistestid. <\/p>\n<p><img decoding=\"async\" alt=\"Infrastructure as Code: kuidas lahendada probleeme XP abil\" src=\"\/wp-content\/uploads\/2019\/10\/b4771e9e5d329ffb2ba565ead7fdddfd.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSee on n\u00e4ide piltide kokkupanekust Drone CI-s. Nende juurde j\u00f5udmiseks tuleb oodata 30 minutit, kuni Packer'i pilt kokku monteeritakse, ja seej\u00e4rel veel 15 minutit, kuni testid l\u00e4bivad. Aga nad on olemas! <\/p>\n<p><b class=\"spoiler_title\">Piltide kontrollimise algoritm<\/b> <\/p>\n<ol>\n<li>Esmalt peab Packer pildi t\u00e4ielikult ette valmistama.<\/li>\n<li>Testi k\u00f5rval on Terraform kohaliku olekuga, millega me seda pilti \u00fcles seame. <\/li>\n<li>\u00dcles seadmise k\u00e4igus kasutatakse v\u00e4ikest moodulit, mis asub l\u00e4heduses, et oleks lihtsam pildiga t\u00f6\u00f6tada. <\/li>\n<li>Kui pildist on loodud VM, v\u00f5ib alustada kontrollimisi. Peamiselt teostatakse kontrollid masinal. Kontrollitakse, kuidas skriptid k\u00e4ivitusel t\u00f6\u00f6tavad, ja kuidas demonid toimivad. Selleks siseneme ssh v\u00f5i winrm kaudu just loodud masinasse ja kontrollime konfiguratsiooni seisundit v\u00f5i kas teenused on k\u00e4ivitunud.<\/li>\n<\/ol>\n<p>\n <\/li>\n<li>Sarnane olukord on integreerimistestidega ka Terraformi moodulites. Siin on l\u00fchike tabel, mis selgitab selliste testide erip\u00e4ra.\n<p><img decoding=\"async\" alt=\"Infrastructure as Code: kuidas lahendada probleeme XP abil\" src=\"\/wp-content\/uploads\/2019\/10\/e2624fb97831701e374a7e8e7fe39a16.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTagasiside pipeline'is on umbes 40 minutit. K\u00f5ik toimub v\u00e4ga aeglaselt. Seda saab kasutada regressiooniks, kuid uue arenduse jaoks on see t\u00e4ielikult ebareaalne. Kui sellele t\u00f5eliselt ette valmistuda, et saada k\u00e4ivitamine ja skriptid, siis v\u00f5ib selle aja v\u00e4hendada kuni 10 minutini. Kuid see ei ole siiski Unit-testid, mis kestavad 5 sekundit ja katab 100 eset. <\/li>\n<\/ul>\n<p>\nUnit-testide puudumine piltide v\u00f5i Terraformi moodulite koostamisel sunnib t\u00f6\u00f6 koormust jagama eraldi teenustele, millele saab lihtsalt RESTi kaudu ligi p\u00e4\u00e4seda, v\u00f5i Python-skriptidele.<\/p>\n<p>N\u00e4iteks pidime seadistama nii, et virtuaalmaquina k\u00e4ivitatud juhul registreerib see end teenuses <noindex><a rel=\"nofollow\" href=\"https:\/\/www.scaleft.com\/\">ScaleFT<\/a><\/noindex>, ja virtuaalmaquina h\u00e4vitamisel eemaldab see end.<\/p>\n<p>Kuna ScaleFT on meil teenusena, oleme sunnitud temaga t\u00f6\u00f6tama API kaudu. Seal oli kirjutatud wrapper, mida saab kasutada ja \u00f6elda: \"Mine ja kustuta see, see\". See hoiab k\u00f5iki vajalikke s\u00e4tteid ja ligip\u00e4\u00e4se. <\/p>\n<p>Selle peale saame kirjutada normaalsed testid, kuna see ei erine tavalisest tarkvarast: m\u00f5ni API moondatakse, sa t\u00f5ukad ja vaatame, mis juhtub. <\/p>\n<p><img decoding=\"async\" alt=\"Infrastructure as Code: kuidas lahendada probleeme XP abil\" src=\"\/wp-content\/uploads\/2019\/10\/dc17aaa64038acb080669d31fe8ecfe0.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<blockquote><p>Testide tulemused: \u00dcksuse testimine, mis peaks andma OS-i \u00fche minutiga, ei anna seda. Kuid p\u00fcramiidi k\u00f5rgemad testimisviisid annavad tulemusi, kuid katab vaid osa probleemidest. <\/p><\/blockquote>\n<h4>Paaris programmeerimine<\/h4>\n<p>\nTestid on kindlasti head. Neid saab palju kirjutada, nad v\u00f5ivad olla erinevat t\u00fc\u00fcpi. Nad t\u00f6\u00f6tavad oma tasanditel ja annavad meile tagasisidet. Kuid probleem kehvade \u00fcksuse testidega, mis ei anna kiireimat OS-i, p\u00fcsib. Samas tahaks ikka kiiret OS-i, millega on lihtne ja meeldiv t\u00f6\u00f6tada. R\u00e4\u00e4kimata saavutatud lahenduse kvaliteedist. \u00d5nneks on tehnikaid, mis suudavad anda veel kiiremat tagasisidet kui moodulitestid. See on paaris programmeerimine.<\/p>\n<p>Koodi kirjutamisel on soov saada tagasisidet selle kvaliteedi kohta nii kiiresti kui v\u00f5imalik. Jah, k\u00f5ike saab kirjutada funktsiooniklassis (et mitte kellelegi midagi rikkuda), teha GitHubis pull requesti, m\u00e4\u00e4rata kedagi, kelle arvamus loeb, ja oodata vastust. <\/p>\n<p>Kuid ooteaeg v\u00f5ib olla pikk. Inimesed on k\u00f5ik h\u00f5ivatud ja isegi kui vastus tuleb, ei pruugi see olla kvalitatiivne. Oletame, et vastus tuli kohe, \u00fclevaataja m\u00f5istis idee kiiresti, kuid vastus tuleb ikkagi hiljem. Soov oleks ju varem. Just selleks on paarist\u00f6\u00f6 suunatud, et anda tagasisidet kohe, kirjutamise k\u00e4igus.<\/p>\n<p>J\u00e4rgnevalt toon v\u00e4lja paarist\u00f6\u00f6 stiilid ja nende rakendatavus IaC-lt t\u00f6\u00f6tamisel: <\/p>\n<p><b>1. Klassikaline, kogenud+kogenud, ajap\u00f5hine vahetus.<\/b> Kaks rolli \u2013 driver ja navigator. Kaks inimest. Nad t\u00f6\u00f6tavad \u00fche koodi kallal ja vahetavad rolle kindlaksm\u00e4\u00e4ratud ajavahemiku j\u00e4rel. <\/p>\n<p>Vaadakem, kui h\u00e4sti meie probleemid sobivad stiiliga: <\/p>\n<ul>\n<li>Probleem: t\u00f6\u00f6riistade ebat\u00e4iuslikkus koodi arendamiseks. <br \/>\nNegatiivne m\u00f5ju: arendamine venib, tempo\/ritm aeglustub.<br \/>\n Kuidas vastu minna: kasutame teisi t\u00f6\u00f6riistu, \u00fchist IDE-d ja \u00f5pime veel lisak\u00e4sklusi.<\/li>\n<li> Probleem: aeglane juurutamine. <br \/>\nNegatiivne m\u00f5ju: suurendab aega t\u00f6\u00f6tava koodil\u00f5igu loomisel. Ootamise ajal igavleb, k\u00e4ed ulatuvad millegi muu j\u00e4rele, kuni ootad. <br \/>\nKuidas vastu minna: ei ole lahendatud.<\/li>\n<li> Probleem: l\u00e4henemiste ja praktikate puudus. <br \/>\nNegatiivne m\u00f5ju: teadmiste puudumine, kuidas teha h\u00e4sti ja kuidas halvasti. Pikendab tagasiside saamist. <br \/>\nKuidas me v\u00f5itleme: arvamuste ja praktikate vahetus paarist\u00f6\u00f6s peaaegu lahendab probleemi.<\/li>\n<\/ul>\n<p>\nPeamine probleem selle stiili rakendamisel IaC-s on ebaregulaarsed t\u00f6\u00f6tempos. Traditsioonilises tarkvaraarenduses on sul v\u00e4ga \u00fchtlane tempo. Sa v\u00f5id kulutada viis minutit ja kirjutada N. Kulutada 10 minutit ja kirjutada 2N, 15 minutit \u2013 3N. Siin v\u00f5id kulutada viis minutit ja kirjutada N, aga siis kulutada veel 30 minutit ja kirjutada N-i k\u00fcmnendik. Siin sa ei tea mitte midagi, sul on kinni j\u00e4\u00e4mine, takistus. Selgitamine v\u00f5tab aega ja h\u00e4irib otseselt programmeerimist. <\/p>\n<blockquote><p>J\u00e4reldus: puhtal kujul ei sobi meile.<\/p><\/blockquote>\n<p><b>2. Ping-pong. See l\u00e4henemine eeldab, et \u00fcks osaleja kirjutab testi ja teine teeb selle jaoks rakenduse.<\/b> Arvestades, et Unit-testidega on k\u00f5ik keeruline ja tuleb kirjutada pikaajaline integratsioonitest, kaob kogu ping-pongi lihtsus. <\/p>\n<p>V\u00f5in \u00f6elda, et oleme proovinud testistsenaariumi kavandamise ja selle koodi rakendamise \u00fclesannete jagamist. \u00dcks osaleja m\u00f5tles stsenaariumi v\u00e4lja, olles selle t\u00f6\u00f6osa eest vastutav ning viimane s\u00f5na kuulus talle. Teine oli vastutav rakendamise eest. See toimis h\u00e4sti. Sellise l\u00e4henemisega paranes stsenaariumi kvaliteet. <\/p>\n<blockquote><p>J\u00e4reldus: kahjuks ei v\u00f5imalda t\u00f6\u00f6 tempo kasutada ping-pong'i kui paarilise programmeerimise praktikat IaC-s.<\/p><\/blockquote>\n<p>\n <b>3. Tugev stiil.<\/b> <noindex><a rel=\"nofollow\" href=\"http:\/\/llewellynfalco.blogspot.com\/2014\/06\/llewellyns-strong-style-pairing.html\">Raske praktika.<\/a><\/noindex>Idee on selles, et \u00fcks osaleja muutub suunavaks juhiks, samas kui teine t\u00e4idab juhina rolli. Otsustus\u00f5igused j\u00e4\u00e4vad rangelt juhile. Juhiks olev isik lihtsalt tr\u00fckib ja suudab s\u00f5nadega m\u00f5jutada toimuvaid s\u00fcndmusi. Roolid ei muutu pikaks ajaks. <\/p>\n<p>Sobib h\u00e4sti harimiseks, kuid n\u00f5uab tugevaid pehmeid oskusi. Siin tekkis takistus. Protsess kulges keeruliselt. Asi ei ole isegi infrastruktuuris. <\/p>\n<blockquote><p>J\u00e4reldus: v\u00f5ib-olla on seda potentsiaalselt v\u00f5imalik rakendada; me ei j\u00e4ta lootust.<\/p><\/blockquote>\n<p>\n<b>4. Mobbing, swarming ja k\u00f5ik tuntud, kuid siinkohal mitte mainitud stiilid<\/b> ei ole arutluse all, kuna ei ole proovitud ja meie t\u00f6\u00f6 kontekstis sellest r\u00e4\u00e4kida ei saa.<\/p>\n<blockquote><p>Paariprogrammeerimise kasutamise p\u00f5hij\u00e4reldused:<\/p>\n<ul>\n<li>Meil on eba\u00fchtlane t\u00f6\u00f6tempo, mis segab t\u00f6\u00f6d.<\/li>\n<li>Oleme pidanud vastu kehvadele suhtlemisoskustele. Ja teemaala ei soodusta nende puuduste \u00fcletamist.<\/li>\n<li>Pikad testid ja t\u00f6\u00f6riistade probleemid muudavad paariarenduse vaevaliseks.<\/li>\n<\/ul>\n<\/blockquote>\n<p><b>5. Sellegipoolest oli ka edusamme. Me leiutasime oma meetodi 'Kohtumine - lahkumin.'<\/b> Koheselt kirjeldan, kuidas see t\u00f6\u00f6tab. <\/p>\n<p>Meil on pidevad partnerid paarip\u00e4evaseks (alla n\u00e4dala). Teeme koos \u00fche \u00fclesande. Osa ajast istume koos: \u00fcks kirjutab, teine vaatab kui toeks. Siis lahkume m\u00f5neks ajaks, iga\u00fcks teeb oma iseseisvaid asju, siis koondume j\u00e4lle, s\u00fcnkroniseerime end kiiresti, teeme midagi koos ja lahkume j\u00e4lle. <\/p>\n<h4>Planeerimine ja suhtlemine<\/h4>\n<p>\nViimane praktikablokk, l\u00e4bi mille lahendatakse probleemid, on t\u00f6\u00f6 korraldamine \u00fclesannete endi juures. Siia kuulub ka kogemuste vahetamine, mis toimub v\u00e4ljaspool paarit\u00f6\u00f6d. Vaatame kolme praktikat:<\/p>\n<p><b>1. \u00dclesanded eesm\u00e4rkide puu kaudu.<\/b> Projektide haldamine on korraldatud l\u00e4bi puu, mis ulatub l\u00f5putusse tulevikku. Tehniliselt toimub haldamine Miro's. On olemas \u00fcks \u00fclesanne \u2013 see on vaheeesm\u00e4rk. Sellest tulenevad kas v\u00e4iksemad eesm\u00e4rgid v\u00f5i \u00fclesannete r\u00fchmad. Need viivad juba konkreetsete \u00fclesannete juurde. K\u00f5ik \u00fclesanded luuakse ja hallatakse sellel tahvlil. <\/p>\n<p><img decoding=\"async\" alt=\"Infrastructure as Code: kuidas lahendada probleeme XP abil\" src=\"\/wp-content\/uploads\/2019\/10\/fe601e959f0055de4f7f4c39ae713c31.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSee skeem annab samuti tagasisidet, mis toimub kord p\u00e4evas, kui me omavahel koondume koosolekuteks. \u00dchise plaani olemasolu, mis on struktureeritud ja t\u00e4ielikult avatud, v\u00f5imaldab igal inimesel olla kursis toimuva ning meie edusammudega. <\/p>\n<p>\u00dclesannete visuaalse n\u00e4gemise eelised:<\/p>\n<ul>\n<li>P\u00f5hjuslikkus. Iga \u00fclesanne viib mingisse globaalsesse eesm\u00e4rki. \u00dclesanded r\u00fchmitatakse v\u00e4iksemate eesm\u00e4rkide j\u00e4rgi. Infrastruktuuri domeen on iseenesest \u00fcsna tehniline. Ei ole alati kohe selge, millist m\u00f5ju ettev\u00f5ttele avaldab n\u00e4iteks r\u00e4nderaamatu koostamine teisele nginx'ile. Eesm\u00e4rgikaardi olemasolu k\u00f5rval muudab selle selgemaks.<br \/>\n <img decoding=\"async\" alt=\"Infrastructure as Code: kuidas lahendada probleeme XP abil\" src=\"\/wp-content\/uploads\/2019\/10\/fc4da9d277f7dc186a5710cf2be4419c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n P\u00f5hjuslikkus on \u00fclesannete oluline omadus. See vastab otse k\u00fcsimusele: 'Kas ma teen \u00f5iget asja?' <\/li>\n<li>Paralleelsus. Meid on \u00fcheksa ja pole lihtsalt f\u00fc\u00fcsiliselt v\u00f5imalik, et k\u00f5ik \u00fchele \u00fclesandele r\u00fcndaksid. \u00dclesandeid \u00fches valdkonnas ei pruugi ka alati piisavalt olla. Oleme sunnitud jagama t\u00f6\u00f6d v\u00e4ikeste t\u00f6\u00f6r\u00fchmade vahel. Samal ajal t\u00f6\u00f6tavad r\u00fchmad m\u00f5nda aega oma \u00fclesande kallal, neid v\u00f5ivad tugevdada ka teised. Sellelt t\u00f6\u00f6r\u00fchmast v\u00f5ivad m\u00f5ned inimesed kaduda. Keegi l\u00e4heb puhkusele, keegi esitleb DevOps konverentsil, keegi kirjutab artiklit Habrile. Oluline on teada, millised eesm\u00e4rgid ja \u00fclesanded saavad paralleelselt teostatud. <\/li>\n<\/ul>\n<p>\n<b>2. Vahetavad juhid hommikustel koosolekutel.<\/b> Standupides tekib selline probleem \u2013 paljusid \u00fclesandeid teevad inimesed paralleelselt. M\u00f5nikord on \u00fclesanded n\u00f5rgalt seotud ja pole arusaama, kes mida teeb. \u00dche tiimiliikme arvamus on v\u00e4ga oluline. See on lisainformatsioon, mis v\u00f5ib muuta \u00fclesande lahendamise kulgu. Loomulikult on tavaliselt sinuga paaris keegi, kuid konsultatsioon ja n\u00e4pun\u00e4ited ei ole kunagi \u00fcleliigsed. <\/p>\n<p>Selle olukorra parandamiseks rakendasime \"Juhtiva stand-up'i vahetuse\" tehnikat. N\u00fc\u00fcd nad p\u00f6\u00f6rlevad kindlas j\u00e4rjestuses ja see avaldab m\u00f5ju. Kui on sinu kord, pead s\u00fcvenema ja aru saama, mis toimub, et h\u00e4sti l\u00e4bi viia scrumi kohtumine. <\/p>\n<p><img decoding=\"async\" alt=\"Infrastructure as Code: kuidas lahendada probleeme XP abil\" src=\"\/wp-content\/uploads\/2019\/10\/622973a654ecd3e27a7a366596814ffc.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<b>3. Sisemine demo.<\/b> Abiks probleemide lahendamisel on paarist programmimine, \u00fclesannete puu visualiseerimine ja hommikused scrumi koosolekud \u2013 see on hea, aga mitte ideaalne. Paari koost\u00f6\u00f6s oled piiratud ainult oma teadlikega. \u00dclesannete puu aitab \u00fcldiselt m\u00f5ista, kes ja mida teeb. Ja juht ja kolleegid hommikusel koosolekul ei s\u00fcvene s\u00fcgavalt su probleemidesse. Nad v\u00f5ivad kindlasti midagi ka m\u00f6\u00f6da lasta. <\/p>\n<p>Lahendus leiti omavahel tehtud t\u00f6\u00f6de demonstreerimise ja nende j\u00e4rgneva arutelu kaudu. Me koguneme kord n\u00e4dalas tunniks ja n\u00e4itame \u00fclesannete lahenduste detaile, mida oleme teinud viimase n\u00e4dala jooksul. <\/p>\n<p>Demonstreerimise k\u00e4igus tuleb avada \u00fclesande \u00fcksikasjad ja kindlasti n\u00e4idata selle toimimist. <\/p>\n<p><b class=\"spoiler_title\">Ettekanne v\u00f5ib toimuda kontrollnimekirja alusel.<\/b>1. Toodud konteksti. Kust see \u00fclesanne tuli, miks see \u00fcldse vajalik oli?<\/p>\n<p>2. Kuidas see probleem varem lahendatud oli? N\u00e4iteks oli vajalik massiline hiireklikkimine v\u00f5i ei saanud midagi teha.<\/p>\n<p>3. Kuidas me seda parandame. N\u00e4iteks: \u201eK\u00fclastage, n\u00fc\u00fcd on olemas skript, siin on readme\u201c.<\/p>\n<p>4. N\u00e4idake, kuidas see t\u00f6\u00f6tab. Soovitavalt teostage m\u00f5ni kasutajascenario otse. Tahan X, teen Y, n\u00e4en Z (v\u00f5i Y). N\u00e4iteks, deployin NGINX, kontrollin URL-i, saan 200 OK. Kui tegevus kestab kaua, valmistage see ette eelnevalt, et hiljem n\u00e4idata. Soovitav on, et tund aega enne demot eriti ei katki l\u00e4heks, kui see on \u00f5rn.<\/p>\n<p>5. Selgitage, kui edukalt probleem lahendati, millised raskused j\u00e4\u00e4vad, mis on l\u00f5petamata, millised edusammud on tulevikus v\u00f5imalikud. N\u00e4iteks, praegu on CLI, hiljem tuleb t\u00e4ielik automatiseerimine CI-s.<\/p>\n<p>Iga esineja peaks mahtuma 5-10 minutitesse. Kui teie ettekande on ilmnevalt oluline ja v\u00f5tab rohkem aega, leppige see eelnevalt kokku kanalis sre-takeover.<\/p>\n<p>P\u00e4rast f\u00fc\u00fcsilist osa toimub kindlasti arutelu teemas. Siin tekib vajalik tagasiside meie \u00fclesannete seadmiseks. <\/p>\n<p><img decoding=\"async\" alt=\"Infrastructure as Code: kuidas lahendada probleeme XP abil\" src=\"\/wp-content\/uploads\/2019\/10\/77da888d24b52c7eea7e65d2400e152c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nL\u00f5puks viiakse l\u00e4bi uuring, et selgitada v\u00e4lja toimuva kasulikkus. See on juba tagasiside esitluse sisust ja \u00fclesande olulisusest.<\/p>\n<p><img decoding=\"async\" alt=\"Infrastructure as Code: kuidas lahendada probleeme XP abil\" src=\"\/wp-content\/uploads\/2019\/10\/7642cd87050171cc4a6bf278329dd283.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>Pikad j\u00e4reldused ja mis edasi<\/h2>\n<p>\nV\u00f5ib tunduda, et artikli toon on veidi pessimistlik. Kuid see ei ole t\u00f5si. Kaks madalama tasandi tagasiside saamise viisi, nimelt testimine ja paarides programmeerimine, toimivad. Mitte nii t\u00e4iesti nagu traditsioonilises arenduses, kuid positiivne m\u00f5ju on olemas. <\/p>\n<p>Testid, oma praeguses vormis, pakuvad vaid osalist koodikatte. Paljud konfiguratsioonifunktsioonid j\u00e4\u00e4vad katsetamata. Nende m\u00f5ju koodi kirjutamise ajal on v\u00e4hene. Siiski on integratsioonitestide m\u00f5ju olemas, ja just need v\u00f5imaldavad turvaliselt refaktoreerida. See on suur saavutus. Samuti, kui keskenduda k\u00f5rgetasemelistele programmeerimiskeeltele (meil on Python, Go), kaob probleem. Ja palju kontrollimisi \u201eliimiks\u201d ei ole vajalik, piisab \u00fcldisest integratsioonitestist.<\/p>\n<p>Koost\u00f6\u00f6 t\u00f5husus s\u00f5ltub suuresti inimestest. On olemas \u00fclesande tegur ja meie pehmed oskused. M\u00f5ne inimesega sujub koost\u00f6\u00f6 v\u00e4ga h\u00e4sti, teisega v\u00e4hem. Sellest on kindlasti kasu. Selgelt m\u00f5jutab isegi paarilise t\u00f6\u00f6 reeglite mittet\u00e4itmine positiivselt tulemuste kvaliteeti. Isiklikult mulle meeldib t\u00f6\u00f6tada paaris, see on kergem ja meeldivam.<\/p>\n<p>K\u00f5rgemad meetodid operatsioonis\u00fcsteemi m\u00f5jutamiseks \u2014 planeerimine ja \u00fclesannetega tegelemine toovad kindlasti kaasa kvaliteetse teadmistevahetuse ja arendamise kvaliteedi paranemise. <\/p>\n<h4>L\u00fchikesed j\u00e4reldused \u00fchest lausest <\/h4>\n<p><\/p>\n<ul>\n<li>XP praktikaid saab rakendada IaC-s, kuid v\u00e4iksema t\u00f5hususega.<\/li>\n<li>Tugevdage seda, mis t\u00f6\u00f6tab.<\/li>\n<li>Kavandage oma kompenseerimismechanismid ja praktikad.<\/li>\n<\/ul>\n<p>Allikas: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/dodopizzaio\/blog\/470620\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! \u0420\u0430\u043d\u044c\u0448\u0435 \u044f \u0436\u0430\u043b\u043e\u0432\u0430\u043b\u0441\u044f \u043d\u0430 \u0436\u0438\u0437\u043d\u044c \u0432 \u043f\u0430\u0440\u0430\u0434\u0438\u0433\u043c\u0435 Infrastructure as code \u0438 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u043b \u0434\u043b\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0441\u043b\u043e\u0436\u0438\u0432\u0448\u0435\u0439\u0441\u044f \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u044f \u0432\u0435\u0440\u043d\u0443\u043b\u0441\u044f, \u0447\u0442\u043e\u0431\u044b \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u043a\u0430\u043a\u0438\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u044b \u0438 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438 \u043f\u043e\u043c\u043e\u0433\u0443\u0442 \u0432\u044b\u0440\u0432\u0430\u0442\u044c\u0441\u044f \u0438\u0437 \u0431\u0435\u0437\u0434\u043d\u044b \u043e\u0442\u0447\u0430\u044f\u043d\u0438\u044f \u0438 \u0432\u044b\u0440\u0443\u043b\u0438\u0442\u044c \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044e \u0432 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0435 \u0440\u0443\u0441\u043b\u043e. \u0412 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u00abInfrastructure as code: \u043f\u0435\u0440\u0432\u043e\u0435 \u0437\u043d\u0430\u043a\u043e\u043c\u0441\u0442\u0432\u043e\u00bb \u044f \u0434\u0435\u043b\u0438\u043b\u0441\u044f \u0441\u0432\u043e\u0438\u043c \u0432\u043f\u0435\u0447\u0430\u0442\u043b\u0435\u043d\u0438\u0435\u043c \u043e\u0442 \u044d\u0442\u043e\u0439 \u0441\u0444\u0435\u0440\u044b, [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":29066,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-38747","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=\"\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! \u0420\u0430\u043d\u044c\u0448\u0435 \u044f \u0436\u0430\u043b\u043e\u0432\u0430\u043b\u0441\u044f \u043d\u0430 \u0436\u0438\u0437\u043d\u044c \u0432 \u043f\u0430\u0440\u0430\u0434\u0438\u0433\u043c\u0435 Infrastructure as code \u0438 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u043b \u0434\u043b\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0441\u043b\u043e\u0436\u0438\u0432\u0448\u0435\u0439\u0441\u044f \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u044f \u0432\u0435\u0440\u043d\u0443\u043b\u0441\u044f, \u0447\u0442\u043e\u0431\u044b \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u043a\u0430\u043a\u0438\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u044b \u0438 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438 \u043f\u043e\u043c\u043e\u0433\u0443\u0442 \u0432\u044b\u0440\u0432\u0430\u0442\u044c\u0441\u044f \u0438\u0437 \u0431\u0435\u0437\u0434\u043d\u044b \u043e\u0442\u0447\u0430\u044f\u043d\u0438\u044f \u0438 \u0432\u044b\u0440\u0443\u043b\u0438\u0442\u044c \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044e \u0432 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0435 \u0440\u0443\u0441\u043b\u043e. \u0412 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u00abInfrastructure as code: \u043f\u0435\u0440\u0432\u043e\u0435 \u0437\u043d\u0430\u043a\u043e\u043c\u0441\u0442\u0432\u043e\u00bb \u044f \u0434\u0435\u043b\u0438\u043b\u0441\u044f \u0441\u0432\u043e\u0438\u043c \u0432\u043f\u0435\u0447\u0430\u0442\u043b\u0435\u043d\u0438\u0435\u043c \u043e\u0442 \u044d\u0442\u043e\u0439 \u0441\u0444\u0435\u0440\u044b,\" \/>\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-kak-poborot-problemy-s-pomoshhyu-xp\" \/>\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: \u043a\u0430\u043a \u043f\u043e\u0431\u043e\u0440\u043e\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e XP | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! \u0420\u0430\u043d\u044c\u0448\u0435 \u044f \u0436\u0430\u043b\u043e\u0432\u0430\u043b\u0441\u044f \u043d\u0430 \u0436\u0438\u0437\u043d\u044c \u0432 \u043f\u0430\u0440\u0430\u0434\u0438\u0433\u043c\u0435 Infrastructure as code \u0438 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u043b \u0434\u043b\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0441\u043b\u043e\u0436\u0438\u0432\u0448\u0435\u0439\u0441\u044f \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u044f \u0432\u0435\u0440\u043d\u0443\u043b\u0441\u044f, \u0447\u0442\u043e\u0431\u044b \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u043a\u0430\u043a\u0438\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u044b \u0438 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438 \u043f\u043e\u043c\u043e\u0433\u0443\u0442 \u0432\u044b\u0440\u0432\u0430\u0442\u044c\u0441\u044f \u0438\u0437 \u0431\u0435\u0437\u0434\u043d\u044b \u043e\u0442\u0447\u0430\u044f\u043d\u0438\u044f \u0438 \u0432\u044b\u0440\u0443\u043b\u0438\u0442\u044c \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044e \u0432 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0435 \u0440\u0443\u0441\u043b\u043e. \u0412 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u00abInfrastructure as code: \u043f\u0435\u0440\u0432\u043e\u0435 \u0437\u043d\u0430\u043a\u043e\u043c\u0441\u0442\u0432\u043e\u00bb \u044f \u0434\u0435\u043b\u0438\u043b\u0441\u044f \u0441\u0432\u043e\u0438\u043c \u0432\u043f\u0435\u0447\u0430\u0442\u043b\u0435\u043d\u0438\u0435\u043c \u043e\u0442 \u044d\u0442\u043e\u0439 \u0441\u0444\u0435\u0440\u044b,\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/infrastructure-as-code-kak-poborot-problemy-s-pomoshhyu-xp\" \/>\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:25:42+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:25:42+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\udd47Infrastructure as Code: kuidas probleemidega tegeleda XP abil | ProHoster","description":"Tere, Habr! Varem kaebasin ma elust Infrastructure as Code paradigmas ja ei pakkunud mingeid lahendusi tekkinud olukorrale. T\u00e4na olen tagasi, et r\u00e4\u00e4kida, millised l\u00e4henemised ja praktikad aitavad p\u00e4\u00e4seda meeleheite s\u00fcgavustest ja muuta olukord \u00f5igesse suunda. Eelmisel artiklil \"Infrastructure as Code: esimene tutvustus\" jagasin ma oma muljeid sellest valdkonnast.","canonical_url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/infrastructure-as-code-kak-poborot-problemy-s-pomoshhyu-xp","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: \u043a\u0430\u043a \u043f\u043e\u0431\u043e\u0440\u043e\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e XP | ProHoster","og:description":"\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! \u0420\u0430\u043d\u044c\u0448\u0435 \u044f \u0436\u0430\u043b\u043e\u0432\u0430\u043b\u0441\u044f \u043d\u0430 \u0436\u0438\u0437\u043d\u044c \u0432 \u043f\u0430\u0440\u0430\u0434\u0438\u0433\u043c\u0435 Infrastructure as code \u0438 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u043b \u0434\u043b\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0441\u043b\u043e\u0436\u0438\u0432\u0448\u0435\u0439\u0441\u044f \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u044f \u0432\u0435\u0440\u043d\u0443\u043b\u0441\u044f, \u0447\u0442\u043e\u0431\u044b \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u043a\u0430\u043a\u0438\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u044b \u0438 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438 \u043f\u043e\u043c\u043e\u0433\u0443\u0442 \u0432\u044b\u0440\u0432\u0430\u0442\u044c\u0441\u044f \u0438\u0437 \u0431\u0435\u0437\u0434\u043d\u044b \u043e\u0442\u0447\u0430\u044f\u043d\u0438\u044f \u0438 \u0432\u044b\u0440\u0443\u043b\u0438\u0442\u044c \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044e \u0432 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0435 \u0440\u0443\u0441\u043b\u043e. \u0412 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u00abInfrastructure as code: \u043f\u0435\u0440\u0432\u043e\u0435 \u0437\u043d\u0430\u043a\u043e\u043c\u0441\u0442\u0432\u043e\u00bb \u044f \u0434\u0435\u043b\u0438\u043b\u0441\u044f \u0441\u0432\u043e\u0438\u043c \u0432\u043f\u0435\u0447\u0430\u0442\u043b\u0435\u043d\u0438\u0435\u043c \u043e\u0442 \u044d\u0442\u043e\u0439 \u0441\u0444\u0435\u0440\u044b,","og:url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/infrastructure-as-code-kak-poborot-problemy-s-pomoshhyu-xp","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:25:42+00:00","article:modified_time":"2019-10-31T19:25:42+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"38747","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 23:16:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:04:30","updated":"2026-01-23 23:16:19"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/38747","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=38747"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/38747\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media\/29066"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=38747"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=38747"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=38747"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}