{"id":87467,"date":"2020-07-08T13:42:11","date_gmt":"2020-07-08T11:42:11","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/rukovodstvo-dlya-nachinayushhih-sozdaem-devops-pajplajn"},"modified":"2020-07-08T13:42:11","modified_gmt":"2020-07-08T11:42:11","slug":"rukovodstvo-dlya-nachinayushhih-sozdaem-devops-pajplajn","status":"publish","type":"post","link":"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/rukovodstvo-dlya-nachinayushhih-sozdaem-devops-pajplajn","title":{"rendered":"\u00datmutat\u00f3 kezd\u0151knek: DevOps pipeline l\u00e9trehoz\u00e1sa","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><i>Ha \u00faj vagy a DevOps vil\u00e1g\u00e1ban, n\u00e9zd meg ezt az \u00fatmutat\u00f3t az els\u0151 \u00f6t l\u00e9pcs\u0151s folyamatod megs creation\u00e9hez.<\/i><\/p>\n<p><img decoding=\"async\" alt=\"\u00datmutat\u00f3 kezd\u0151knek: DevOps pipeline l\u00e9trehoz\u00e1sa\" src=\"\/wp-content\/uploads\/2020\/07\/605ed7d81323d0b5e094f7f912f8c669.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>A DevOps a szoftverfejleszt\u00e9si folyamatok lass\u00fa, diszpers, vagy nem m\u0171k\u00f6d\u0151 megold\u00e1sainak jav\u00edt\u00e1s\u00e1ra lett szabv\u00e1nyos megold\u00e1s. A probl\u00e9ma az, hogy ha \u00faj vagy a DevOps-ban, \u00e9s nem tudod, honnan kezd, akkor hi\u00e1nyos lehet a meg\u00e9rt\u00e9sed ezekr\u0151l a m\u00f3dszerekr\u0151l. Ebben a cikkben a DevOps-cs\u0151 meghat\u00e1roz\u00e1s\u00e1r\u00f3l lesz sz\u00f3, \u00e9s egy \u00f6t l\u00e9p\u00e9sb\u0151l \u00e1ll\u00f3 \u00fatmutat\u00f3t k\u00edn\u00e1lunk annak l\u00e9trehoz\u00e1s\u00e1hoz. B\u00e1r ez az \u00fatmutat\u00f3 nem kimer\u00edt\u0151, alapot adhat sz\u00e1modra, hogy elindulj az utadon, \u00e9s hogy a j\u00f6v\u0151ben b\u0151v\u00edtsd a tud\u00e1sodat. De kezdj\u00fck a t\u00f6rt\u00e9nettel.<\/p>\n<h3>Az \u00e9n DevOps utam<\/h3>\n<p>\nKor\u00e1bban a Citi Group felh\u0151csapat\u00e1ban dolgoztam, ahol a Citi felh\u0151infrastrukt\u00far\u00e1j\u00e1nak kezel\u00e9s\u00e9re fejlesztett\u00fcnk egy Infrastructure-as-a-Service (IaaS) webalkalmaz\u00e1st, de mindig is \u00e9rdekelt, hogyan lehetne hat\u00e9konyabb\u00e1 tenni a fejleszt\u00e9si folyamatot, \u00e9s pozit\u00edv kultur\u00e1lis v\u00e1ltoz\u00e1sokat hozni a fejleszt\u0151csapatba. A v\u00e1laszt Greg Lavender, a Citi felh\u0151architekt\u00far\u00e1\u00e9rt \u00e9s infrastrukt\u00far\u00e1\u00e9rt felel\u0151s technikai igazgat\u00f3 \u00e1ltal aj\u00e1nlott k\u00f6nyvben tal\u00e1ltam. A k\u00f6nyv c\u00edme \u201ePhoenix Project\u201d (<noindex><a rel=\"nofollow\" href=\"https:\/\/www.amazon.com\/dp\/B078Y98RG8\/\">A F\u0151nix Projekt<\/a><\/noindex>), \u00e9s a DevOps elveit magyar\u00e1zza, mik\u00f6zben reg\u00e9ny form\u00e1j\u00e1ban olvashat\u00f3.<\/p>\n<p>A k\u00f6nyv h\u00e1toldal\u00e1n tal\u00e1lhat\u00f3 t\u00e1bl\u00e1zat megmutatja, hogy k\u00fcl\u00f6nb\u00f6z\u0151 c\u00e9gek milyen gyakran telep\u00edtik rendszereiket a kiad\u00e1si k\u00f6rnyezetbe:<\/p>\n<p>Amazon: napi 23 000<br \/>\nGoogle: napi 5 500<br \/>\nNetflix: napi 500<br \/>\nFacebook: napi egyszer<br \/>\nTwitter: heti 3 alkalommal<br \/>\nTipikus c\u00e9g: 9 havonta egyszer<\/p>\n<p>Hogyan lehets\u00e9ges az Amazon, Google \u00e9s Netflix ilyen gyakoris\u00e1ggal? Az\u00e9rt, mert ezek a c\u00e9gek kital\u00e1lt\u00e1k, hogyan lehet szinte t\u00f6k\u00e9letes DevOps folyamatot l\u00e9trehozni.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nMessze j\u00e1rtunk ett\u0151l, am\u00edg be nem vezett\u00fck a DevOps-ot a Citin\u00e9l. Akkor a csapatomban k\u00fcl\u00f6nb\u00f6z\u0151 k\u00f6rnyezetek voltak, de a fejleszt\u00e9si szerverre val\u00f3 telep\u00edt\u00e9s teljesen k\u00e9zi volt. Minden fejleszt\u0151 csak egy IBM WebSphere Application Server Community Edition alap\u00fa fejleszt\u00e9si szerverhez f\u00e9rhetett hozz\u00e1. A probl\u00e9ma az volt, hogy a szerver minden alkalommal le\u00e1llt, amikor t\u00f6bb felhaszn\u00e1l\u00f3 egyszerre pr\u00f3b\u00e1lt telep\u00edt\u00e9st v\u00e9gezni, \u00edgy a fejleszt\u0151knek \u00e9rtes\u00edteni\u00fck kellett egym\u00e1st a sz\u00e1nd\u00e9kaikr\u00f3l, ami meglehet\u0151sen f\u00e1jdalmas volt. Ezenk\u00edv\u00fcl probl\u00e9m\u00e1k mer\u00fcltek fel az alacsony szint\u0171 k\u00f3dtesztel\u00e9si lefedetts\u00e9ggel, a t\u00falzottan bonyolult k\u00e9zi telep\u00edt\u00e9si folyamatokkal \u00e9s a k\u00f3d telep\u00edt\u00e9s\u00e9nek nyomon k\u00f6vet\u00e9s\u00e9nek hi\u00e1ny\u00e1val, amely egy adott feladathoz vagy felhaszn\u00e1l\u00f3i t\u00f6rt\u00e9nethez kapcsol\u00f3dott.<\/p>\n<p>Meg\u00e9rtettem, hogy tenn\u00fcnk kell valamit, \u00e9s tal\u00e1ltam egy hasonl\u00f3 gondolkod\u00e1s\u00fa koll\u00e9g\u00e1t. Elhat\u00e1roztuk, hogy egy\u00fcttm\u0171k\u00f6d\u00fcnk egy kezdeti DevOps-vezet\u00e9kmenedzsment l\u00e9trehoz\u00e1s\u00e1ban \u2013 \u0151 egy virtu\u00e1lis g\u00e9pet \u00e9s egy Tomcat alkalmaz\u00e1s szervert telep\u00edtett, mik\u00f6zben \u00e9n a Jenkins-en dolgoztam, integr\u00e1ltam az Atlassian Jir\u00e1t \u00e9s a BitBucket-et, \u00e9s a k\u00f3d tesztel\u00e9si lefedetts\u00e9g\u00e9n is dolgoztam. Ez a mell\u00e9kprojekt nagyon sikeres volt: gyakorlatilag teljesen automatiz\u00e1ltuk sok folyamatot, szinte 100%-os m\u0171k\u00f6d\u00e9st \u00e9rt\u00fcnk el a fejleszt\u00e9si szerver\u00fcnk\u00f6n, biztos\u00edtottuk a nyomon k\u00f6vet\u00e9st, jav\u00edtottuk a k\u00f3d tesztel\u00e9si lefedetts\u00e9g\u00e9t, \u00e9s lehet\u0151s\u00e9get adtunk arra, hogy a Git \u00e1gazatokat \u00f6sszekapcsoljuk a Jir\u00e1ban l\u00e9v\u0151 feladatokkal vagy a telep\u00edt\u00e9sekkel. A legt\u00f6bb eszk\u00f6z, amit a DevOps vezet\u00e9kmenedzsment\u00fcnk fel\u00e9p\u00edt\u00e9s\u00e9hez haszn\u00e1ltunk, ny\u00edlt forr\u00e1sk\u00f3d\u00fa volt.<\/p>\n<p>Most m\u00e1r \u00e9rtem, mennyire egyszer\u0171 volt a DevOps vezet\u00e9kmenedzsment\u00fcnk: nem haszn\u00e1ltunk olyan kiterjeszt\u00e9seket, mint a Jenkins f\u00e1jlok vagy az Ansible. Azonban ez az egyszer\u0171 vezet\u00e9kmenedzsment j\u00f3l m\u0171k\u00f6d\u00f6tt, val\u00f3sz\u00edn\u0171leg a Pareto-elvnek k\u00f6sz\u00f6nhet\u0151en (m\u00e1s n\u00e9ven 80\/20 szab\u00e1ly).<\/p>\n<h3>R\u00f6vid bevezet\u00e9s a DevOps-ba \u00e9s a CI\/CD vezet\u00e9kmenedzsmentbe<\/h3>\n<p>\nHa megk\u00e9rdezel n\u00e9h\u00e1ny embert: \"Mi az a DevOps?\", val\u00f3sz\u00edn\u0171leg t\u00f6bb k\u00fcl\u00f6nb\u00f6z\u0151 v\u00e1laszt kapsz. A DevOps, ak\u00e1rcsak az Agile, az\u00e9rt fejl\u0151d\u00f6tt, hogy sok k\u00fcl\u00f6nb\u00f6z\u0151 tudom\u00e1ny\u00e1gat mag\u00e1ba foglaljon, de a legt\u00f6bb ember egyet\u00e9rt abban, hogy a DevOps egy szoftverfejleszt\u00e9si gyakorlat vagy szoftverfejleszt\u00e9si \u00e9letciklus (SDLC), amelynek k\u00f6z\u00e9ppontj\u00e1ban a kult\u00fara megv\u00e1ltoztat\u00e1sa \u00e1ll, ahol a fejleszt\u0151k \u00e9s nem-fejleszt\u0151k l\u00e9teznek egy k\u00f6rnyezetben, amelyben:<\/p>\n<p>Azok a m\u0171veletek automatiz\u00e1lva vannak, amelyeket kor\u00e1bban k\u00e9zzel v\u00e9geztek; <br \/>\nMindenki azt csin\u00e1lja, amit a legjobban tud;<br \/>\nN\u00f6vekszik a telep\u00edt\u00e9sek sz\u00e1ma egy meghat\u00e1rozott id\u0151intervallumban; N\u00f6vekszik a kapacit\u00e1s; <br \/>\nN\u00f6vekszik a fejleszt\u00e9s rugalmass\u00e1ga.<\/p>\n<p>B\u00e1r a megfelel\u0151 szoftvereszk\u00f6z\u00f6k megl\u00e9te nem az egyetlen dolog, amire sz\u00fcks\u00e9g van egy DevOps k\u00f6rnyezet l\u00e9trehoz\u00e1s\u00e1hoz, n\u00e9h\u00e1ny eszk\u00f6z elengedhetetlen. A kulcseszk\u00f6z a folyamatos integr\u00e1ci\u00f3 \u00e9s folyamatos telep\u00edt\u00e9s (CI\/CD). Ezt a folyamatot k\u00fcl\u00f6nb\u00f6z\u0151 szakaszok jellemzik (p\u00e9ld\u00e1ul DEV, INT, TST, QA, UAT, STG, PROD), sok m\u0171velet automatiz\u00e1lt, \u00e9s a fejleszt\u0151k magas min\u0151s\u00e9g\u0171 k\u00f3dokat \u00edrhatnak, el\u00e9rhetik a rugalmass\u00e1got a fejleszt\u00e9sben \u00e9s a magas telep\u00edt\u00e9si gyakoris\u00e1got.<\/p>\n<p>Ebben a cikkben egy \u00f6tl\u00e9pcs\u0151s megk\u00f6zel\u00edt\u00e9st \u00edrok le a DevOps cs\u0151vezet\u00e9k l\u00e9trehoz\u00e1s\u00e1ra, amely hasonl\u00f3 a k\u00f6vetkez\u0151 diagramon \u00e1br\u00e1zolthoz, ny\u00edlt forr\u00e1sk\u00f3d\u00fa eszk\u00f6z\u00f6k haszn\u00e1lat\u00e1val.<\/p>\n<h3>1. l\u00e9p\u00e9s: CI\/CD m\u00f3dszerek<\/h3>\n<p>\nAz els\u0151, amire sz\u00fcks\u00e9ged van, egy CI\/CD eszk\u00f6z. A Jenkins, egy ny\u00edlt forr\u00e1sk\u00f3d\u00fa eszk\u00f6z, amely Java alap\u00fa \u00e9s MIT licenc alatt terjesztett, az a szersz\u00e1m, amely n\u00e9pszer\u0171v\u00e9 tette a DevOps ir\u00e1nyzatot, \u00e9s de facto standard lett.<\/p>\n<p>De mi is az a Jenkins? Gondolj r\u00e1 \u00fagy, mint egy var\u00e1zslatos univerz\u00e1lis t\u00e1vir\u00e1ny\u00edt\u00f3ra, amely k\u00e9pes kommunik\u00e1lni k\u00fcl\u00f6nb\u00f6z\u0151 szolg\u00e1ltat\u00e1sokkal \u00e9s eszk\u00f6z\u00f6kkel, valamint szervezni azokat. Maga a CI\/CD eszk\u00f6z, mint a Jenkins, haszontalan, de egyre er\u0151sebb\u00e9 v\u00e1lik, ahogy csatlakozik a k\u00fcl\u00f6nb\u00f6z\u0151 eszk\u00f6z\u00f6kh\u00f6z \u00e9s szolg\u00e1ltat\u00e1sokhoz.<\/p>\n<p>A Jenkins csak egy a sok ny\u00edlt forr\u00e1sk\u00f3d\u00fa eszk\u00f6z k\u00f6z\u00fcl a CI\/CD-hez, amelyet a DevOps cs\u0151vezet\u00e9k fel\u00e9p\u00edt\u00e9s\u00e9hez haszn\u00e1lhatsz.<\/p>\n<p>Jenkins: Creative Commons \u00e9s MIT<br \/>\nTravis CI: MIT<br \/>\nCruiseControl: BSD<br \/>\nBuildbot: GPL<br \/>\nApache Gump: Apache 2.0<br \/>\nCabie: GNU<\/p>\n<p>\u00cdgy n\u00e9znek ki a DevOps folyamatok a CI\/CD eszk\u00f6zzel:<\/p>\n<p><img decoding=\"async\" alt=\"\u00datmutat\u00f3 kezd\u0151knek: DevOps pipeline l\u00e9trehoz\u00e1sa\" src=\"\/wp-content\/uploads\/2020\/07\/e937f3da170b24c53cb5d67a67a365bb.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Van egy CI\/CD eszk\u00f6ze, ami a localhostj\u00e1n fut, de jelenleg nem sok mindent tud tenni. L\u00e9pj\u00fcnk a DevOps vil\u00e1g\u00e1ba k\u00f6vetkez\u0151 l\u00e9p\u00e9sre.<\/p>\n<h3>2. l\u00e9p\u00e9s: Forr\u00e1sk\u00f3d-kezel\u00e9s<\/h3>\n<p>\nA legjobb (\u00e9s val\u00f3sz\u00edn\u0171leg legegyszer\u0171bb) m\u00f3dja annak, hogy ellen\u0151rizze, hogy a CI\/CD eszk\u00f6ze var\u00e1zslatos dolgokat tud csin\u00e1lni \u2013 integr\u00e1lni egy forr\u00e1sk\u00f3d-kezel\u0151 eszk\u00f6zzel (SCM). Mi\u00e9rt van sz\u00fcks\u00e9ge forr\u00e1sk\u00f3d-kezel\u00e9sre? Tegy\u00fck fel, hogy alkalmaz\u00e1st fejleszt. Minden alkalommal, amikor egy alkalmaz\u00e1st k\u00e9sz\u00edt, k\u00f3dol. Nem sz\u00e1m\u00edt, hogy Java-t, Python-t, C++-t, Go-t, Ruby-t, JavaScript-et vagy valamelyik trilli\u00f3 programoz\u00e1si nyelvet haszn\u00e1l-e. Az \u00d6n \u00e1ltal \u00edrt k\u00f3d forr\u00e1sk\u00f3dnak nevezik. kezdetben, k\u00fcl\u00f6n\u00f6sen ha egyed\u00fcl dolgozik, val\u00f3sz\u00edn\u0171leg mindent elhelyezhet egy helyi k\u00f6nyvt\u00e1rban. De amikor a projekt nagyobb\u00e1 v\u00e1lik \u00e9s m\u00e1sokat h\u00edv meg egy\u00fcttm\u0171k\u00f6dni, sz\u00fcks\u00e9ge van egy m\u00f3dra, hogy megsz\u00fcntesse a konfliktusokat a m\u00f3dos\u00edt\u00e1sok hat\u00e9kony megoszt\u00e1sa sor\u00e1n. Sz\u00fcks\u00e9ge van egy m\u00f3dra az el\u0151z\u0151 verzi\u00f3k vissza\u00e1ll\u00edt\u00e1s\u00e1ra is, mert a biztons\u00e1gi ment\u00e9sek k\u00e9sz\u00edt\u00e9se \u00e9s m\u00e1sol\u00e1s\/beilleszt\u00e9s m\u00e1r elavult. \u00d6nnek (\u00e9s a csapat tagjainak) valami jobb kell.<\/p>\n<p>Itt v\u00e1lik szinte sz\u00fcks\u00e9gess\u00e9 a forr\u00e1sk\u00f3d-kezel\u0151 eszk\u00f6z. Ez az eszk\u00f6z a k\u00f3dj\u00e1t t\u00e1rolja t\u00e1rol\u00f3kban, nyomon k\u00f6veti a verzi\u00f3kat \u00e9s koordin\u00e1lja a projekt r\u00e9sztvev\u0151inek munk\u00e1j\u00e1t.<\/p>\n<p>B\u00e1r sok forr\u00e1sk\u00f3d-kezel\u0151 eszk\u00f6z l\u00e9tezik, a Git a szabv\u00e1ny, \u00e9s ez igaz. Hat\u00e1rozottan javaslom a Git haszn\u00e1lat\u00e1t, hab\u00e1r ha \u00fagy tetszik, l\u00e9teznek m\u00e1s ny\u00edlt forr\u00e1sk\u00f3d\u00fa opci\u00f3k is.<\/p>\n<p>Git: GPLv2 \u00e9s LGPL v2.1<br \/>\nSubversion: Apache 2.0<br \/>\nConcurrent Versions System (CVS): GNU<br \/>\nVesta: LGPL<br \/>\nMercurial: GNU GPL v2+<\/p>\n<p>\u00cdgy n\u00e9z ki a DevOps pipeline a forr\u00e1sk\u00f3d-kezel\u0151 eszk\u00f6z hozz\u00e1ad\u00e1s\u00e1val.<\/p>\n<p><img decoding=\"async\" alt=\"\u00datmutat\u00f3 kezd\u0151knek: DevOps pipeline l\u00e9trehoz\u00e1sa\" src=\"\/wp-content\/uploads\/2020\/07\/47793d73d3b496aa38e027ff116f729d.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>A CI\/CD eszk\u00f6z automatiz\u00e1lhatja a forr\u00e1sk\u00f3d ellen\u0151rz\u00e9s\u00e9nek, helyrehoz\u00e1s\u00e1nak \u00e9s a csapattagok k\u00f6z\u00f6tti egy\u00fcttm\u0171k\u00f6d\u00e9s enyh\u00edt\u00e9si folyamatait. Ez nem rossz? De hogyan alak\u00edthatjuk \u00e1t ezt m\u0171k\u00f6d\u0151 alkalmaz\u00e1ss\u00e1, amelyet milli\u00e1rdok haszn\u00e1lhatnak \u00e9s \u00e9rt\u00e9kelhetnek?<\/p>\n<h3>3. l\u00e9p\u00e9s: Automatikus \u00f6sszes\u00edt\u0151 eszk\u00f6z l\u00e9trehoz\u00e1sa<\/h3>\n<p>\nKiv\u00e1l\u00f3! Ellen\u0151rizheti a k\u00f3dot, \u00e9s m\u00f3dos\u00edt\u00e1sokat v\u00e9gezhet a forr\u00e1sk\u00f3d-ellen\u0151rz\u0151 rendszerben, valamint megh\u00edvhatja bar\u00e1tait, hogy k\u00f6z\u00f6sen dolgozzanak a fejleszt\u00e9sen. De m\u00e9g nem hozott l\u00e9tre alkalmaz\u00e1st. Ahhoz, hogy webalkalmaz\u00e1s\u00e1t k\u00e9sz\u00edtsen, azt le kell ford\u00edtani \u00e9s egy telep\u00edthet\u0151 csomagform\u00e1tumba kell csomagolni vagy futtathat\u00f3 f\u00e1jlk\u00e9nt kell ind\u00edtani. (K\u00e9rj\u00fck, vegye figyelembe, hogy az olyan \u00e9rtelmezett programoz\u00e1si nyelvek, mint p\u00e9ld\u00e1ul a JavaScript vagy a PHP, nem ig\u00e9nyelnek ford\u00edt\u00e1st).<\/p>\n<p>Haszn\u00e1lja az automatikus build eszk\u00f6zk\u00e9szletet. F\u00fcggetlen\u00fcl att\u00f3l, hogy melyik build automatiz\u00e1l\u00f3 eszk\u00f6zt v\u00e1lasztja, mindegyik ugyanazt a c\u00e9lt szolg\u00e1lja: a forr\u00e1sk\u00f3dot egy k\u00edv\u00e1nt form\u00e1tumba \u00f6ssze\u00e1ll\u00edtani, \u00e9s automatiz\u00e1lni a tiszt\u00edt\u00e1si, ford\u00edt\u00e1si, tesztel\u00e9si \u00e9s telep\u00edt\u00e9si feladatokat egy adott k\u00f6rnyezetben. A build eszk\u00f6z\u00f6k a programoz\u00e1si nyelv\u00e9t\u0151l f\u00fcgg\u0151en elt\u00e9r\u0151ek, de itt van n\u00e9h\u00e1ny \u00e1ltal\u00e1nos, ny\u00edlt forr\u00e1sk\u00f3d\u00fa lehet\u0151s\u00e9g.<\/p>\n<p>N\u00e9v<br \/>\nLicenc<br \/>\nProgramoz\u00e1si nyelv<\/p>\n<p>Maven<br \/>\nApache 2.0<br \/>\n Java<\/p>\n<p>Ant<br \/>\nApache 2.0<br \/>\nJava<\/p>\n<p>Gradle<br \/>\nApache 2.0<br \/>\nJava<\/p>\n<p>Bazel<br \/>\nApache 2.0<br \/>\nJava<\/p>\n<p>Make<br \/>\nGNU<br \/>\nN\/A<\/p>\n<p>Grunt<br \/>\nMIT<br \/>\nJavaScript<\/p>\n<p>Gulp<br \/>\nMIT<br \/>\nJavaScript<\/p>\n<p>Buildr<br \/>\nApache<br \/>\nRuby<\/p>\n<p>Rake<br \/>\nMIT<br \/>\nRuby<\/p>\n<p>A-A-P<br \/>\nGNU<br \/>\nPython<\/p>\n<p>SCons<br \/>\nMIT<br \/>\nPython<\/p>\n<p>BitBake<br \/>\nGPLv2<br \/>\nPython<\/p>\n<p>Cake<br \/>\nMIT<br \/>\nC#<\/p>\n<p>ASDF<br \/>\nExpat (MIT)<br \/>\nLISP<\/p>\n<p>Cabal<br \/>\nBSD<br \/>\nHaskell<\/p>\n<p>Szuper! A build automatiz\u00e1l\u00f3 eszk\u00f6z konfigur\u00e1ci\u00f3s f\u00e1jljait elhelyezheti a forr\u00e1sk\u00f3d-kezel\u0151 rendszerben, \u00e9s lehet\u0151v\u00e9 teheti, hogy a CI\/CD eszk\u00f6ze mindent \u00f6ssze\u00e1ll\u00edtson.<\/p>\n<p><img decoding=\"async\" alt=\"\u00datmutat\u00f3 kezd\u0151knek: DevOps pipeline l\u00e9trehoz\u00e1sa\" src=\"\/wp-content\/uploads\/2020\/07\/573d613914d278e738a0fc7f05644b62.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Minden rendben van, ugye? De hol telep\u00edtse az alkalmaz\u00e1s\u00e1t?<\/p>\n<h3>4. l\u00e9p\u00e9s: Webalkalmaz\u00e1s szerver<\/h3>\n<p>\nJelenleg van egy csomagolt f\u00e1jlja, amely lehet v\u00e9grehajthat\u00f3 vagy telep\u00edthet\u0151. Ahhoz, hogy b\u00e1rmilyen alkalmaz\u00e1s val\u00f3ban hasznos legyen, szolg\u00e1ltat\u00e1st vagy fel\u00fcletet kell ny\u00fajtania, de sz\u00fcks\u00e9ge van egy kont\u00e9nerre, ahol az alkalmaz\u00e1sa elhelyezhet\u0151.<\/p>\n<p>A webalkalmaz\u00e1s szerver \u00e9ppen egy ilyen kont\u00e9ner. A szerver biztos\u00edtja a k\u00f6rnyezetet, amelyben a telep\u00edthet\u0151 csomag logik\u00e1ja meghat\u00e1rozhat\u00f3. Ezen k\u00edv\u00fcl a szerver fel\u00fcletet biztos\u00edt, \u00e9s webszolg\u00e1ltat\u00e1sokat k\u00edn\u00e1l, megnyitva a socket-eket a k\u00fclvil\u00e1g sz\u00e1m\u00e1ra. Sz\u00fcks\u00e9ge van HTTP szerverre, valamint valamif\u00e9le k\u00f6rnyezetre (p\u00e9ld\u00e1ul virtu\u00e1lis g\u00e9pre) annak telep\u00edt\u00e9s\u00e9hez. De egyel\u0151re tegy\u00fck fel, hogy err\u0151l majd k\u00e9s\u0151bb hallani fog (b\u00e1r az al\u00e1bbiakban besz\u00e9lek a kont\u00e9nerekr\u0151l).<\/p>\n<p>Sz\u00e1mos ny\u00edlt forr\u00e1sk\u00f3d\u00fa webalkalmaz\u00e1s szerver l\u00e9tezik.<\/p>\n<p>N\u00e9v<br \/>\nLicenc<br \/>\nProgramoz\u00e1si nyelv<\/p>\n<p>Tomcat<br \/>\nApache 2.0<br \/>\nJava<\/p>\n<p>Jetty<br \/>\nApache 2.0<br \/>\nJava<\/p>\n<p>WildFly<br \/>\nGNU Lesser Public<br \/>\nJava<\/p>\n<p>GlassFish<br \/>\nCDDL &amp; GNU Less Public<br \/>\nJava<\/p>\n<p>Django<br \/>\n3-Clause BSD<br \/>\nPython<\/p>\n<p>Tornado<br \/>\nApache 2.0<br \/>\nPython<\/p>\n<p>Gunicorn<br \/>\nMIT<br \/>\nPython<\/p>\n<p>Python<br \/>\nMIT<br \/>\nPython<\/p>\n<p>Rails<br \/>\nMIT<br \/>\nRuby<\/p>\n<p>Node.js<br \/>\nMIT<br \/>\nJavascript<\/p>\n<p>A DevOps pipeline-od majdnem k\u00e9szen \u00e1ll a haszn\u00e1latra. J\u00f3 munka!<\/p>\n<p><img decoding=\"async\" alt=\"\u00datmutat\u00f3 kezd\u0151knek: DevOps pipeline l\u00e9trehoz\u00e1sa\" src=\"\/wp-content\/uploads\/2020\/07\/9c314e8a42f154ded3b16ec7bdf01f99.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>B\u00e1r meg\u00e1llhatunk itt \u00e9s foglalkozhatunk az integr\u00e1ci\u00f3val \u00f6n\u00e1ll\u00f3an, a k\u00f3d min\u0151s\u00e9ge fontos szempont az alkalmaz\u00e1sfejleszt\u0151k sz\u00e1m\u00e1ra, amit figyelembe kell venni.<\/p>\n<h3>5. l\u00e9p\u00e9s: A k\u00f3d tesztel\u00e9s\u00e9nek lefedetts\u00e9ge<\/h3>\n<p>\nA tesztek v\u00e9grehajt\u00e1sa \u00f6n\u00e1ll\u00f3 k\u00f6telezetts\u00e9g is lehet, de a fejleszt\u0151knek m\u00e1r korai szakaszban fel kell fedezni\u00fck a hib\u00e1kat az alkalmaz\u00e1sban, \u00e9s jav\u00edtaniuk kell a k\u00f3d min\u0151s\u00e9g\u00e9t annak \u00e9rdek\u00e9ben, hogy a v\u00e9gfelhaszn\u00e1l\u00f3k el\u00e9gedettek legyenek. Szerencs\u00e9re rengeteg ny\u00edlt forr\u00e1sk\u00f3d\u00fa eszk\u00f6z l\u00e9tezik a k\u00f3d tesztel\u00e9s\u00e9re \u00e9s a min\u0151s\u00e9g jav\u00edt\u00e1s\u00e1nak javaslatainak kidolgoz\u00e1s\u00e1ra. M\u00e9g jobb, hogy a legt\u00f6bb CI\/CD eszk\u00f6z csatlakozhat ezekhez az eszk\u00f6z\u00f6kh\u00f6z \u00e9s automatiz\u00e1lhatja a folyamatot.<\/p>\n<p>A k\u00f3d tesztel\u00e9se k\u00e9t r\u00e9szre oszthat\u00f3: a tesztkeretrendszerek seg\u00edtenek a tesztek \u00edr\u00e1s\u00e1ban \u00e9s futtat\u00e1s\u00e1ban, m\u00edg a javaslatt\u00e9teli eszk\u00f6z\u00f6k seg\u00edtenek a k\u00f3d min\u0151s\u00e9g\u00e9nek jav\u00edt\u00e1s\u00e1ban.<\/p>\n<p><b>K\u00f3d tesztel\u0151 rendszerek<\/b><\/p>\n<p>N\u00e9v<br \/>\nLicenc<br \/>\nProgramoz\u00e1si nyelv<\/p>\n<p>JUnit<br \/>\nEclipse Public License<br \/>\nJava<\/p>\n<p>EasyMock<br \/>\nApache<br \/>\nJava<\/p>\n<p>Mockito<br \/>\nMIT<br \/>\nJava<\/p>\n<p>PowerMock<br \/>\nApache 2.0<br \/>\nJava<\/p>\n<p>Pytest<br \/>\n MIT<br \/>\nPython<\/p>\n<p>Hypothesis<br \/>\nMozilla<br \/>\nPython<\/p>\n<p>Tox<br \/>\nMIT<br \/>\nPython<\/p>\n<p><b>K\u00f3djav\u00edt\u00f3 aj\u00e1nl\u00f3 rendszerek<\/b><\/p>\n<p>N\u00e9v<br \/>\nLicenc<br \/>\nProgramoz\u00e1si nyelv<\/p>\n<p>Cobertura<br \/>\nGNU<br \/>\nJava<\/p>\n<p>CodeCover<br \/>\nEclipse Public (EPL)<br \/>\nJava<\/p>\n<p>Coverage.py<br \/>\n Apache 2.0<br \/>\nPython<\/p>\n<p>Emma<br \/>\nCommon Public License<br \/>\nJava<\/p>\n<p>JaCoCo<br \/>\n Eclipse Public License<br \/>\nJava<\/p>\n<p>Hypothesis<br \/>\n Mozilla<br \/>\nPython<\/p>\n<p>Tox<br \/>\nMIT<br \/>\nPython<\/p>\n<p>Jasmine<br \/>\nMIT<br \/>\nJavaScript<\/p>\n<p>Karma<br \/>\nMIT<br \/>\nJavaScript<\/p>\n<p>Mocha<br \/>\n MIT<br \/>\nJavaScript<\/p>\n<p>Jest<br \/>\nMIT<br \/>\nJavaScript<\/p>\n<p>Felh\u00edvjuk a figyelmet arra, hogy a fent eml\u00edtett eszk\u00f6z\u00f6k \u00e9s keretrendszerek t\u00f6bbs\u00e9ge Java, Python \u00e9s JavaScript nyelvekre \u00edr\u00f3dott, mivel a C++ \u00e9s C# saj\u00e1tos programoz\u00e1si nyelvek (b\u00e1r a GCC ny\u00edlt forr\u00e1sk\u00f3d\u00fa).<\/p>\n<p>Most, hogy megval\u00f3s\u00edtotta a k\u00f3d lefedetts\u00e9gvisszanyer\u0151 eszk\u00f6z\u00f6ket, a DevOps cs\u0151vezet\u00e9ke \u00fagy kell kin\u00e9zzen, mint az \u00fatmutat\u00f3 elej\u00e9n bemutatott diagram.<\/p>\n<h3>Tov\u00e1bbi l\u00e9p\u00e9sek<\/h3>\n<p>\n<b>Kont\u00e9nerek<\/b><\/p>\n<p>Ahogy m\u00e1r eml\u00edtettem, a szerver\u00e9t virtu\u00e1lis g\u00e9pen vagy szerveren helyezheti el, de a kont\u00e9nerek n\u00e9pszer\u0171 megold\u00e1snak sz\u00e1m\u00edtanak.<\/p>\n<p>Mi az a kont\u00e9ner? A r\u00f6vid magyar\u00e1zat az, hogy a virtu\u00e1lis g\u00e9pnek hatalmas oper\u00e1ci\u00f3s rendszermem\u00f3ri\u00e1ra van sz\u00fcks\u00e9ge, amely meghaladja az alkalmaz\u00e1s m\u00e9ret\u00e9t, m\u00edg a kont\u00e9nernek csak n\u00e9h\u00e1ny k\u00f6nyvt\u00e1rra \u00e9s konfigur\u00e1ci\u00f3ra van sz\u00fcks\u00e9ge az alkalmaz\u00e1s futtat\u00e1s\u00e1hoz. Nyilv\u00e1nval\u00f3, hogy a virtu\u00e1lis g\u00e9pnek m\u00e9g mindig vannak fontos alkalmaz\u00e1si ter\u00fcletei, de a kont\u00e9ner egy k\u00f6nny\u0171 megold\u00e1s az alkalmaz\u00e1s, k\u00f6zt\u00fck az alkalmaz\u00e1sszerverek hosztol\u00e1s\u00e1ra.<\/p>\n<p>B\u00e1r l\u00e9teznek m\u00e1s kont\u00e9nermegold\u00e1sok is, a legn\u00e9pszer\u0171bbek a Docker \u00e9s a Kubernetes.<\/p>\n<p>Docker: Apache 2.0<br \/>\nKubernetes: Apache 2.0<\/p>\n<p><b>K\u00f6ztes automatiz\u00e1l\u00e1si eszk\u00f6z\u00f6k<\/b><\/p>\n<p>A DevOps-pipe-line-\u00fcnk els\u0151sorban az alkalmaz\u00e1sok k\u00f6z\u00f6s fejleszt\u00e9s\u00e9re \u00e9s telep\u00edt\u00e9s\u00e9re \u00f6sszpontos\u00edt, de sz\u00e1mos m\u00e1s dolog is elv\u00e9gezhet\u0151 DevOps-eszk\u00f6z\u00f6kkel. Az egyik ilyen a Cloud Infrastructure as Code (IaC) eszk\u00f6z\u00f6k, amelyeket k\u00f6ztes automatiz\u00e1l\u00e1si eszk\u00f6z\u00f6kk\u00e9nt is ismernek. Ezek az eszk\u00f6z\u00f6k seg\u00edtenek az k\u00f6ztes szoftverek telep\u00edt\u00e9s\u00e9nek, kezel\u00e9s\u00e9nek \u00e9s egy\u00e9b feladatok automatiz\u00e1l\u00e1s\u00e1ban. P\u00e9ld\u00e1ul, egy automatiz\u00e1l\u00f3 eszk\u00f6z k\u00e9pes lehet alkalmaz\u00e1sokat, mint webalkalmaz\u00e1s szerver, adatb\u00e1zis \u00e9s megfigyel\u0151 eszk\u00f6z megfelel\u0151 konfigur\u00e1ci\u00f3val kinyerni \u00e9s az alkalmaz\u00e1s szerverre telep\u00edteni.<\/p>\n<p>\u00cdme n\u00e9h\u00e1ny ny\u00edlt forr\u00e1sk\u00f3d\u00fa k\u00f6ztes automatiz\u00e1l\u00e1si eszk\u00f6z:<\/p>\n<p>Ansible: GNU Publikus<br \/>\nSaltStack: Apache 2.0<br \/>\nChef: Apache 2.0<br \/>\nPuppet: Apache vagy GPL<\/p>\n<p><img decoding=\"async\" alt=\"\u00datmutat\u00f3 kezd\u0151knek: DevOps pipeline l\u00e9trehoz\u00e1sa\" src=\"\/wp-content\/uploads\/2020\/07\/148ef7317ca5780b412241ddaec9dc76.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Tudjon meg t\u00f6bbet arr\u00f3l, hogyan szerezheti meg a keresett szakm\u00e1t a null\u00e1r\u00f3l, vagy fejlesztheti tud\u00e1s\u00e1t \u00e9s fizet\u00e9s\u00e9t a SkillFactory fizet\u0151s online kurzusain:<\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/skillfactory.ru\/devops?utm_source=infopartners&amp;utm_medium=habr&amp;utm_campaign=DEVOPS&amp;utm_term=regular&amp;utm_content=07072002\">DevOps kurzus<\/a><\/noindex> (12 h\u00f3nap)<\/li>\n<\/ul>\n<p><\/p>\n<p>                        <b class=\"spoiler_title\">tov\u00e1bbi tanfolyamok<\/b><\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/skillfactory.ru\/ml-programma-machine-learning-online?utm_source=infopartners&amp;utm_medium=habr&amp;utm_campaign=ML&amp;utm_term=regular&amp;utm_content=07072002\">G\u00e9pitanul\u00e1si tanfolyam<\/a><\/noindex> (12 h\u00e9t)<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/skillfactory.ru\/data-scientist?utm_source=infopartners&amp;utm_medium=habr&amp;utm_campaign=DST&amp;utm_term=regular&amp;utm_content=07072002\">Adattudom\u00e1ny szakma tanul\u00e1sa kezd\u0151t\u0151l<\/a><\/noindex> (12 h\u00f3nap)<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/skillfactory.ru\/analytics?utm_source=infopartners&amp;utm_medium=habr&amp;utm_campaign=SDA&amp;utm_term=regular&amp;utm_content=07072002\">Elemz\u0151 szakma b\u00e1rmilyen kezd\u0151szintr\u0151l<\/a><\/noindex> (9 h\u00f3nap)<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/skillfactory.ru\/python-for-web-developers?utm_source=infopartners&amp;utm_medium=habr&amp;utm_campaign=PWS&amp;utm_term=regular&amp;utm_content=07072002\">Python tanfolyam webfejleszt\u00e9shez<\/a><\/noindex> (9 h\u00f3nap)<\/li>\n<\/ul>\n<p><\/p>\n<h3>Hasznos<\/h3>\n<p><\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/skillfactory\/blog\/503196\/\">450 ingyenes tanfolyam a Ivy League-t\u0151l<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/skillfactory\/blog\/508450\/\">Adatok tudom\u00e1nya trendjei 2020<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/skillfactory\/blog\/508556\/\">Az adatok tudom\u00e1nya meghalt. \u00c9ljen az \u00fczleti tudom\u00e1ny!<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/skillfactory\/blog\/506790\/\">Adatok tudom\u00e1nya szteroidokon: Ismerked\u00e9s a D\u00f6nt\u00e9shozatali Intelligenci\u00e1val<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/skillfactory\/blog\/503504\/\">A legsikeresebb \u00e9s legbotr\u00e1nyosabb adat tudom\u00e1nyi projekt: Cambridge Analytica<\/a><\/noindex><\/li>\n<\/ul>\n<p>Forr\u00e1s: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/skillfactory\/blog\/509964\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0415\u0441\u043b\u0438 \u0432\u044b \u043d\u043e\u0432\u0438\u0447\u043e\u043a \u0432 DevOps, \u0432\u0437\u0433\u043b\u044f\u043d\u0438\u0442\u0435 \u043d\u0430 \u044d\u0442\u0443 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e \u043f\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044e \u0432\u0430\u0448\u0435\u0433\u043e \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430 \u0438\u0437 \u043f\u044f\u0442\u0438 \u044d\u0442\u0430\u043f\u043e\u0432. DevOps \u0441\u0442\u0430\u043b \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u043c \u0440\u0435\u0448\u0435\u043d\u0438\u0435\u043c \u0434\u043b\u044f \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u044b\u0445, \u0440\u0430\u0437\u043e\u0431\u0449\u0435\u043d\u043d\u044b\u0445 \u0438\u043b\u0438 \u043d\u0435\u0440\u0430\u0431\u043e\u0442\u043e\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u044b\u0445 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0433\u043e \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044f. \u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0432 \u0442\u043e\u043c \u0447\u0442\u043e, \u0435\u0441\u043b\u0438 \u0432\u044b \u043d\u043e\u0432\u0438\u0447\u043e\u043a \u0432 DevOps \u0438 \u043d\u0435 \u0437\u043d\u0430\u0435\u0442\u0435, \u0441 \u0447\u0435\u0433\u043e \u043d\u0430\u0447\u0430\u0442\u044c, \u0442\u043e \u0432\u0430\u043c \u043c\u043e\u0436\u0435\u0442 \u043d\u0435 \u0445\u0432\u0430\u0442\u0430\u0442\u044c \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f \u044d\u0442\u0438\u0445 \u043c\u0435\u0442\u043e\u0434\u043e\u0432. \u0412 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":87468,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-87467","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=\"\u0415\u0441\u043b\u0438 \u0432\u044b \u043d\u043e\u0432\u0438\u0447\u043e\u043a \u0432 DevOps, \u0432\u0437\u0433\u043b\u044f\u043d\u0438\u0442\u0435 \u043d\u0430 \u044d\u0442\u0443 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e \u043f\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044e \u0432\u0430\u0448\u0435\u0433\u043e \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430 \u0438\u0437 \u043f\u044f\u0442\u0438 \u044d\u0442\u0430\u043f\u043e\u0432.\" \/>\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\/rukovodstvo-dlya-nachinayushhih-sozdaem-devops-pajplajn\" \/>\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\udd47\u0420\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e \u0434\u043b\u044f \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0438\u0445: \u0441\u043e\u0437\u0434\u0430\u0435\u043c DevOps-\u043f\u0430\u0439\u043f\u043b\u0430\u0439\u043d | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0415\u0441\u043b\u0438 \u0432\u044b \u043d\u043e\u0432\u0438\u0447\u043e\u043a \u0432 DevOps, \u0432\u0437\u0433\u043b\u044f\u043d\u0438\u0442\u0435 \u043d\u0430 \u044d\u0442\u0443 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e \u043f\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044e \u0432\u0430\u0448\u0435\u0433\u043e \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430 \u0438\u0437 \u043f\u044f\u0442\u0438 \u044d\u0442\u0430\u043f\u043e\u0432.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/rukovodstvo-dlya-nachinayushhih-sozdaem-devops-pajplajn\" \/>\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=\"2020-07-08T11:42:11+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-07-08T11:42:11+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\udd47Kezd\u0151k \u00fatmutat\u00f3ja: DevOps-pipeline k\u00e9sz\u00edt\u00e9se | ProHoster","description":"Ha \u00faj vagy a DevOps vil\u00e1g\u00e1ban, n\u00e9zd meg ezt az \u00fatmutat\u00f3t az els\u0151 \u00f6t l\u00e9pcs\u0151s folyamatod megs creation\u00e9hez.","canonical_url":"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/rukovodstvo-dlya-nachinayushhih-sozdaem-devops-pajplajn","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\udd47\u0420\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e \u0434\u043b\u044f \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0438\u0445: \u0441\u043e\u0437\u0434\u0430\u0435\u043c DevOps-\u043f\u0430\u0439\u043f\u043b\u0430\u0439\u043d | ProHoster","og:description":"\u0415\u0441\u043b\u0438 \u0432\u044b \u043d\u043e\u0432\u0438\u0447\u043e\u043a \u0432 DevOps, \u0432\u0437\u0433\u043b\u044f\u043d\u0438\u0442\u0435 \u043d\u0430 \u044d\u0442\u0443 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e \u043f\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044e \u0432\u0430\u0448\u0435\u0433\u043e \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430 \u0438\u0437 \u043f\u044f\u0442\u0438 \u044d\u0442\u0430\u043f\u043e\u0432.","og:url":"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/rukovodstvo-dlya-nachinayushhih-sozdaem-devops-pajplajn","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":"2020-07-08T11:42:11+00:00","article:modified_time":"2020-07-08T11:42:11+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"87467","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":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 13:50:31","updated":"2022-09-29 03:37:01","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\/87467","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=87467"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts\/87467\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/media\/87468"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/media?parent=87467"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/categories?post=87467"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/tags?post=87467"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}