{"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\/hu\/blog\/administrirovanie\/infrastructure-as-code-kak-poborot-problemy-s-pomoshhyu-xp","title":{"rendered":"Infrastruktur\u00e1lis k\u00f3d: hogyan lehet megoldani a probl\u00e9m\u00e1kat XP seg\u00edts\u00e9g\u00e9vel","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Hell\u00f3, Habr! Kor\u00e1bban panaszkodtam az Infrastructure as Code paradigm\u00e1j\u00e1ban val\u00f3 \u00e9letre, \u00e9s semmit sem javasoltam a kialakult helyzet megold\u00e1s\u00e1ra. Ma visszat\u00e9rtem, hogy mes\u00e9ljek arr\u00f3l, hogy milyen megk\u00f6zel\u00edt\u00e9sek \u00e9s gyakorlatok seg\u00edthetnek kiszabadulni a k\u00e9ts\u00e9gbees\u00e9s m\u00e9lys\u00e9geib\u0151l, \u00e9s a helyes ir\u00e1nyba terelni a helyzetet. <\/p>\n<p><img decoding=\"async\" alt=\"Infrastruktur\u00e1lis k\u00f3d: hogyan lehet megoldani a probl\u00e9m\u00e1kat XP seg\u00edts\u00e9g\u00e9vel\" 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 \/>\nAz el\u0151z\u0151 cikkben <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/dodopizzaio\/blog\/465137\/\">\u00abInfrastructure as Code: Els\u0151 tal\u00e1lkoz\u00e1s\u00bb<\/a><\/noindex> megpr\u00f3b\u00e1ltam megosztani a benyom\u00e1saimat err\u0151l a ter\u00fcletr\u0151l, gondolkodtam a jelenlegi helyzetr\u0151l, \u00e9s m\u00e9g azt is felt\u00e9teleztem, hogy a standard, minden fejleszt\u0151 \u00e1ltal ismert gyakorlatok seg\u00edthetnek. \u00dagy t\u0171nhetett, hogy sok panaszt fogalmaztam meg, de nem k\u00edn\u00e1ltam megold\u00e1sokat a kialakult helyzetre. <\/p>\n<h2>Kik vagyunk, hol vagyunk \u00e9s mik a probl\u00e9m\u00e1ink<\/h2>\n<p>\nJelenleg az SRE Onboarding Team tagjai vagyunk, amely hat programoz\u00f3b\u00f3l \u00e9s h\u00e1rom infrastruktur\u00e1lis m\u00e9rn\u00f6kb\u0151l \u00e1ll. Mindannyian pr\u00f3b\u00e1lunk Infrastructure as Code (IaC) megold\u00e1sokat \u00edrni. Ezt az\u00e9rt tessz\u00fck, mert az alapvet\u0151 k\u00f3d\u00edr\u00e1sban j\u00e1rtasak vagyunk \u00e9s a h\u00e1tt\u00e9r\u00fcnk fejleszt\u0151k szintj\u00e9n '\u00e1tlag feletti'. <\/p>\n<ul>\n<li>Van egy csom\u00f3 el\u0151ny\u00fcnk: bizonyos h\u00e1tt\u00e9r, a gyakorlatok ismerete, a k\u00f3d\u00edr\u00e1si k\u00e9pess\u00e9g \u00e9s a v\u00e1gy az \u00faj tanul\u00e1s\u00e1ra. <\/li>\n<li>\u00c9s van egy gyeng\u00e9bb r\u00e9sz is, ez a h\u00e1tr\u00e1ny: az infrastrukt\u00fara anyagr\u00f3l val\u00f3 tud\u00e1s hi\u00e1nya. <\/li>\n<\/ul>\n<p>\n<b class=\"spoiler_title\">Az \u00e1ltalunk haszn\u00e1lt technol\u00f3giai stack az IaC ter\u00e9n.<\/b><\/p>\n<ul>\n<li>Terraform az er\u0151forr\u00e1sok l\u00e9trehoz\u00e1s\u00e1hoz.<\/li>\n<li>Packer a k\u00e9pek \u00e9p\u00edt\u00e9s\u00e9hez. Ezek Windows \u00e9s CentOS 7 k\u00e9pek.<\/li>\n<li>Jsonnet a hat\u00e9kony buildhez a drone.io-n, valamint a packer json \u00e9s Terraform modulok gener\u00e1l\u00e1s\u00e1hoz.<\/li>\n<li>Azure.<\/li>\n<li>Ansible a k\u00e9pek elk\u00e9sz\u00edt\u00e9sekor.<\/li>\n<li>Python seg\u00e9dszolg\u00e1ltat\u00e1sokhoz \u00e9s a provision\u00e1l\u00e1si szkriptekhez.<\/li>\n<li>\u00c9s mindez a VSCode-ban zajlik, a csapattagok \u00e1ltal megosztott pluginekkel.<\/li>\n<\/ul>\n<p>A kor\u00e1bbi <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/dodopizzaio\/blog\/465137\/\">cikkemb\u0151l<\/a><\/noindex> az a k\u00f6vetkeztet\u00e9s sz\u00fcletett: pr\u00f3b\u00e1ltam optimizmust \u00f6nteni (els\u0151sorban magamba), \u00e9s azt akartam mondani, hogy ismerj\u00fck a megk\u00f6zel\u00edt\u00e9seket \u00e9s gyakorlatokat, amelyek seg\u00edts\u00e9g\u00e9vel k\u00fczdeni fogunk a neh\u00e9zs\u00e9gekkel \u00e9s kih\u00edv\u00e1sokkal, amelyek ezen a ter\u00fcleten vannak. <\/p>\n<p>Jelenleg ezekkel a IaC probl\u00e9m\u00e1kkal k\u00fczd\u00fcnk:<\/p>\n<ul>\n<li>Az eszk\u00f6z\u00f6k \u00e9s a k\u00f3dfejleszt\u00e9s eszk\u00f6zeinek hi\u00e1nyoss\u00e1gai.<\/li>\n<li>Lass\u00fa telep\u00edt\u00e9s. Az infrastrukt\u00fara a val\u00f3s\u00e1g r\u00e9sze, \u00e9s ez nem mindig gyors.<\/li>\n<li>Hi\u00e1nyz\u00f3 megk\u00f6zel\u00edt\u00e9sek \u00e9s gyakorlatok.<\/li>\n<li>\u00dajak vagyunk, \u00e9s sok mindent nem tudunk.<\/li>\n<\/ul>\n<p><\/p>\n<h2>A sz\u00e9ls\u0151s\u00e9ges programoz\u00e1s (XP) siet a seg\u00edts\u00e9g\u00fcnkre<\/h2>\n<p>\nMinden fejleszt\u0151 sz\u00e1m\u00e1ra j\u00f3l ismert az extr\u00e9m programoz\u00e1s (XP) \u00e9s azok a gyakorlatok, amelyek m\u00f6g\u00f6tte \u00e1llnak. Sokan k\u00f6z\u00fcl\u00fcnk dolgoztunk m\u00e1r ezzel a megk\u00f6zel\u00edt\u00e9ssel, \u00e9s az sikeres volt. Mi\u00e9rt ne haszn\u00e1ln\u00e1nk a benne rejl\u00f3 elveket \u00e9s gyakorlatokat, hogy lek\u00fczdj\u00fck a infrastrukt\u00fara neh\u00e9zs\u00e9geit? \u00dagy d\u00f6nt\u00f6tt\u00fcnk, alkalmazzuk ezt a megk\u00f6zel\u00edt\u00e9st, \u00e9s megn\u00e9zz\u00fck, hov\u00e1 vezet.<\/p>\n<p><b class=\"spoiler_title\">Az XP megk\u00f6zel\u00edt\u00e9s alkalmazhat\u00f3s\u00e1g\u00e1nak ellen\u0151rz\u00e9se a ti ter\u00fcleteteken<\/b>A k\u00f6vetkez\u0151kben bemutatok egy olyan k\u00f6rnyezetet, amely j\u00f3l illeszkedik az XP-hez, \u00e9s hogy ez hogyan viszonyul hozz\u00e1nk: <\/p>\n<p>1. Dinamikusan v\u00e1ltoz\u00f3 szoftverig\u00e9nyek. Tudtuk, mi a v\u00e9gs\u0151 c\u00e9l. De a r\u00e9szletek v\u00e1ltozhatnak. Mi magunk d\u00f6ntj\u00fck el, hov\u00e1 kell kanyarodnunk, ez\u00e9rt az ig\u00e9nyek id\u0151nk\u00e9nt megv\u00e1ltoznak (f\u0151k\u00e9nt mi magunk \u00e1ltal). Ha az SRE csoportra n\u00e9z\u00fcnk, aki maga v\u00e9gzi az automatiz\u00e1l\u00e1st \u00e9s maga is korl\u00e1tozza az ig\u00e9nyeket \u00e9s a munka terjedelm\u00e9t, akkor ez a pont j\u00f3l illeszkedik. <\/p>\n<p>2. Kock\u00e1zatok a fix id\u0151keretes projektekn\u00e9l \u00faj technol\u00f3gi\u00e1k alkalmaz\u00e1sa miatt. Kock\u00e1zatok mer\u00fclhetnek fel, ha ismeretlen dolgokat haszn\u00e1lunk. \u00c9s ez 100%-ban a mi eset\u00fcnk. Az eg\u00e9sz projekt\u00fcnk olyan technol\u00f3gi\u00e1k haszn\u00e1lata, amelyekkel nem voltunk teljesen tiszt\u00e1ban. Ez folyamatos probl\u00e9ma, mivel az infrastrukt\u00far\u00e1ban \u00e1lland\u00f3an \u00faj technol\u00f3gi\u00e1k jelennek meg. <\/p>\n<p>3,4. Kis, egy\u00fctt elhelyezett kiterjesztett fejleszt\u0151csapat. Az \u00e1ltalad haszn\u00e1lt technol\u00f3gia lehet\u0151v\u00e9 teszi az automatiz\u00e1lt egys\u00e9g- \u00e9s funkcion\u00e1lis teszteket. Ezek a pontok nem teljesen r\u00e1nk vonatkoznak. El\u0151sz\u00f6r is, nem vagyunk ko-lok\u00e1lt csapat, m\u00e1sodszor, kilenc f\u0151b\u0151l \u00e1llunk, ami nagy csapatnak sz\u00e1m\u00edthat. M\u00edg egyes meghat\u00e1roz\u00e1sok szerint a \"nagy\" csapat 14+ f\u0151. <\/p>\n<p>Vizsg\u00e1ljunk meg n\u00e9h\u00e1ny XP-b\u0151l sz\u00e1rmaz\u00f3 gyakorlatot \u00e9s azt, hogy ezek hogyan befoly\u00e1solj\u00e1k a visszajelz\u00e9s gyorsas\u00e1g\u00e1t \u00e9s min\u0151s\u00e9g\u00e9t.<\/p>\n<h4>Az XP visszajelz\u00e9si ciklus\u00e1nak elve<\/h4>\n<p>\nAz \u00e9n meg\u00e9rt\u00e9sem szerint a visszajelz\u00e9s az a v\u00e1lasz, amely arra k\u00e9rd\u00e9sre \u00e9rkezik, hogy j\u00f3l csin\u00e1lom-e, arra megy\u00fcnk-e? Az XP-nek van erre egy isteni diagramja: az id\u0151beli visszajelz\u00e9si ciklus. Az \u00e9rdekess\u00e9g abban rejlik, hogy min\u00e9l alacsonyabban vagyunk, ann\u00e1l gyorsabban tudunk operat\u00edv szolg\u00e1ltat\u00e1st kapni, hogy v\u00e1laszoljunk a sz\u00fcks\u00e9ges k\u00e9rd\u00e9sekre. <\/p>\n<p><img decoding=\"async\" alt=\"Infrastruktur\u00e1lis k\u00f3d: hogyan lehet megoldani a probl\u00e9m\u00e1kat XP seg\u00edts\u00e9g\u00e9vel\" src=\"\/wp-content\/uploads\/2019\/10\/e381fb2d7937cbd1978fd6740e63e790.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEz egy el\u00e9g \u00e9rdekes t\u00e9ma, hogy az IT iparban gyorsan lehet operat\u00edv szolg\u00e1ltat\u00e1st kapni. K\u00e9pzeld el, mennyire f\u00e1jdalmas lehet egy projektet f\u00e9l \u00e9vig csin\u00e1lni, \u00e9s csak akkor r\u00e1j\u00f6nni, hogy az elej\u00e9n hib\u00e1t v\u00e9tett\u00fcnk. Ez el\u0151fordulhat a tervez\u00e9s sor\u00e1n \u00e9s b\u00e1rmilyen bonyolult rendszer fel\u00e9p\u00edt\u00e9se sor\u00e1n. <\/p>\n<p>Az IaC eset\u00e9ben a visszajelz\u00e9s seg\u00edt nek\u00fcnk. Azonnal v\u00e9geztem egy apr\u00f3 m\u00f3dos\u00edt\u00e1st a fenti s\u00e9m\u00e1ban: a kiad\u00e1si terv nem havi ciklus, hanem naponta t\u00f6bbsz\u00f6r val\u00f3sul meg. Ehhez a ciklushoz k\u00f6t\u0151dnek bizonyos gyakorlatok, amelyeket r\u00e9szletesebben megvizsg\u00e1lunk.<\/p>\n<blockquote><p>Fontos: a visszajelz\u00e9s megold\u00e1st ny\u00fajthat az \u00f6sszes fent eml\u00edtett probl\u00e9m\u00e1ra. Az XP gyakorlatokkal egy\u00fctt k\u00e9pes kih\u00fazni a k\u00e9ts\u00e9gbees\u00e9s m\u00e9lys\u00e9g\u00e9b\u0151l.<\/p><\/blockquote>\n<p><\/p>\n<h2>Hogyan mentsd meg magad a k\u00e9ts\u00e9gbees\u00e9s m\u00e9lys\u00e9g\u00e9b\u0151l: h\u00e1rom gyakorlat<\/h2>\n<p><\/p>\n<h4>Tesztel\u00e9s <\/h4>\n<p>\nA tesztek k\u00e9tszer ker\u00fclnek eml\u00edt\u00e9sre az XP visszajelz\u00e9si ciklus\u00e1ban. Ez nem v\u00e9letlen. Rendk\u00edv\u00fcl fontosak az extr\u00e9m programoz\u00e1s \u00f6sszes technik\u00e1j\u00e1hoz. <\/p>\n<p>Felt\u00e9telezz\u00fck, hogy rendelkez\u00e9sedre \u00e1ll Unit \u00e9s Acceptance teszt. Az egyik n\u00e9h\u00e1ny perc alatt visszajelz\u00e9st ad, a m\u00e1sik napokig tart, mert hosszabban \u00edrj\u00e1k \u00e9s ritk\u00e1bban futtatj\u00e1k. <\/p>\n<p>Van egy klasszikus tesztel\u00e9si piramis, amely azt mutatja, hogy bizonyos tesztjeinkb\u0151l t\u00f6bbnek kell lennie. <\/p>\n<p><img decoding=\"async\" alt=\"Infrastruktur\u00e1lis k\u00f3d: hogyan lehet megoldani a probl\u00e9m\u00e1kat XP seg\u00edts\u00e9g\u00e9vel\" src=\"\/wp-content\/uploads\/2019\/10\/29f3217f11b67378c9c0c3f14fab9d61.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nHogyan alkalmazhat\u00f3 ez a s\u00e9ma a mi IaC projekt\u00fcnkre? Val\u00f3j\u00e1ban\u2026 sehogy. <\/p>\n<ul>\n<li>Unit tesztb\u0151l, hab\u00e1r soknak kell lennie, nem lehet t\u00fal sok. Vagy nagyon k\u00f6zvetve tesztelnek valamit. Val\u00f3j\u00e1ban elmondhat\u00f3, hogy szinte egy\u00e1ltal\u00e1n nem \u00edrunk ilyen teszteket. De van n\u00e9h\u00e1ny alkalmaz\u00e1s, amit m\u00e9gis siker\u00fclt l\u00e9trehoznunk:\n<ol>\n<li>K\u00f3d tesztel\u00e9se jsonnet-ben. Ez p\u00e9ld\u00e1ul a dr\u00f3nban l\u00e9v\u0151 \u00f6sszeszerel\u00e9si folyamatunk, amely el\u00e9g bonyolult. A jsonnet k\u00f3d j\u00f3l tesztelhet\u0151. <br \/>\n Ezt haszn\u00e1ljuk <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/yugui\/jsonnetunit\">Unit testing framework for Jsonnet<\/a><\/noindex>. <\/li>\n<li> Tesztel\u00e9s a forr\u00e1sok ind\u00edt\u00e1sakor v\u00e9grehajtott szkriptekre. Python szkriptek, \u00edgy ezeken a teszteken is lehet dolgozni.<\/li>\n<\/ol>\n<\/li>\n<li>Potenci\u00e1lisan lehets\u00e9ges a konfigur\u00e1ci\u00f3 vizsg\u00e1lata a tesztekben, de mi ezt nem csin\u00e1ljuk. Van lehet\u0151s\u00e9g a forr\u00e1sok konfigur\u00e1l\u00e1si szab\u00e1lyainak ellen\u0151rz\u00e9s\u00e9re is a <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/wata727\/tflint\">tflint<\/a><\/noindex>. Azonban a Terraform eset\u00e9ben t\u00fal alapvet\u0151 ellen\u0151rz\u00e9seket k\u00edn\u00e1l, viszont sok ellen\u0151rz\u00e9si forgat\u00f3k\u00f6nyv k\u00e9sz\u00fclt az AWS-hez. Mi az Azure-on vagyunk, \u00edgy ez \u00fajb\u00f3l nem alkalmazhat\u00f3.<\/li>\n<li>Komponens integr\u00e1ci\u00f3s tesztek: ezek att\u00f3l f\u00fcggnek, hogyan kategoriz\u00e1lod \u0151ket \u00e9s hov\u00e1 sorolod. De alapvet\u0151en m\u0171k\u00f6dnek.\n<p>\u00cdgy n\u00e9znek ki az integr\u00e1ci\u00f3s tesztek. <\/p>\n<p><img decoding=\"async\" alt=\"Infrastruktur\u00e1lis k\u00f3d: hogyan lehet megoldani a probl\u00e9m\u00e1kat XP seg\u00edts\u00e9g\u00e9vel\" src=\"\/wp-content\/uploads\/2019\/10\/b4771e9e5d329ffb2ba565ead7fdddfd.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEz egy p\u00e9lda a k\u00e9pek \u00f6sszeszerel\u00e9s\u00e9re a Drone CI-ban. Ahhoz, hogy el\u00e9rj\u00fck \u0151ket, 30 percet kell v\u00e1rni, am\u00edg a Packer k\u00e9p \u00f6ssze\u00e1ll, majd tov\u00e1bbi 15 percet, am\u00edg lefutnak. De ott vannak! <\/p>\n<p><b class=\"spoiler_title\">A k\u00e9pek ellen\u0151rz\u00e9si algoritmus<\/b> <\/p>\n<ol>\n<li>El\u0151sz\u00f6r a Packernek teljesen el kell k\u00e9sz\u00edtenie a k\u00e9pet.<\/li>\n<li>A teszt mellett van egy terrafom helyi \u00e1llapot\u00e1val, amelyet e k\u00e9pet telep\u00edtj\u00fck. <\/li>\n<li>A telep\u00edt\u00e9s sor\u00e1n egy kis modult haszn\u00e1lunk, amely a k\u00f6zelben tal\u00e1lhat\u00f3, hogy k\u00f6nnyebb legyen dolgozni a k\u00e9ppel. <\/li>\n<li>Amikor a VM a k\u00e9pb\u0151l telep\u00edtve van, elkezdhetj\u00fck a vizsg\u00e1latokat. F\u0151k\u00e9nt a g\u00e9pen v\u00e9gezz\u00fck a teszteket. Ellen\u0151rizz\u00fck, hogyan m\u0171k\u00f6dtek a szkriptek a bet\u00f6lt\u00e9skor, \u00e9s hogyan m\u0171k\u00f6dnek a d\u00e9monok. Ehhez ssh vagy winrm seg\u00edts\u00e9g\u00e9vel bel\u00e9p\u00fcnk az \u00e9ppen l\u00e9trehozott g\u00e9pre, \u00e9s ellen\u0151rizz\u00fck a konfigur\u00e1ci\u00f3 \u00e1llapot\u00e1t, illetve hogy a szolg\u00e1ltat\u00e1sok elindultak-e.<\/li>\n<\/ol>\n<p>\n <\/li>\n<li>Hasonl\u00f3 a helyzet az integr\u00e1ci\u00f3s tesztekkel \u00e9s a terrafom modulokkal. \u00cdme egy r\u00f6vid t\u00e1bl\u00e1zat, amely magyar\u00e1zza ezen tesztek saj\u00e1toss\u00e1gait.\n<p><img decoding=\"async\" alt=\"Infrastruktur\u00e1lis k\u00f3d: hogyan lehet megoldani a probl\u00e9m\u00e1kat XP seg\u00edts\u00e9g\u00e9vel\" src=\"\/wp-content\/uploads\/2019\/10\/e2624fb97831701e374a7e8e7fe39a16.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nA visszajelz\u00e9s a pipeline-on k\u00f6r\u00fclbel\u00fcl 40 perc. Minden nagyon lassan t\u00f6rt\u00e9nik. Lehet regresszi\u00f3ra haszn\u00e1lni, de \u00faj fejleszt\u00e9shez teljesen lehetetlen. Ha nagyon-nagyon k\u00e9sz\u00fcl\u00fcnk r\u00e1, el\u0151k\u00e9sz\u00edtj\u00fck a fut\u00e1st, a szkripteket, akkor ak\u00e1r 10 percre is le lehet r\u00f6vid\u00edteni. De ez m\u00e9g mindig nem olyan, mint a Unit-tesztel\u00e9s, ami 5 m\u00e1sodperc alatt fut le 100 p\u00e9ld\u00e1nyban. <\/li>\n<\/ul>\n<p>\nA Unit-tesztel\u00e9s hi\u00e1nya a k\u00e9pek vagy a terrafom modulok \u00f6sszegy\u0171jt\u00e9sekor arra k\u00e9sztet minket, hogy a munk\u00e1t k\u00fcl\u00f6nb\u00f6z\u0151 szolg\u00e1ltat\u00e1sokra b\u00edzzuk, amelyeket egyszer\u0171en megh\u00edvhatunk REST-en kereszt\u00fcl, vagy Python-szkriptekre.<\/p>\n<p>P\u00e9ld\u00e1ul \u00fagy kellett megoldanunk, hogy a virtu\u00e1lis g\u00e9p ind\u00edt\u00e1sakor regisztr\u00e1lja mag\u00e1t a <noindex><a rel=\"nofollow\" href=\"https:\/\/www.scaleft.com\/\">ScaleFT<\/a><\/noindex>, \u00e9s amikor a virtu\u00e1lis g\u00e9p megsemmis\u00fcl, akkor t\u00f6r\u00f6lje mag\u00e1t.<\/p>\n<p>Mivel a ScaleFT szolg\u00e1ltat\u00e1sk\u00e9nt m\u0171k\u00f6dik, k\u00e9nytelenek vagyunk az API-j\u00e1n kereszt\u00fcl dolgozni. Itt \u00edrtak egy burkol\u00f3 r\u00e9teget, amelyet megh\u00edvhatunk, \u00e9s mondhatjuk: \"Menj \u00e9s t\u00f6r\u00f6lj valamit\". Minden sz\u00fcks\u00e9ges be\u00e1ll\u00edt\u00e1st \u00e9s hozz\u00e1f\u00e9r\u00e9st t\u00e1rol. <\/p>\n<p>Erre m\u00e1r tudunk norm\u00e1lis teszteket \u00edrni, mivel ez semmiben sem k\u00fcl\u00f6nb\u00f6zik a megszokott szoftvert\u0151l: egy API-t szimul\u00e1lunk, megh\u00edvod, \u00e9s n\u00e9zz\u00fck, mi t\u00f6rt\u00e9nik. <\/p>\n<p><img decoding=\"async\" alt=\"Infrastruktur\u00e1lis k\u00f3d: hogyan lehet megoldani a probl\u00e9m\u00e1kat XP seg\u00edts\u00e9g\u00e9vel\" src=\"\/wp-content\/uploads\/2019\/10\/dc17aaa64038acb080669d31fe8ecfe0.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<blockquote><p>A tesztek \u00f6sszegz\u00e9se: A Unit-tesztel\u00e9s, amelynek egy perc alatt kellene teljes\u00edtenie, nem ny\u00fajt eredm\u00e9nyt. A piramis magasabb szintjei viszont hat\u00e1st gyakorolnak, de csak r\u00e9szben oldj\u00e1k meg a probl\u00e9m\u00e1kat. <\/p><\/blockquote>\n<h4>P\u00e1ros programoz\u00e1s<\/h4>\n<p>\nA tesztel\u00e9s term\u00e9szetesen j\u00f3 dolog. Sokf\u00e9le tesztet lehet \u00edrni, \u00e9s ezek k\u00fcl\u00f6nb\u00f6z\u0151 szinten fognak m\u0171k\u00f6dni, visszajelz\u00e9st adva nek\u00fcnk. Azonban a rossz unit-tesztek probl\u00e9m\u00e1ja, amelyek a leggyorsabb oper\u00e1ci\u00f3s rendszert eredm\u00e9nyezik, tov\u00e1bbra is fenn\u00e1ll. M\u00e9g mindig v\u00e1gyunk egy gyors oper\u00e1ci\u00f3s rendszerre, amivel k\u00f6nny\u0171 \u00e9s kellemes dolgozni. Nem is besz\u00e9lve a megold\u00e1s min\u0151s\u00e9g\u00e9r\u0151l. Szerencs\u00e9re vannak technik\u00e1k, amelyek lehet\u0151v\u00e9 teszik, hogy m\u00e9g gyorsabb visszajelz\u00e9st kapjunk, mint a modul\u00e1ris tesztek. Ez a p\u00e1ros programoz\u00e1s.<\/p>\n<p>A k\u00f3d \u00edr\u00e1sakor min\u00e9l gyorsabban szeretn\u00e9nk visszajelz\u00e9st kapni annak min\u0151s\u00e9g\u00e9r\u0151l. Igen, mindent meg lehet \u00edrni egy feature \u00e1gban (hogy senkinek se okozzon k\u00e1rt), l\u00e9trehozni egy pull requestet a GitHubon, kijel\u00f6lni valakit, akinek a v\u00e9lem\u00e9nye fontos, \u00e9s v\u00e1rni a v\u00e1laszra. <\/p>\n<p>De v\u00e1rni hossz\u00fa ideig lehet. Az emberek mind elfoglaltak, \u00e9s a v\u00e1lasz, m\u00e9g ha meg is \u00e9rkezik, nem biztos, hogy a legjobb min\u0151s\u00e9g\u0171. Tegy\u00fck fel, hogy a v\u00e1lasz azonnal meg\u00e9rkezett, a v\u00e9lem\u00e9nyez\u0151 azonnal meg\u00e9rtette az elk\u00e9pzel\u00e9st, de a v\u00e1lasz \u00edgy is k\u00e9slekedik, ut\u00f3lag \u00e9rkezik. Pedig kor\u00e1bban szeretn\u00e9nk. A p\u00e1ros programoz\u00e1s \u00e9ppen ez\u00e9rt van \u2013 hogy azonnal, az \u00edr\u00e1s pillanat\u00e1ban kapjunk visszajelz\u00e9st.<\/p>\n<p>Az al\u00e1bbiakban bemutatom a p\u00e1ros programoz\u00e1s st\u00edlusait \u00e9s azok alkalmazhat\u00f3s\u00e1g\u00e1t az IaC ter\u00e9n: <\/p>\n<p><b>1. Klasszikus, tapasztalt + tapasztalt, id\u0151z\u00edtett v\u00e1lt\u00e1s.<\/b> K\u00e9t szerep \u2013 driver \u00e9s navigator. K\u00e9t ember. Egy\u00fctt dolgoznak egy k\u00f3don, \u00e9s el\u0151re meghat\u00e1rozott id\u0151intervallumonk\u00e9nt v\u00e1ltanak szerepet. <\/p>\n<p>Tekints\u00fck \u00e1t a probl\u00e9m\u00e1ink \u00e9s a st\u00edlus \u00f6sszef\u00e9rhet\u0151s\u00e9g\u00e9t: <\/p>\n<ul>\n<li>Probl\u00e9ma: eszk\u00f6z\u00f6k, a k\u00f3d fejleszt\u00e9s\u00e9hez sz\u00fcks\u00e9ges eszk\u00f6z\u00f6k t\u00f6k\u00e9letlens\u00e9ge. <br \/>\nNegat\u00edv hat\u00e1s: hosszabb fejleszt\u00e9si id\u0151, lelassulunk, megzavarodik a munka \u00fcteme\/ritmusa.<br \/>\n Hogyan k\u00fczd\u00fcnk ellene: m\u00e1s eszk\u00f6z\u00f6ket alkalmazunk, k\u00f6z\u00f6s IDE-t, \u00e9s tanuljuk a billenty\u0171parancsokat.<\/li>\n<li> Probl\u00e9ma: lass\u00fa telep\u00edt\u00e9s. <br \/>\nNegat\u00edv hat\u00e1s: megn\u00f6veli az id\u0151t, am\u00edg egy m\u0171k\u00f6d\u0151 k\u00f3d r\u00e9szletet l\u00e9trehozunk. Unatkozunk a v\u00e1rakoz\u00e1s alatt, \u00e9s kez\u00fcnk hajlik arra, hogy valami m\u00e1sba kezdj\u00fcnk, mik\u00f6zben v\u00e1runk. <br \/>\nHogyan k\u00fczd\u00fcnk ellene: m\u00e9g nem gy\u0151zt\u00fck le.<\/li>\n<li> Probl\u00e9ma: a megk\u00f6zel\u00edt\u00e9sek \u00e9s gyakorlatok hi\u00e1nya. <br \/>\nNegat\u00edv hat\u00e1s: nincs tud\u00e1s arr\u00f3l, hogyan kell j\u00f3l, \u00e9s hogyan rosszul csin\u00e1lni. Megn\u00f6veli a visszajelz\u00e9s megszerz\u00e9s\u00e9nek idej\u00e9t. <br \/>\nHogyan k\u00fczd\u00fcnk ellene: a v\u00e9lem\u00e9nyek \u00e9s gyakorlatok k\u00f6lcs\u00f6n\u00f6s cser\u00e9je a p\u00e1ros munk\u00e1ban szinte megoldja a probl\u00e9m\u00e1t.<\/li>\n<\/ul>\n<p>\nA f\u0151 probl\u00e9ma az IaC ezen st\u00edlus\u00e1nak alkalmaz\u00e1s\u00e1ban az egyenl\u0151tlen munkatemp\u00f3ra vezethet\u0151 vissza. A hagyom\u00e1nyos szoftverfejleszt\u00e9s sor\u00e1n a mozg\u00e1s nagyon egyenletes. El tudsz t\u00f6lteni \u00f6t percet \u00e9s \u00edrni egy N-t. T\u00f6ltesz t\u00edz percet \u00e9s \u00edrsz 2N-t, 15 percet \u2013 3N-t. Itt viszont elt\u00f6lthetsz \u00f6t percet \u00e9s \u00edrhatsz egy N-t, majd tov\u00e1bbi 30 percet, \u00e9s \u00edrhatsz egy tizedet az N-b\u0151l. Itt semmit sem tudsz, megakadsz, elakadsz. A rendez\u00e9s id\u0151t vesz ig\u00e9nybe \u00e9s elt\u00e9r\u00edt a t\u00e9nyleges programoz\u00e1st\u00f3l. <\/p>\n<blockquote><p>K\u00f6vetkeztet\u00e9s: tiszta form\u00e1j\u00e1ban nem megfelel\u0151 sz\u00e1munkra.<\/p><\/blockquote>\n<p><b>2. Ping-pong. Ez a megk\u00f6zel\u00edt\u00e9s azt jelenti, hogy az egyik r\u00e9sztvev\u0151 tesztet \u00edr, a m\u00e1sik pedig megval\u00f3s\u00edtja azt.<\/b> Figyelembe v\u00e9ve, hogy a Unit-tesztekkel minden komplik\u00e1lt, \u00e9s hossz\u00fa id\u0151t ig\u00e9nyel egy integr\u00e1lt teszt \u00edr\u00e1sa, a ping-pong egyszer\u0171s\u00e9ge elt\u0171nik. <\/p>\n<p>Elmondhatom, hogy pr\u00f3b\u00e1lkoztunk a tesztforgat\u00f3k\u00f6nyv tervez\u00e9s\u00e9nek \u00e9s a hozz\u00e1 tartoz\u00f3 k\u00f3d megval\u00f3s\u00edt\u00e1s\u00e1nak feladatainak sz\u00e9toszt\u00e1s\u00e1val. Az egyik r\u00e9sztvev\u0151 elk\u00e9pzelte a forgat\u00f3k\u00f6nyvet, ebben a munkar\u00e9szben \u0151 volt a felel\u0151s, az utols\u00f3 sz\u00f3 az \u00f6v\u00e9 volt. A m\u00e1sik a megval\u00f3s\u00edt\u00e1s\u00e9rt volt felel\u0151s. Ez j\u00f3l m\u0171k\u00f6d\u00f6tt. Az ilyen megk\u00f6zel\u00edt\u00e9ssel a forgat\u00f3k\u00f6nyv min\u0151s\u00e9ge javult. <\/p>\n<blockquote><p>K\u00f6vetkeztet\u00e9s: sajnos a munkatemp\u00f3 nem teszi lehet\u0151v\u00e9 a ping-pong alkalmaz\u00e1s\u00e1t, mint a p\u00e1ros programoz\u00e1si gyakorlatot az IaC-ben.<\/p><\/blockquote>\n<p>\n <b>3. Strong Style.<\/b> <noindex><a rel=\"nofollow\" href=\"http:\/\/llewellynfalco.blogspot.com\/2014\/06\/llewellyns-strong-style-pairing.html\">Bonyolult gyakorlat.<\/a><\/noindex>A l\u00e9nyeg, hogy az egyik r\u00e9sztvev\u0151 ir\u00e1ny\u00edt\u00f3 navig\u00e1tork\u00e9nt m\u0171k\u00f6dik, m\u00edg a m\u00e1sik v\u00e9grehajt\u00f3 meghajt\u00f3 szerep\u00e9t t\u00f6lti be. A d\u00f6nt\u00e9sek joga kiz\u00e1r\u00f3lag a navig\u00e1tor\u00e9. A meghajt\u00f3 csak g\u00e9pel \u00e9s szavakkal befoly\u00e1solhatja a folyamatot. A szerepek hossz\u00fa ideig nem v\u00e1ltoznak. <\/p>\n<p>J\u00f3l alkalmas a tanul\u00e1sra, de er\u0151s soft skill-eket ig\u00e9nyel. Itt akadtunk el. A technika nehezen haladt. Ennek nem is az infrastrukt\u00fara volt az oka. <\/p>\n<blockquote><p>K\u00f6vetkeztet\u00e9s: potenci\u00e1lisan alkalmazhat\u00f3, nem hagyjuk abba a pr\u00f3b\u00e1lkoz\u00e1st.<\/p><\/blockquote>\n<p>\n<b>4. Mobbing, swarming \u00e9s minden ismert, de itt nem felsorolt st\u00edlus.<\/b> nem vizsg\u00e1ljuk, mert nem pr\u00f3b\u00e1ltuk ki, \u00e9s nem tudunk err\u0151l besz\u00e9lni a mi munk\u00e1nk kontextus\u00e1ban.<\/p>\n<blockquote><p>\u00c1ltal\u00e1nos eredm\u00e9nyek a p\u00e1ros programoz\u00e1s haszn\u00e1lat\u00e1r\u00f3l:<\/p>\n<ul>\n<li>Egyenl\u0151tlen munkatemp\u00f3t tapasztalunk, ami zavar\u00f3.<\/li>\n<li>A nem el\u00e9g j\u00f3 soft skill-ekbe \u00fctk\u00f6zt\u00fcnk. Az adott ter\u00fclet nem seg\u00edti el\u0151 ezeknek a hi\u00e1nyoss\u00e1goknak a lek\u00fczd\u00e9s\u00e9t.<\/li>\n<li>Hossz\u00fa tesztek, eszk\u00f6zprobl\u00e9m\u00e1k teszik a p\u00e1ros fejleszt\u00e9st neh\u00e9zkess\u00e9.<\/li>\n<\/ul>\n<\/blockquote>\n<p><b>5. Ennek ellen\u00e9re voltak sikereink is. Kital\u00e1ltunk egy saj\u00e1t \"\u00d6sszeolvad\u00e1s \u2013 sz\u00e9tv\u00e1l\u00e1s\" m\u00f3dszert.<\/b> R\u00f6viden bemutatom, hogyan m\u0171k\u00f6dik. <\/p>\n<p>Van n\u00e9h\u00e1ny \u00e1lland\u00f3 partner\u00fcnk n\u00e9h\u00e1ny napra (kevesebb mint egy h\u00e9tre). Egy feladatot k\u00f6z\u00f6sen v\u00e9gz\u00fcnk el. Sz\u00f3val egy ideig egy\u00fctt \u00fclt\u00fcnk: az egyik \u00edr, a m\u00e1sik figyeli, mint egy t\u00e1mogat\u00f3 csapat. Azt\u00e1n elv\u00e1lunk egy id\u0151re, mindenki f\u00fcggetlen dolgokat csin\u00e1l, majd \u00fajra \u00f6ssze\u00fcl\u00fcnk, nagyon gyorsan szinkroniz\u00e1l\u00f3dunk, k\u00f6z\u00f6sen csin\u00e1lunk valamit, \u00e9s ism\u00e9t elv\u00e1lunk. <\/p>\n<h4>Tervez\u00e9s \u00e9s kommunik\u00e1ci\u00f3<\/h4>\n<p>\nAz utols\u00f3 blokk gyakorlatai, amelyek megoldj\u00e1k az oper\u00e1ci\u00f3s rendszerek probl\u00e9m\u00e1it \u2013 a feladatokkal val\u00f3 munka szervez\u00e9se. Ide tartozik a p\u00e1rban v\u00e9gzett munk\u00e1n k\u00edv\u00fcli tapasztalatcsere is. H\u00e1rom gyakorlatot fogunk megvizsg\u00e1lni:<\/p>\n<p><b>1. Feladatok c\u00e9lfa szerint.<\/b> A projekt \u00e1tfog\u00f3 ir\u00e1ny\u00edt\u00e1s\u00e1t egy f\u00e1val szervezt\u00fck, amely v\u00e9gtelen\u00fcl a j\u00f6v\u0151be ny\u00falik. Technikailag az ir\u00e1ny\u00edt\u00e1s Miro-ban t\u00f6rt\u00e9nik. Van egy feladat \u2013 ez egy k\u00f6zbens\u0151 c\u00e9l. Ebb\u0151l kisebb c\u00e9lok, vagy feladatcsopor\u00e1k indulnak. Azokt\u00f3l m\u00e1r maguk a feladatok. Minden feladat ezen a t\u00e1bl\u00e1n j\u00f6n l\u00e9tre \u00e9s van nyilv\u00e1ntartva. <\/p>\n<p><img decoding=\"async\" alt=\"Infrastruktur\u00e1lis k\u00f3d: hogyan lehet megoldani a probl\u00e9m\u00e1kat XP seg\u00edts\u00e9g\u00e9vel\" src=\"\/wp-content\/uploads\/2019\/10\/fe601e959f0055de4f7f4c39ae713c31.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEz a rendszer is visszajelz\u00e9st ad, amely naponta egyszer t\u00f6rt\u00e9nik, amikor a tal\u00e1lkoz\u00f3kon szinkroniz\u00e1l\u00f3dunk. Az, hogy mindenki el\u0151tt van egy k\u00f6z\u00f6s, strukt\u00far\u00e1lt \u00e9s teljesen nyilv\u00e1nos terv, lehet\u0151v\u00e9 teszi, hogy mindenki tiszt\u00e1ban legyen az esem\u00e9nyekkel \u00e9s azzal, mennyit haladtunk el\u0151re. <\/p>\n<p>A feladatok vizu\u00e1lis \u00e1ttekint\u00e9s\u00e9nek el\u0151nyei:<\/p>\n<ul>\n<li>Ok-okozati \u00f6sszef\u00fcgg\u00e9s. Minden feladat valamilyen glob\u00e1lis c\u00e9lhoz vezet. A feladatok kisebb c\u00e9lok szerint csoportosulnak. Az infrastrukt\u00fara ter\u00fclete \u00f6nmag\u00e1ban meglehet\u0151sen technikai. Nem mindig vil\u00e1gos, hogy p\u00e9ld\u00e1ul a migr\u00e1ci\u00f3s k\u00e9zik\u00f6nyv elk\u00e9sz\u00edt\u00e9se, amely egy m\u00e1sik nginx-hez kapcsol\u00f3dik, milyen konkr\u00e9t hat\u00e1ssal van az \u00fczletre. A c\u00e9lk\u00e1rtya mellett azonban ez \u00e9rthet\u0151bb\u00e9 v\u00e1lik.<br \/>\n <img decoding=\"async\" alt=\"Infrastruktur\u00e1lis k\u00f3d: hogyan lehet megoldani a probl\u00e9m\u00e1kat XP seg\u00edts\u00e9g\u00e9vel\" src=\"\/wp-content\/uploads\/2019\/10\/fc4da9d277f7dc186a5710cf2be4419c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n Az ok-okozati \u00f6sszef\u00fcgg\u00e9s \u2013 fontos jellemz\u0151je a feladatoknak. K\u00f6zvetlen\u00fcl v\u00e1laszol arra a k\u00e9rd\u00e9sre: \"J\u00f3t csin\u00e1lok?\" <\/li>\n<li>P\u00e1rhuzamoss\u00e1g. Kilencen vagyunk, \u00e9s fizikailag lehetetlen, hogy egyszerre egy feladatra \u00f6sszpontos\u00edtsunk. Az egy ter\u00fcletr\u0151l sz\u00e1rmaz\u00f3 feladatokb\u00f3l sem mindig elegend\u0151. K\u00e9nyszer\u00fcl\u00fcnk arra, hogy a munk\u00e1t apr\u00f3 munkacsoportok k\u00f6z\u00f6tt p\u00e1rhuzamosan osszuk meg. Ezek a csoportok egy ideig a saj\u00e1t feladatukra f\u00f3kusz\u00e1lnak, \u0151ket er\u0151s\u00edtheti valaki m\u00e1s is. N\u00e9ha a munkacsoportb\u00f3l emberek esnek ki. Valaki szabads\u00e1gra megy, valaki el\u0151ad\u00e1st k\u00e9sz\u00edt a DevOps konferenci\u00e1ra, valaki cikket \u00edr a Habr-ra. Fontos tudni, hogy mely c\u00e9lok \u00e9s feladatok v\u00e9gezhet\u0151k el p\u00e1rhuzamosan. <\/li>\n<\/ul>\n<p>\n<b>2. V\u00e1ltakoz\u00f3 vezet\u0151k a reggeli megbesz\u00e9l\u00e9seken.<\/b> A stand-up-ok sor\u00e1n egy probl\u00e9ma mer\u00fclt fel \u2013 sok feladatot p\u00e1rhuzamosan v\u00e9geznek az emberek. N\u00e9ha a feladatok gyeng\u00e9n kapcsol\u00f3dnak egym\u00e1shoz, \u00e9s nincs tiszt\u00e1ban senki, hogy ki mit csin\u00e1l. Egy csapattag v\u00e9lem\u00e9nye nagyon fontos. Ez egy plusz inform\u00e1ci\u00f3, amely megv\u00e1ltoztathatja a feladat megold\u00e1s\u00e1nak menet\u00e9t. Persze, \u00e1ltal\u00e1ban van valaki, akivel egy\u00fctt vagy, de a konzult\u00e1ci\u00f3 \u00e9s az \u00fatmutat\u00e1s mindig nem \u00e1rt. <\/p>\n<p>A helyzet jav\u00edt\u00e1sa \u00e9rdek\u00e9ben alkalmaztuk a \"Stand-up vezet\u0151 v\u00e1lt\u00e1s\" technik\u00e1t. Most egy meghat\u00e1rozott lista szerint rot\u00e1l\u00f3dnak, \u00e9s ennek megvan a hat\u00e1sa. Amikor el\u00e9rkezik a te id\u0151d, k\u00e9nytelen vagy elm\u00e9lyedni \u00e9s meg\u00e9rteni, mi t\u00f6rt\u00e9nik, hogy j\u00f3l vezesd a scrum megbesz\u00e9l\u00e9st. <\/p>\n<p><img decoding=\"async\" alt=\"Infrastruktur\u00e1lis k\u00f3d: hogyan lehet megoldani a probl\u00e9m\u00e1kat XP seg\u00edts\u00e9g\u00e9vel\" src=\"\/wp-content\/uploads\/2019\/10\/622973a654ecd3e27a7a366596814ffc.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<b>3. Bels\u0151 dem\u00f3.<\/b> A p\u00e1rban programoz\u00e1sb\u00f3l sz\u00e1rmaz\u00f3 seg\u00edts\u00e9g, a feladatok f\u00e1ban val\u00f3 vizualiz\u00e1l\u00e1sa \u00e9s a reggeli scrum megbesz\u00e9l\u00e9sek sor\u00e1n ny\u00fajtott seg\u00edts\u00e9g j\u00f3, de nem t\u00f6k\u00e9letes. P\u00e1rban csak a saj\u00e1t tud\u00e1sodra vagy korl\u00e1tozva. A feladatf\u00e1 seg\u00edt glob\u00e1lisan meg\u00e9rteni, ki mit csin\u00e1l. A vezet\u0151 \u00e9s a koll\u00e9g\u00e1k a reggeli tal\u00e1lkoz\u00f3n nem m\u00e9lyednek el a probl\u00e9m\u00e1idban. M\u00e1r biztosan valamit ki fognak hagyni. <\/p>\n<p>A megold\u00e1s az volt, hogy bemutattuk egym\u00e1snak a k\u00e9sz munk\u00e1kat, majd ezt k\u00f6vet\u0151en megvitattuk azokat. Hetente egyszer \u00f6sszegy\u0171l\u00fcnk egy \u00f3r\u00e1ra, \u00e9s bemutatjuk az utols\u00f3 h\u00e9tben v\u00e9gzett feladatok r\u00e9szleteit. <\/p>\n<p>A bemutat\u00f3 sor\u00e1n fontos, hogy r\u00e9szletezd a feladatot, \u00e9s mindenk\u00e9pp mutasd be annak m\u0171k\u00f6d\u00e9s\u00e9t. <\/p>\n<p><b class=\"spoiler_title\">Az el\u0151ad\u00e1st lehet check-list alapj\u00e1n lebonyol\u00edtani.<\/b>1. Helyezd kontextusba. Honnan sz\u00e1rmazott a feladat, mi\u00e9rt volt erre sz\u00fcks\u00e9g?<\/p>\n<p>2. Hogyan oldott\u00e1k meg a feladatot eddig? P\u00e9ld\u00e1ul sz\u00fcks\u00e9ges volt a t\u00f6meges kattint\u00e1s, vagy egy\u00e1ltal\u00e1n lehetetlen volt valamit megval\u00f3s\u00edtani.<\/p>\n<p>3. Hogyan jav\u00edtjuk ezt. P\u00e9ld\u00e1ul: \"N\u00e9zz\u00e9tek, most van egy kis szkriptnyi, itt a README.\"<\/p>\n<p>4. Mutassa be, hogyan m\u0171k\u00f6dik. Lehet\u0151leg k\u00f6zvetlen\u00fcl v\u00e9gezzen el egy felhaszn\u00e1l\u00f3i forgat\u00f3k\u00f6nyvet. Azt szeretn\u00e9m, hogy X legyen, csin\u00e1lok Y-t, l\u00e1tom Z-t (vagy Y-t). P\u00e9ld\u00e1ul telep\u00edtek NGINX-et, megn\u00e9zem az URL-t, kapok 200 OK-t. Ha az akci\u00f3 hossz\u00fa, k\u00e9sz\u00edtse el\u0151 el\u0151re, hogy k\u00e9s\u0151bb meg tudja mutatni. Lehet\u0151leg egy \u00f3r\u00e1val a bemutat\u00f3 el\u0151tt ne bontsa meg, ha t\u00f6r\u00e9keny.<\/p>\n<p>5. Magyar\u00e1zza el, mennyire sikeresen old\u00f3dott meg a probl\u00e9ma, milyen neh\u00e9zs\u00e9gek maradtak, mi nem k\u00e9sz\u00fclt el, milyen fejleszt\u00e9sek lehets\u00e9gesek a j\u00f6v\u0151ben. P\u00e9ld\u00e1ul jelenleg CLI, k\u00e9s\u0151bb pedig teljes automatiz\u00e1l\u00e1s a CI-n.<\/p>\n<p>Lehet\u0151leg minden el\u0151ad\u00f3nak 5-10 percet kell betartania. Ha az el\u0151ad\u00e1sa eleve fontos, \u00e9s t\u00f6bb id\u0151t vesz ig\u00e9nybe, el\u0151re egyeztesse ezt az sre-takeover csatorn\u00e1ban.<\/p>\n<p>A szem\u00e9lyes r\u00e9sz ut\u00e1n k\u00f6telez\u0151 a diskurzus a sz\u00e1lban. Itt jelenik meg a sz\u00fcks\u00e9ges visszajelz\u00e9s a feladatainkr\u00f3l. <\/p>\n<p><img decoding=\"async\" alt=\"Infrastruktur\u00e1lis k\u00f3d: hogyan lehet megoldani a probl\u00e9m\u00e1kat XP seg\u00edts\u00e9g\u00e9vel\" src=\"\/wp-content\/uploads\/2019\/10\/77da888d24b52c7eea7e65d2400e152c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nA v\u00e9g\u00e9n egy felm\u00e9r\u00e9st v\u00e9geznek a t\u00f6rt\u00e9ntek hasznoss\u00e1g\u00e1nak meg\u00e1llap\u00edt\u00e1s\u00e1ra. Ez visszajelz\u00e9s a bemutat\u00f3 l\u00e9nyeg\u00e9r\u0151l \u00e9s a feladat fontoss\u00e1g\u00e1r\u00f3l.<\/p>\n<p><img decoding=\"async\" alt=\"Infrastruktur\u00e1lis k\u00f3d: hogyan lehet megoldani a probl\u00e9m\u00e1kat XP seg\u00edts\u00e9g\u00e9vel\" src=\"\/wp-content\/uploads\/2019\/10\/7642cd87050171cc4a6bf278329dd283.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>Hossz\u00fa k\u00f6vetkeztet\u00e9sek \u00e9s mi a k\u00f6vetkez\u0151 l\u00e9p\u00e9s<\/h2>\n<p>\n\u00dagy t\u0171nhet, hogy a cikk hangulata n\u00e9mileg pesszimista. Ez nem \u00edgy van. K\u00e9t als\u00f3 szint\u0171 visszajelz\u00e9si forma, n\u00e9v szerint a tesztek \u00e9s a p\u00e1ros programoz\u00e1s m\u0171k\u00f6dik. Nem teljesen olyan, mint a hagyom\u00e1nyos fejleszt\u00e9sben, de van pozit\u00edv hat\u00e1sa. <\/p>\n<p>A tesztek jelenlegi form\u00e1jukban csak r\u00e9szleges k\u00f3dlefedetts\u00e9get adnak. Sok konfigur\u00e1ci\u00f3s funkci\u00f3 tesztel\u00e9s n\u00e9lk\u00fcl marad. Ezek k\u00f6zvetlen hat\u00e1sa a k\u00f3d\u00edr\u00e1sra alacsony. Az integr\u00e1ci\u00f3s tesztek azonban hat\u00e1sosak, \u00e9s \u00e9ppen ezek teszik lehet\u0151v\u00e9 a kock\u00e1zatmentes refaktor\u00e1l\u00e1st. Ez nagy eredm\u00e9ny. Tov\u00e1bb\u00e1 a f\u00f3kusz \u00e1thelyez\u00e9s\u00e9vel a magas szint\u0171 nyelvek (n\u00e1lunk python, go) probl\u00e9m\u00e1ja elm\u00falik. A \u201eragaszt\u00f3\u201d-hoz kev\u00e9s ellen\u0151rz\u00e9s sz\u00fcks\u00e9ges, elegend\u0151 az \u00e1ltal\u00e1nos integr\u00e1ci\u00f3.<\/p>\n<p>A p\u00e1ros munka egyre ink\u00e1bb az adott emberekt\u0151l f\u00fcgg. Van egy feladati t\u00e9nyez\u0151 \u00e9s a soft skills-\u00fcnk. Valakivel nagyon j\u00f3l siker\u00fcl, m\u00e1sokkal kev\u00e9sb\u00e9. Ennek biztosan van haszna. Nyilv\u00e1nval\u00f3, hogy m\u00e9g a p\u00e1ros munka szab\u00e1lyainak el\u00e9gtelen betart\u00e1sa eset\u00e9n is a k\u00f6z\u00f6s feladatv\u00e9gz\u00e9s t\u00e9nye pozit\u00edvan befoly\u00e1solja az eredm\u00e9ny min\u0151s\u00e9g\u00e9t. Szem\u00e9ly szerint nekem p\u00e1rosan sokkal k\u00f6nnyebb \u00e9s kellemesebb dolgozni.<\/p>\n<p>A magasabb szint\u0171 m\u00f3dszerek a rendszer oper\u00e1ci\u00f3inak befoly\u00e1sol\u00e1s\u00e1ra \u2013 a feladatok tervez\u00e9se \u00e9s kezel\u00e9se \u2013 biztosan hat\u00e1sosak: a tud\u00e1s min\u0151s\u00e9gi cser\u00e9je \u00e9s a fejleszt\u00e9s min\u0151s\u00e9g\u00e9nek jav\u00edt\u00e1sa. <\/p>\n<h4>R\u00f6vid, egy soros k\u00f6vetkeztet\u00e9sek <\/h4>\n<p><\/p>\n<ul>\n<li>Az XP gyakorlatok m\u0171k\u00f6dnek IaC-ben, de alacsonyabb hat\u00e9konys\u00e1ggal.<\/li>\n<li>Fokozza azt, ami m\u0171k\u00f6dik.<\/li>\n<li>Tal\u00e1lja ki saj\u00e1t kompenz\u00e1l\u00f3 mechanizmusait \u00e9s gyakorlatait.<\/li>\n<\/ul>\n<p>Forr\u00e1s: <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 5.0.3 - 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.\" \/>\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\/hu\/blog\/administrirovanie\/infrastructure-as-code-kak-poborot-problemy-s-pomoshhyu-xp\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"hu_HU\" \/>\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.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/hu\/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: hogyan k\u00fczdj\u00fcnk meg a probl\u00e9m\u00e1kkal XP seg\u00edts\u00e9g\u00e9vel | ProHoster","description":"Hell\u00f3, Habr! Kor\u00e1bban panaszkodtam az Infrastructure as Code paradigm\u00e1j\u00e1nak \u00e9let\u00e9r\u0151l, \u00e9s semmit nem javasoltam a kialakult helyzet megold\u00e1s\u00e1ra.","canonical_url":"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/infrastructure-as-code-kak-poborot-problemy-s-pomoshhyu-xp","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"hu_HU","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.","og:url":"https:\/\/prohoster.info\/hu\/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","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts\/38747","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/comments?post=38747"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts\/38747\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/media\/29066"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/media?parent=38747"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/categories?post=38747"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/tags?post=38747"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}