{"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\/lv\/blog\/administrirovanie\/infrastructure-as-code-pervoe-znakomstvo","title":{"rendered":"Infrastrukt\u016bra k\u0101 kods: pirmais iepaz\u012b\u0161an\u0101s","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>M\u016bsu uz\u0146\u0113mum\u0101 notiek SRE komandas onboarding process. Es pievienojos \u0161ai lietai no izstr\u0101des puses. Procesa laik\u0101 man rad\u0101s domas un ieskati, ar kuriem es v\u0113los dal\u012bties ar citiem izstr\u0101d\u0101t\u0101jiem. \u0160aj\u0101 rakst\u0101-es dom\u0101ju, es run\u0101ju par to, kas notiek, k\u0101 notiek un k\u0101 visiem t\u0101l\u0101k ar to dz\u012bvot. <\/p>\n<p><img decoding=\"async\" alt=\"Infrastrukt\u016bra k\u0101 kods: pirmais iepaz\u012b\u0161an\u0101s\" 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>Turpin\u0101jums rakstu s\u0113rijai, kas rakst\u012bta uz iek\u0161\u0113jo pas\u0101kumu uzst\u0101\u0161an\u0101s mot\u012bviem. <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. \u0160r\u0113dingera ka\u0137is bez kastes: konsensa probl\u0113ma izplat\u012btaj\u0101s sist\u0113m\u0101s.<\/a><\/noindex><br \/>\n2. Infrastrukt\u016bra k\u0101 kods. (Tu esi \u0161eit)<br \/>\n3. Typescript l\u012bgumu \u0123ener\u0113\u0161ana no C# mode\u013ciem. (Darba proces\u0101...)<br \/>\n4. Ievads Raft konsensa algoritm\u0101. (Darba proces\u0101...)<br \/>\n\u2026<\/p><\/blockquote>\n<p>\nM\u0113s nol\u0113m\u0101m izveidot SRE komandu, \u012bstenojot idejas <noindex><a rel=\"nofollow\" href=\"https:\/\/landing.google.com\/sre\/books\/\">google sre<\/a><\/noindex>. Ieguv\u0101m programm\u0113t\u0101jus no saviem izstr\u0101d\u0101t\u0101jiem un nos\u016bt\u012bj\u0101m vi\u0146us m\u0101c\u012bties uz da\u017eiem m\u0113ne\u0161iem. <\/p>\n<p>Komanda sask\u0101r\u0101s ar sekojo\u0161iem m\u0101c\u012bbu uzdevumiem:<\/p>\n<ul>\n<li>P\u0101rveidot m\u016bsu infrastrukt\u016bru, kas liel\u0101koties ir Microsoft Azure, kod\u0101 (Terraform un viss, kas pie t\u0101 piedera). <\/li>\n<li>Iem\u0101c\u012bt izstr\u0101d\u0101t\u0101jiem str\u0101d\u0101t ar infrastrukt\u016bru. <\/li>\n<li>Sagatavot izstr\u0101d\u0101t\u0101jus de\u017e\u016br\u0101m.<\/li>\n<\/ul>\n<p><\/p>\n<h2>Ievie\u0161am j\u0113dzienu Infrastrukt\u016bra k\u0101 kods.<\/h2>\n<p>\nParastaj\u0101 pasaules model\u012b (klasiskais administr\u0113\u0161ana) zin\u0101\u0161anas par infrastrukt\u016bru atrodas div\u0101s viet\u0101s:<\/p>\n<ol>\n<li>Vai nu ekspertu pr\u0101tu zin\u0101\u0161an\u0101s.<img decoding=\"async\" alt=\"Infrastrukt\u016bra k\u0101 kods: pirmais iepaz\u012b\u0161an\u0101s\" src=\"\/wp-content\/uploads\/2019\/08\/2400dea0a90c24b05c275b709bbd2057.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/li>\n<li>Vai \u0161\u012bs zin\u0101\u0161anas atrodas k\u0101d\u0101s iek\u0101rt\u0101s, no kur\u0101m da\u013cu zina eksperti. Bet nav garantijas, ka k\u0101ds no malas (ja m\u016bsu komanda p\u0113k\u0161\u0146i aizietu) sp\u0113s saprast, kas un k\u0101 darbojas. Ma\u0161\u012bn\u0101 var b\u016bt daudz inform\u0101cijas: piek\u013cuves, cron uzdevumi, piel\u0101gots (skat. <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Mount_(computing)\">disk mounting<\/a><\/noindex>) disks un vienk\u0101r\u0161i bezgal\u012bgs saraksts ar to, kas var notikt. Ar to gr\u016bti saprast, kas realit\u0101t\u0113 notiek.<img decoding=\"async\" alt=\"Infrastrukt\u016bra k\u0101 kods: pirmais iepaz\u012b\u0161an\u0101s\" src=\"\/wp-content\/uploads\/2019\/08\/37bafea85a641c48683c35975f67f24d.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/li>\n<\/ol>\n<p>\nAbos gad\u012bjumos m\u0113s non\u0101kam slazd\u0101, k\u013c\u016bstot atkar\u012bgi:<\/p>\n<ul>\n<li>vai nu no cilv\u0113ka, kur\u0161 ir mirst\u012bgs, pak\u013cauts slim\u012bb\u0101m, iem\u012bl\u0113\u0161an\u0101m, garast\u0101vok\u013ca sv\u0101rst\u012bb\u0101m un vienk\u0101r\u0161iem atlai\u0161anas gad\u012bjumiem;<\/li>\n<li>vai nu no fiziski str\u0101d\u0101jo\u0161as ma\u0161\u012bnas, kas ar\u012b var saboj\u0101ties, tikt nolaup\u012bta, rad\u012bt p\u0101rsteigumus un ne\u0113rt\u012bbas. <\/li>\n<\/ul>\n<p>\nPa\u0161saprotami, ka risin\u0101jums ir ide\u0101li visu p\u0101rv\u0113rst cilv\u0113ka las\u0101m\u0101, uztur\u0113t\u0101, kvalitat\u012bvi rakst\u012bt\u0101 kod\u0101. <\/p>\n<p>T\u0101d\u0113j\u0101di infrastrukt\u016bra k\u0101 kods (Infrastructure as Code \u2013 IaC) ir visu pieejamo infrastrukt\u016bras apraksts koda veid\u0101, k\u0101 ar\u012b saist\u012btie r\u012bki, kas \u013cauj ar to str\u0101d\u0101t un realiz\u0113t re\u0101lu infrastrukt\u016bru no t\u0101.<\/p>\n<p><b class=\"spoiler_title\">K\u0101p\u0113c visu p\u0101rv\u0113rst kod\u0101<\/b>Cilv\u0113ki nav ma\u0161\u012bnas. Vi\u0146i nevar atcer\u0113ties visu. Cilv\u0113ka un ma\u0161\u012bnas reakcija ir at\u0161\u0137ir\u012bga. Viss automatiz\u0113tais potenci\u0101li darbojas \u0101tr\u0101k nek\u0101 viss, ko dara cilv\u0113ks. Galvenais ir viens paties\u012bbas avots (single source of truth). <\/p>\n<p><b class=\"spoiler_title\">K\u0101 rodas jauni SRE in\u017eenieri<\/b>T\u0101tad m\u0113s nol\u0113m\u0101m pievienot jaunus SRE in\u017eenierus, bet no kurienes tos \u0146emt? Gr\u0101mata ar pareizaj\u0101m atbild\u0113m (<noindex><a rel=\"nofollow\" href=\"https:\/\/landing.google.com\/sre\/books\/\">Google SRE gr\u0101mata<\/a><\/noindex>) m\u0101ca, ka no izstr\u0101d\u0101t\u0101jiem. Galu gal\u0101 vi\u0146i str\u0101d\u0101 ar kodu, un j\u016bs sasniedzat ide\u0101lo st\u0101vokli.<\/p>\n<p>M\u0113s ilgi un c\u012bt\u012bgi mekl\u0113j\u0101m vi\u0146us darba tirg\u016b \u0101rpus m\u016bsu uz\u0146\u0113muma. Bet esam spiesti atz\u012bt, ka neatrad\u0101m nevienu, kas atbilstu m\u016bsu pras\u012bb\u0101m. Vajadz\u0113ja t\u012br\u012bt starp sav\u0113jiem. <\/p>\n<h2>Infrastrukt\u016bras k\u0101 koda probl\u0113mas<\/h2>\n<p>\nTagad apl\u016bkosim piem\u0113rus tam, k\u0101 infrastrukt\u016bra var b\u016bt ierakst\u012bta kod\u0101. Kodam j\u0101b\u016bt labi uzrakst\u012btam, kvalitat\u012bvam, ar koment\u0101riem un atstarp\u0113m. <\/p>\n<p>Koda piem\u0113rs no Terraform.<\/p>\n<p><img decoding=\"async\" alt=\"Infrastrukt\u016bra k\u0101 kods: pirmais iepaz\u012b\u0161an\u0101s\" src=\"\/wp-content\/uploads\/2019\/08\/1a0bbca47e88fb12e97c0f270efba177.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKoda piem\u0113rs no Ansible.<\/p>\n<p><img decoding=\"async\" alt=\"Infrastrukt\u016bra k\u0101 kods: pirmais iepaz\u012b\u0161an\u0101s\" src=\"\/wp-content\/uploads\/2019\/08\/358fad8f5944bca1b97b2d6e37b2ee5e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nD\u0101rgie kol\u0113\u0123i, bet ja viss b\u016btu tik vienk\u0101r\u0161i! M\u0113s ta\u010du esam re\u0101laj\u0101 pasaul\u0113, un t\u0101 vienm\u0113r ir gatava j\u016bs p\u0101rsteigt ar p\u0101rsteigumiem un probl\u0113m\u0101m. \u0160eit tas ar\u012b nav iz\u0146\u0113mums.<\/p>\n<p><b>1. Pirma probl\u0113ma ir t\u0101da, ka visbie\u017e\u0101k IaC ir k\u0101ds DSL.<\/b><\/p>\n<p>Un DSL, savuk\u0101rt, ir strukt\u016bras apraksts. Prec\u012bz\u0101k, tas, kas jums j\u0101b\u016bt: Json, Yaml, izmai\u0146as no k\u0101d\u0101m liel\u0101m komp\u0101nij\u0101m, kuras izstr\u0101d\u0101ju\u0161as savu DSL (Terraform\u0101 tiek izmantots HCL). <\/p>\n<p>Probl\u0113ma ir t\u0101da, ka taj\u0101 var viegli nepietikt t\u0101d\u0101m ierast\u0101m liet\u0101m k\u0101:<\/p>\n<ul>\n<li>main\u012bgie;<\/li>\n<li>apst\u0101k\u013ci;<\/li>\n<li>kaut kur nav koment\u0101ru, piem\u0113ram, Json, to noklus\u0113jum\u0101 nav paredz\u0113ti;<\/li>\n<li>funkcijas;<\/li>\n<li>un to v\u0113l pat nepieminot augst\u0101k\u0101 l\u012bme\u0146a lietas, piem\u0113ram, klases, manto\u0161ana un visu p\u0101r\u0113jo.<\/li>\n<\/ul>\n<p>\n <b>2. Otr\u0101 \u0161\u0101da koda probl\u0113ma \u2013 visbie\u017e\u0101k tas ir heterog\u0113na vide.<\/b>. Parasti j\u016bs s\u0113\u017eat un str\u0101d\u0101jat ar C#, t.i., ar vienu valodu, vienu steku, vienu ekosist\u0113mu. Bet \u0161eit jums ir milz\u012bgs tehnolo\u0123iju daudzveid\u012bbas spektrs. <\/p>\n<p>Pavisam re\u0101la situ\u0101cija ir t\u0101da, ka bash ar Python izpilda k\u0101du procesu, kur\u0101 tiek iek\u013cauts JSON. J\u016bs to analiz\u0113jat, p\u0113c tam v\u0113l k\u0101ds \u0123enerators izdod v\u0113l 30 failus. Visam \u0161im ien\u0101k ieejas main\u012bgie no Azure Key Vault, kas pa\u0146emti ar drone.io spraudni, kas uzrakst\u012bts Go, un \u0161ie main\u012bgie tiek apstr\u0101d\u0101ti caur YAML, kas ieg\u016bts, \u0123ener\u0113jot no jsonnet veidne. Pietiekami gr\u016bti ir saglab\u0101t prec\u012bzi labi aprakst\u012btu kodu, kad jums ir tik da\u017e\u0101da vide. <\/p>\n<p>Tradicion\u0101l\u0101 izstr\u0101de vienas uzdevuma ietvaros notiek ar vienu valodu. \u0160aj\u0101 gad\u012bjum\u0101 m\u0113s str\u0101d\u0101jam ar daudz\u0101m valod\u0101m. <\/p>\n<p><b>3. Tre\u0161\u0101 probl\u0113ma ir r\u012bku izmanto\u0161ana.<\/b>. M\u0113s esam pieradu\u0161i pie for\u0161iem redaktoriem (Ms Visual Studio, Jetbrains Rider), kuri visu dara m\u016bsu viet\u0101. Un pat ja m\u0113s nedaudz k\u013c\u016bd\u0101mies, tie mums pazi\u0146o, ka neesam pareizi. Izskat\u0101s, ka tas ir norm\u0101li un dabiski. <\/p>\n<p>Bet blakus ir VSCode, kur\u0101 ir da\u017ei spraud\u0146i, kas kaut k\u0101 tiek uzst\u0101d\u012bti, atbalst\u012bti vai neatbalst\u012bti. Izn\u0101ca jaunas versijas, kuras netika atbalst\u012btas. Parasts p\u0101reja uz funkcijas \u012bsteno\u0161anu (pat ja t\u0101 ir) k\u013c\u016bst sare\u017e\u0123\u012bta un netriviala probl\u0113ma. Vienk\u0101r\u0161a main\u012bg\u0101 p\u0101rd\u0113v\u0113\u0161ana ir mekl\u0113\u0161ana projekt\u0101 desmitos failu. Veiksmes gad\u012bjum\u0101 t\u0101 aizvietos to, kas nepiecie\u0161ams. Protams, kaut kur ir sintakses izcel\u0161ana, ir autom\u0101tisk\u0101 pabeig\u0161ana, kaut kur ir format\u0113\u0161ana (bet man tas terraf\u0101rm\u0113 uz Windows neizdev\u0101s). <\/p>\n<p>\u0160\u012b raksta rakst\u012b\u0161anas br\u012bd\u012b <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/mauve\/vscode-terraform\">vscode-terraform spraudnis<\/a><\/noindex> v\u0113l nav izlaists, lai atbalst\u012btu versiju 0.12, lai gan t\u0101 ir izlaista jau pirms 3 m\u0113ne\u0161iem.<\/p>\n<h2>Ir pien\u0101cis laiks aizmirst par...<\/h2>\n<p><\/p>\n<ol>\n<li>Numuru nov\u0113r\u0161anas r\u012bku.<\/li>\n<li>M\u0113r\u0137is ir atkal aprakst\u012bts.<\/li>\n<li>Autom\u0101tisk\u0101 pabeig\u0161ana.<\/li>\n<li>K\u013c\u016bdu atkl\u0101\u0161ana kompil\u0113\u0161anas laik\u0101.<\/li>\n<\/ol>\n<p>\nIr smiekl\u012bgi, bet tas palielina att\u012bst\u012bbas laiku un palielina neizb\u0113gam\u0101s k\u013c\u016bdas, kas noteikti notiek. <\/p>\n<p>Visb\u012bstam\u0101kais ir tas, ka m\u0113s esam spiesti dom\u0101t nevis par to, k\u0101 pareizi noform\u0113t, k\u0101 salikt failus map\u0113s, dekompon\u0113t, padar\u012bt atbalst\u0101mu, las\u0101mu kodu un t\u0101 t\u0101l\u0101k, bet par to, k\u0101 es varu pareizi uzrakst\u012bt \u0161o komandu, jo es to kaut k\u0101 nepareizi uzrakst\u012bju. <\/p>\n<p>K\u0101 ies\u0101c\u0113js j\u016bs m\u0113\u0123in\u0101t saprast Terraform, bet IDE jums nepal\u012bdz. Kad ir dokument\u0101cija - j\u016bs ieejat un paskat\u0101ties. Bet, ja j\u016bs iem\u0101c\u0101ties jaunu programm\u0113\u0161anas valodu, IDE nor\u0101d\u012btu, ka ir \u0161\u0101ds tips, un t\u0101da nav. Vismaz int vai string l\u012bmen\u012b. Tas bie\u017ei ir noder\u012bgi. <\/p>\n<h2>Bet k\u0101 ar testiem?<\/h2>\n<p>\nJ\u016bs var\u0113tu jaut\u0101t: \u201eK\u0101 tad ar testiem, god\u0101jamie programm\u0113t\u0101ji?\u201d Nopietni speci\u0101listi visu test\u0113 ra\u017eo\u0161an\u0101, un tas ir nopietni. \u0160eit ir piemere vien\u012bbu testa Terraform modu\u013ca ar vietni. <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=\"Infrastrukt\u016bra k\u0101 kods: pirmais iepaz\u012b\u0161an\u0101s\" src=\"\/wp-content\/uploads\/2019\/08\/b9391409941e14f7e3cf6f8d964a2668.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nVi\u0146iem ir laba dokument\u0101cija. Microsoft vienm\u0113r ir patiku\u0161i vi\u0146u pieeja dokument\u0101cijai un m\u0101c\u012bb\u0101m. Bet nevajag b\u016bt t\u0113ti Bobam, lai saprastu, ka \u0161eit nav ide\u0101ls kods. Piev\u0113rsiet uzman\u012bbu valid\u0101cijai, kas ir izdal\u012bta pa labi. <\/p>\n<p>Probl\u0113ma ar vien\u012bbu testu ir t\u0101da, ka m\u0113s varam p\u0101rbaud\u012bt Jsona precizit\u0101ti izn\u0101kum\u0101. Es ievad\u012bju 5 parametrus, un man tika izsniegts Json pavad\u012bjums ar 2000 rind\u0101m. Es varu analiz\u0113t, kas te notiek, valid\u0113t testu rezult\u0101tu\u2026 <\/p>\n<p>Gr\u016bti analiz\u0113t Json Go. Un j\u0101, ir j\u0101raksta Go, jo Terraform ir Go \u2013 t\u0101 ir laba prakse test\u0113t taj\u0101 valod\u0101, kur\u0101 raksti. Pa\u0161a koda organiz\u0101cija ir \u013coti v\u0101j\u0161. Tom\u0113r \u0161\u012b ir lab\u0101k\u0101 bibliot\u0113ka test\u0113\u0161anai. <\/p>\n<p>Pats Microsoft raksta savus modu\u013cus, test\u0113jot tos \u0161\u0101d\u0101 veid\u0101. Protams, t\u0101 ir Open Source. Viss, par ko es run\u0101ju, ir t\u0101\u0434\u0101 veid\u0101, ka j\u016bs varat n\u0101kt un labot. Es varu s\u0113d\u0113t un ned\u0113\u013cas laik\u0101 visu salabot, open-sorc\u0113t VS Code spraud\u0146us, Terraform, izveidot spraudni Rideram. Varb\u016bt uzrakst\u012bt p\u0101ris analizatorus, pievienot linters, ieguld\u012bt bibliot\u0113k\u0101 test\u0113\u0161anai. Viss, ko es varu izdar\u012bt. Bet man nevajadz\u0113tu to dar\u012bt. <\/p>\n<h2>Lab\u0101k\u0101s prakses Infrastructure as code<\/h2>\n<p>\nTurpin\u0101m. Ja IaC nav testu, ir slikti ar IDE un r\u012bkiem, tad vismaz j\u0101b\u016bt lab\u0101kaj\u0101m praks\u0113m. Es vienk\u0101r\u0161i ieg\u0101ju Google Analytics un veicu divu mekl\u0113jumu piepras\u012bjumu sal\u012bdzin\u0101jumu: Terraform lab\u0101k\u0101s prakses un C# lab\u0101k\u0101s prakses. <\/p>\n<p><img decoding=\"async\" alt=\"Infrastrukt\u016bra k\u0101 kods: pirmais iepaz\u012b\u0161an\u0101s\" src=\"\/wp-content\/uploads\/2019\/08\/3d0e8cd626596deea99324285321a0ab.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKo m\u0113s redzam? Ne\u017e\u0113l\u012bgu statistiku ne m\u016bsu lab\u0101. Attiec\u012bb\u0101 uz materi\u0101la apjomu \u2013 tas ir tas pats. C# izstr\u0101d\u0113 m\u0113s vienk\u0101r\u0161i peldamies materi\u0101los, mums ir vislab\u0101k\u0101s prakses, ir gr\u0101matas, ko uzrakst\u012bju\u0161i eksperti, un ar\u012b gr\u0101matas, ko uzrakst\u012bju\u0161i pie ekspertiem, kas kritiz\u0113 t\u0101s gr\u0101matas. J\u016bra ofici\u0101l\u0101s dokument\u0101cijas, rakstu, m\u0101c\u012bbu kursu, tagad v\u0113l ar\u012b open source izstr\u0101de.<\/p>\n<p>Attiec\u012bb\u0101 uz IaC piepras\u012bjumu: \u0161eit j\u016bs pa maziem gabaliem m\u0113\u0123in\u0101t sav\u0101kt inform\u0101ciju no augsta slodzes zi\u0146ojumiem vai HashiConf, no ofici\u0101l\u0101s dokument\u0101cijas un daudziem jaut\u0101jumiem GitHub. K\u0101 visp\u0101r izplat\u012bt \u0161os modu\u013cus, ko ar tiem dar\u012bt? Izskat\u0101s, ka tas ir re\u0101ls izaicin\u0101jums\u2026 Ir ta\u010du kopiena, god\u0101jamie, kur uz jebkuru jaut\u0101jumu jums dos 10 koment\u0101rus GitHub. Bet t\u0101 nav t\u0101da garantija. <\/p>\n<p>Diem\u017e\u0113l \u0161obr\u012bd eksperti tikai s\u0101k par\u0101d\u012bties. L\u012bdz \u0161im to ir p\u0101r\u0101k maz. Un visa kopiena ir tikai savas att\u012bst\u012bbas s\u0101kumstadij\u0101. <\/p>\n<h2>Uz kuru pusi tas viss virz\u0101s un ko dar\u012bt<\/h2>\n<p>\nVarb\u016bt visu pamest un atgriezties pie C#, uz rajdera pasauli. Bet n\u0113. K\u0101p\u0113c j\u016bs visp\u0101r to dar\u012btu, ja neatrast risin\u0101jumu? Zem\u0101k es sniedzu savus subjekt\u012bvos secin\u0101jumus. Varat ar mani str\u012bd\u0113ties koment\u0101ru sada\u013c\u0101, b\u016bs interesanti. <\/p>\n<p>Person\u012bgi es esmu izv\u0113l\u0113jies vair\u0101kas lietas:<\/p>\n<ol>\n<li>Att\u012bst\u012bba \u0161aj\u0101 jom\u0101 norit \u013coti \u0101tri. \u0160eit ir piepras\u012bjumu grafiks par DevOps.\n<p><img decoding=\"async\" alt=\"Infrastrukt\u016bra k\u0101 kods: pirmais iepaz\u012b\u0161an\u0101s\" src=\"\/wp-content\/uploads\/2019\/08\/068276f040f17c84a4c7eb9e11703c5c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nVarb\u016bt t\u0113ma ir mod\u012bga, bet fakts, ka joma aug, sniedz zin\u0101mu cer\u012bbu. <\/p>\n<p>Ja kaut kas aug tik \u0101tri, noteikti par\u0101d\u012bsies gudri cilv\u0113ki, kas teiks, k\u0101 tas j\u0101dara un k\u0101 ne. Pieaugot popularit\u0101tei, k\u0101ds galu gal\u0101 var\u0113s pabeigt jsonnet spraudni VSCode, kas \u013caus p\u0101riet uz funkcijas implement\u0101ciju, nevis mekl\u0113t to caur ctrl+shift+f. Kad viss att\u012bst\u0101s, par\u0101d\u0101s vair\u0101k materi\u0101lu. Tas pats Google jaun\u0101 gr\u0101mata par SRE ir lielisks tam piem\u0113rs.<\/li>\n<li>Ikdienas izstr\u0101d\u0113 ir izstr\u0101d\u0101tas metodes un prakses, kuras m\u0113s varam veiksm\u012bgi izmantot \u0161eit. J\u0101, ir nianses ar test\u0113\u0161anu un heterog\u0113nu vidi, nepietiekama r\u012bku komplekta, bet ir uzkr\u0101ta liela skait\u0101 prakses, kas var b\u016bt noder\u012bgas un pal\u012bdz\u0113t.\n<p>Ban\u0101ls piem\u0113rs: kopdarbs, izmantojot pair programming. Tas \u013coti pal\u012bdz lab\u0101k saprast. Kad tev blakus ir kaimi\u0146\u0161, kur\u0161 ar\u012b m\u0113\u0123ina kaut ko saprast, kop\u0101 j\u016bs saprat\u012bsiet lab\u0101k.<\/p>\n<p> Izpratne par to, k\u0101 notiek refaktoriz\u0101cija, pal\u012bdz ar\u012b \u0161\u0101d\u0101 situ\u0101cij\u0101 to veikt. Tas noz\u012bm\u0113, ka tu vari nemain\u012bt visu uzreiz, bet main\u012bt nosaukumus, tad main\u012bt izvietojumu, p\u0113c tam varb\u016bt izcelt k\u0101du da\u013cu, ak, \u0161eit tr\u016bkst koment\u0101ru. <\/li>\n<\/ol>\n<p><\/p>\n<h2>Secin\u0101jums<\/h2>\n<p>\nNeskatoties uz to, ka mani spriedumi var \u0161\u0137ist pesimistiski, es ar cer\u012bbu skatos n\u0101kotn\u0113 un patiesi ceru, ka mums (un jums) viss izdosies.<\/p>\n<blockquote><p>N\u0101kamaj\u0101 da\u013c\u0101 gatavojas otrais raksts. Taj\u0101 es past\u0101st\u012b\u0161u par to, k\u0101 m\u0113s m\u0113\u0123in\u0101j\u0101m pielietot elast\u012bgas izstr\u0101des prakses, lai uzlabotu m\u016bsu m\u0101c\u012bbu procesu un darbu ar infrastrukt\u016bru.<\/p><\/blockquote>\n<p>Avots: <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.5 - 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\/lv\/blog\/administrirovanie\/infrastructure-as-code-pervoe-znakomstvo\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.5\" \/>\n\t\t<meta property=\"og:locale\" content=\"lv_LV\" \/>\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\/lv\/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\udd47Infrastructure as code: pirm\u0101 iepaz\u012b\u0161an\u0101s | ProHoster","description":"M\u016bsu uz\u0146\u0113mum\u0101 notiek SRE komandas onboardinga process. Es piev\u0113rsos visai \u0161ai lietai no izstr\u0101des puses. Procesa laik\u0101 man rad\u0101s domas un ieskati, ar kuriem v\u0113los dal\u012bties ar citiem izstr\u0101d\u0101t\u0101jiem.","canonical_url":"https:\/\/prohoster.info\/lv\/blog\/administrirovanie\/infrastructure-as-code-pervoe-znakomstvo","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"lv_LV","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\/lv\/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\/lv\/wp-json\/wp\/v2\/posts\/37586","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/comments?post=37586"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/posts\/37586\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/media\/28211"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/media?parent=37586"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/categories?post=37586"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/tags?post=37586"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}