{"id":77783,"date":"2020-04-14T01:42:28","date_gmt":"2020-04-13T23:42:28","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/metodika-razvyortyvaniya-proektov-primenyaemaya-v-slack"},"modified":"2020-04-14T01:42:28","modified_gmt":"2020-04-13T23:42:28","slug":"metodika-razvyortyvaniya-proektov-primenyaemaya-v-slack","status":"publish","type":"post","link":"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/metodika-razvyortyvaniya-proektov-primenyaemaya-v-slack","title":{"rendered":"A projektek telep\u00edt\u00e9si m\u00f3dszertana, amelyet a Slack alkalmaz","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>A projekt \u00faj verzi\u00f3j\u00e1nak \u00e9les\u00edt\u00e9se alaposan figyelembe kell venni a telep\u00edt\u00e9s sebess\u00e9ge \u00e9s a megold\u00e1s megb\u00edzhat\u00f3s\u00e1ga k\u00f6z\u00f6tti egyens\u00falyt. A Slack v\u00e1llalatn\u00e1l \u00e9rt\u00e9kelik a gyors iter\u00e1ci\u00f3kat, a r\u00f6vid visszajelz\u00e9si ciklusokat, \u00e9s a felhaszn\u00e1l\u00f3i megkeres\u00e9sekre val\u00f3 gyors reag\u00e1l\u00e1st. Tov\u00e1bb\u00e1, a v\u00e1llalatn\u00e1l t\u00f6bb sz\u00e1z programoz\u00f3 dolgozik, akik a lehet\u0151 legnagyobb termel\u00e9kenys\u00e9gre t\u00f6rekednek.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/ruvds\/blog\/496838\/\"><img decoding=\"async\" alt=\"A projektek telep\u00edt\u00e9si m\u00f3dszertana, amelyet a Slack alkalmaz\" src=\"\/wp-content\/uploads\/2020\/04\/a3d3cec330e9b9bd402035c22bda48ff.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>A cikk szerz\u0151i, akinek a ford\u00edt\u00e1s\u00e1t ma publik\u00e1ljuk, azt mondj\u00e1k, hogy egy olyan c\u00e9gnek, amely ilyen \u00e9rt\u00e9kek k\u00f6vet\u00e9s\u00e9re t\u00f6rekszik, \u00e9s k\u00f6zben n\u00f6vekszik, folyamatosan fejlesztenie kell a projekttelep\u00edt\u00e9si rendszer\u00e9t. A v\u00e1llalatnak energi\u00e1t kell fektetnie a munka folyamatok \u00e1tl\u00e1that\u00f3s\u00e1g\u00e1ba \u00e9s megb\u00edzhat\u00f3s\u00e1g\u00e1ba, az\u00e9rt, hogy ezek a folyamatok megfeleljenek a projekt m\u00e9ret\u00e9nek. Itt a Slack v\u00e1llalatban kialakult munka folyamatokr\u00f3l \u00e9s a n\u00e9h\u00e1ny d\u00f6nt\u00e9sr\u0151l lesz sz\u00f3, amelyek elvezett\u00e9k a c\u00e9get a ma l\u00e9tez\u0151 projekttelep\u00edt\u00e9si rendszer haszn\u00e1lat\u00e1hoz.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Hogyan m\u0171k\u00f6dnek ma a projekttelep\u00edt\u00e9si folyamatok<\/h2>\n<p>\nMinden PR (pull request) a Slackben k\u00f6telez\u0151en \u00e1t kell esnie k\u00f3dellen\u0151rz\u00e9sen, \u00e9s sikeresen teljes\u00edtenie kell az \u00f6sszes tesztet. Csak miut\u00e1n ezek a felt\u00e9telek teljes\u00fcltek, a programoz\u00f3 egyes\u00edtheti a k\u00f3dj\u00e1t a projekt master \u00e1gaival. Az ilyen k\u00f3d telep\u00edt\u00e9se azonban csak az \u00e9szak-amerikai munkaid\u0151 alatt t\u00f6rt\u00e9nik. Ennek eredm\u00e9nyek\u00e9ppen, mivel munkat\u00e1rsaink a munkahely\u00fck\u00f6n tart\u00f3zkodnak, teljesen felk\u00e9sz\u00fcltek vagyunk b\u00e1rmilyen v\u00e1ratlan probl\u00e9ma megold\u00e1s\u00e1ra.<\/p>\n<p>Naponta k\u00f6r\u00fclbel\u00fcl 12 tervezett telep\u00edt\u00e9st v\u00e9gz\u00fcnk. Minden telep\u00edt\u00e9s sor\u00e1n a telep\u00edt\u00e9si felel\u0151ss\u00e9ggel megb\u00edzott programoz\u00f3 felel\u0151s az \u00faj build \u00e9les\u00edt\u00e9s\u00e9\u00e9rt. Ez egy t\u00f6bb l\u00e9pcs\u0151s folyamat, amely biztos\u00edtja a build z\u00f6kken\u0151mentes \u00fczembe helyez\u00e9s\u00e9t. E megk\u00f6zel\u00edt\u00e9s r\u00e9v\u00e9n k\u00e9pesek vagyunk \u00e9szlelni a hib\u00e1kat, miel\u0151tt azok minden felhaszn\u00e1l\u00f3nkat \u00e9rinten\u00e9k. Ha t\u00fal sok hiba halmoz\u00f3dik fel \u2014 a build vissza\u00e1ll\u00edthat\u00f3. Ha pedig egy k\u00fcl\u00f6n probl\u00e9ma mer\u00fcl fel a kiad\u00e1s ut\u00e1n, azt k\u00f6nnyen lehet jav\u00edtani.<\/p>\n<p><img decoding=\"async\" alt=\"A projektek telep\u00edt\u00e9si m\u00f3dszertana, amelyet a Slack alkalmaz\" src=\"\/wp-content\/uploads\/2020\/04\/e05d8ecf210832734a7bb691621a1f96.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>A Checkpoint rendszer interf\u00e9sze, amelyet a Slack haszn\u00e1l a projektek telep\u00edt\u00e9s\u00e9re<\/i><\/p>\n<p>Az \u00faj verzi\u00f3 telep\u00edt\u00e9si folyamata a termel\u00e9si k\u00f6rnyezetben n\u00e9gy l\u00e9p\u00e9sb\u0151l \u00e1ll.<\/p>\n<h3>\u258d1. A kiad\u00e1si \u00e1g l\u00e9trehoz\u00e1sa<\/h3>\n<p>\nMinden verzi\u00f3 egy \u00faj kiad\u00e1si \u00e1ggal kezd\u0151dik, a Git-t\u00f6rt\u00e9net\u00fcnk egy adott pontj\u00e1n. Ez lehet\u0151v\u00e9 teszi, hogy c\u00edmk\u00e9ket rendelj\u00fcnk a kiad\u00e1shoz, \u00e9s biztos\u00edt helyet a hiba gyorsjav\u00edt\u00e1saira, amelyeket a kiad\u00e1s el\u0151k\u00e9sz\u00edt\u00e9se sor\u00e1n tal\u00e1lnak a termel\u00e9si k\u00f6rnyezetre.<\/p>\n<h3>\u258d2. Telep\u00edt\u00e9s az \u00e1tmeneti k\u00f6rnyezetbe<\/h3>\n<p>\nA k\u00f6vetkez\u0151 l\u00e9p\u00e9s az \u00e9p\u00edtm\u00e9ny telep\u00edt\u00e9se az \u00e1tmeneti (staging) szerverekre \u00e9s az automatikus teszt futtat\u00e1sa a projekt \u00e1ltal\u00e1nos m\u0171k\u00f6d\u00e9s\u00e9nek ellen\u0151rz\u00e9s\u00e9re (smoke teszt). Az \u00e1tmeneti k\u00f6rnyezet a termel\u00e9si k\u00f6rnyezet, amelybe nem \u00e9rkezik k\u00fcls\u0151 forgalom. Ebben a k\u00f6rnyezetben tov\u00e1bbi manu\u00e1lis tesztel\u00e9seket v\u00e9gz\u00fcnk. Ez tov\u00e1bbi bizalmat ad nek\u00fcnk abban, hogy a m\u00f3dos\u00edtott projekt helyesen m\u0171k\u00f6dik. Az automatikus tesztekkel nem elegend\u0151 biztos\u00edtani az ehhez sz\u00fcks\u00e9ges bizalmat.<\/p>\n<h3>\u258d3. Telep\u00edt\u00e9s a dogfood- \u00e9s canary-k\u00f6rnyezetekbe<\/h3>\n<p>\nA termel\u00e9sben a telep\u00edt\u00e9s a dogfood-k\u00f6rnyezettel kezd\u0151dik, amely egy olyan hoszth\u00e1l\u00f3zatot k\u00e9pvisel, amely a bels\u0151 Slack munkahelyeket szolg\u00e1lja ki. Mivel nagyon akt\u00edv Slack-felhaszn\u00e1l\u00f3k vagyunk, ez a megk\u00f6zel\u00edt\u00e9s seg\u00edtett sz\u00e1mos hib\u00e1t korai f\u00e1zisokban \u00e9szlelni. Miut\u00e1n megbizonyosodtunk arr\u00f3l, hogy a rendszer alapvet\u0151 funkci\u00f3i nem s\u00e9r\u00fcltek, a kiad\u00e1si \u00e9p\u00edtm\u00e9nyt a canary-k\u00f6rnyezetbe telep\u00edtj\u00fck. Ez olyan rendszereket reprezent\u00e1l, amelyek a termel\u00e9si forgalom k\u00f6r\u00fclbel\u00fcl 2%-\u00e1t kapj\u00e1k.<\/p>\n<h3>\u258d4. Fokozatos bevezet\u00e9s a termel\u00e9sbe<\/h3>\n<p>\nHa az \u00faj verzi\u00f3 monitoringje stabil, \u00e9s a canary-k\u00f6rnyezetbe t\u00f6rt\u00e9n\u0151 telep\u00edt\u00e9st k\u00f6vet\u0151en nem kaptunk panaszokat, folytatjuk a termel\u00e9si szerverek fokozatos \u00e1t\u00e1ll\u00edt\u00e1s\u00e1t az \u00faj verzi\u00f3ra. A telep\u00edt\u00e9si folyamat l\u00e9p\u00e9sr\u0151l l\u00e9p\u00e9sre halad: 10%, 25%, 50%, 75% \u00e9s 100%. Ennek k\u00f6sz\u00f6nhet\u0151en lassan \u00e1tadhatjuk a termel\u00e9si forgalmat az \u00faj rendszerv\u00e1ltozatnak. \u00cdgy id\u0151t nyer\u00fcnk arra, hogy megvizsg\u00e1ljuk a helyzetet, ha b\u00e1rmilyen anom\u00e1li\u00e1t \u00e9szlel\u00fcnk.<\/p>\n<h3>\u258dMi a teend\u0151, ha a telep\u00edt\u00e9s sor\u00e1n valami nem m\u0171k\u00f6dik megfelel\u0151en?<\/h3>\n<p>\nA k\u00f3d m\u00f3dos\u00edt\u00e1sa mindig kock\u00e1zatot jelent. De ezen a t\u00e9ren j\u00f3l k\u00e9pzett \"kihelyez\u00e9si vezet\u0151ink\" seg\u00edtenek, akik ir\u00e1ny\u00edtj\u00e1k az \u00faj verzi\u00f3 bevezet\u00e9s\u00e9nek folyamat\u00e1t, figyelik a monitoroz\u00e1si mutat\u00f3kat \u00e9s koordin\u00e1lj\u00e1k a k\u00f3dot kiad\u00f3 programoz\u00f3k munk\u00e1j\u00e1t.<\/p>\n<p>Ha valami val\u00f3ban rosszul s\u00fcl el, igyeksz\u00fcnk min\u00e9l hamarabb \u00e9szlelni a probl\u00e9m\u00e1t. Megvizsg\u00e1ljuk a probl\u00e9m\u00e1t, megtal\u00e1ljuk a PR-t, amely hib\u00e1kat okoz, visszag\u00f6rgetj\u00fck, alaposan elemezz\u00fck, majd \u00faj buildet k\u00e9sz\u00edt\u00fcnk. Igaz, n\u00e9ha a probl\u00e9ma \u00e9szrev\u00e9tlen marad a projekt \u00e9les\u00edt\u00e9s\u00e9ig. Ilyen helyzetben a legfontosabb, hogy helyre\u00e1ll\u00edtsuk a szolg\u00e1ltat\u00e1s m\u0171k\u00f6d\u00e9s\u00e9t. Ez\u00e9rt a probl\u00e9ma vizsg\u00e1lata el\u0151tt azonnal visszag\u00f6rgetj\u00fck az el\u0151z\u0151 m\u0171k\u00f6d\u0151 buildre.<\/p>\n<h2>A kihelyez\u00e9si rendszer \u00e9p\u00edt\u0151elemei<\/h2>\n<p>\nN\u00e9zz\u00fck meg azokat a technol\u00f3gi\u00e1kat, amelyek a projektjeink kihelyez\u00e9si rendszer\u00e9t alkotj\u00e1k.<\/p>\n<h3>\u258dGyors kihelyez\u00e9sek<\/h3>\n<p>\nA fent le\u00edrt munkafolyamat visszatekintve egy\u00e9rtelm\u0171nek t\u0171nhet. De a kihelyez\u00e9si rendszer\u00fcnk nem j\u00f6tt l\u00e9tre azonnal.<\/p>\n<p>Amikor a c\u00e9g jelent\u0151sen kisebb volt, az eg\u00e9sz alkalmaz\u00e1sunk m\u0171k\u00f6dhetett 10 Amazon EC2 p\u00e9ld\u00e1nyon. A projekt kihelyez\u00e9se ilyen k\u00f6r\u00fclm\u00e9nyek k\u00f6z\u00f6tt az \u00f6sszes szerver gyors szinkroniz\u00e1l\u00e1s\u00e1nak \u00e9rdek\u00e9ben az rsync alkalmaz\u00e1s\u00e1t jelentette. R\u00e9gen csak egy l\u00e9p\u00e9s v\u00e1lasztotta el az \u00faj k\u00f3dot az \u00e9les \u00e1tt\u00f3l, ami a k\u00f6ztes k\u00f6rnyezetet jelentette. A build-eket ebben a k\u00f6rnyezetben k\u00e9sz\u00edtett\u00e9k \u00e9s tesztelt\u00e9k, majd azonnal \u00e9lesbe ker\u00fcltek. Egy ilyen rendszerben nagyon egyszer\u0171 volt kiismerni mag\u00e1t, b\u00e1rmely programoz\u00f3 b\u00e1rmikor ki tudta helyezni az \u00e1ltala \u00edrt k\u00f3dot.<\/p>\n<p>De ahogy n\u0151tt az \u00fcgyfeleink sz\u00e1ma, \u00fagy n\u0151tt a projekthez sz\u00fcks\u00e9ges infrastrukt\u00fara m\u00e9rete is. Hamarosan, figyelembe v\u00e9ve a rendszer folyamatos n\u00f6veked\u00e9s\u00e9t, a kihelyez\u00e9si modell\u00fcnk, amely az \u00faj k\u00f3d szerverekre juttat\u00e1s\u00e1n alapult, m\u00e1r nem tudta ell\u00e1tni a feladat\u00e1t. K\u00fcl\u00f6n\u00f6sen, hogy minden \u00faj szerver hozz\u00e1ad\u00e1sa megn\u00f6velte a kihelyez\u00e9shez sz\u00fcks\u00e9ges id\u0151t. M\u00e9g a p\u00e1rhuzamos rsync alkalmaz\u00e1son alapul\u00f3 strat\u00e9gi\u00e1k is korl\u00e1tokkal rendelkeznek.<\/p>\n<p>V\u00e9g\u00fcl megoldottuk ezt a probl\u00e9m\u00e1t, \u00e1t\u00e1llva egy teljesen p\u00e1rhuzamos telep\u00edt\u00e9si rendszerre, amely m\u00e1sk\u00e9pp m\u0171k\u00f6dik, mint a r\u00e9gi. Nevezetesen, most nem k\u00fcldt\u00fcnk k\u00f3dot a szerverekre szinkroniz\u00e1l\u00f3 szkripttel. Most minden szerver \u00f6n\u00e1ll\u00f3an t\u00f6lt\u00f6tte le az \u00faj verzi\u00f3t, \u00e9rtes\u00fclve arr\u00f3l, hogy ezt meg kell tennie, a Consul kulcs megv\u00e1ltoz\u00e1s\u00e1nak figyel\u00e9s\u00e9vel. A szerverek p\u00e1rhuzamosan t\u00f6lt\u00f6tt\u00e9k le a k\u00f3dot. Ez lehet\u0151v\u00e9 tette sz\u00e1munkra, hogy fenntartsuk a magas telep\u00edt\u00e9si sebess\u00e9get a rendszer folyamatos n\u00f6veked\u00e9se mellett.<\/p>\n<p><img decoding=\"async\" alt=\"A projektek telep\u00edt\u00e9si m\u00f3dszertana, amelyet a Slack alkalmaz\" src=\"\/wp-content\/uploads\/2020\/04\/baf52b60024eb9881e8a31fbf0da08bd.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>1. A produkci\u00f3s szerverek figyelik a Consul kulcsot. 2. A kulcs megv\u00e1ltozik, ami jelzi a szervereknek, hogy el kell kezdeni\u00fck az \u00faj k\u00f3d let\u00f6lt\u00e9s\u00e9t. 3. A szerverek alkalmaz\u00e1sk\u00f3dot tartalmaz\u00f3 tarball f\u00e1jlokat t\u00f6ltenek le.<\/i><\/p>\n<h3>\u258dAtomikus telep\u00edt\u00e9sek<\/h3>\n<p>\nEgy m\u00e1sik megold\u00e1s, amely seg\u00edtett eljutnunk a t\u00f6bb szint\u0171 telep\u00edt\u00e9si rendszerhez, az atomikus telep\u00edt\u00e9s volt.<\/p>\n<p>Az atomikus telep\u00edt\u00e9sek haszn\u00e1lata el\u0151tt minden telep\u00edt\u00e9s jelent\u0151s sz\u00e1m\u00fa hiba\u00fczenetet okozhatott. A probl\u00e9ma az volt, hogy az \u00faj f\u00e1jlok m\u00e1sol\u00e1sa a produkci\u00f3s szerverekre nem volt atomikus. Ez r\u00f6vid id\u0151szakot eredm\u00e9nyezett, amikor a k\u00f3d, amely \u00faj funkci\u00f3kat h\u00edvott meg, el\u00e9rhet\u0151v\u00e9 v\u00e1lt, miel\u0151tt ezek a funkci\u00f3k t\u00e9nylegesen el\u00e9rhet\u0151k lettek volna. Amikor ezt a k\u00f3dot h\u00edvt\u00e1k meg, bels\u0151 hib\u00e1k t\u00e9rtek vissza. Ez megnyilv\u00e1nult a sikertelen API k\u00e9r\u00e9sekben \u00e9s a \"t\u00f6r\u00f6tt\" weboldalakban.<\/p>\n<p>A k\u00e9rd\u00e9ssel foglalkoz\u00f3 csapat megoldotta ezt a probl\u00e9m\u00e1t a \"forr\u00f3\" (hot) \u00e9s a \"hideg\" (cold) k\u00f6nyvt\u00e1rak bevezet\u00e9s\u00e9vel. A \"forr\u00f3\" k\u00f6nyvt\u00e1rban l\u00e9v\u0151 k\u00f3d felel\u0151s a produkci\u00f3s forgalom kezel\u00e9s\u00e9\u00e9rt. A \"hideg\" k\u00f6nyvt\u00e1rakban pedig a k\u00f3d a rendszer m\u0171k\u00f6d\u00e9se k\u00f6zben csak el\u0151k\u00e9sz\u00edt\u00e9s alatt \u00e1ll. A telep\u00edt\u00e9s sor\u00e1n az \u00faj k\u00f3dot a m\u00e9g nem haszn\u00e1lt \"hideg\" k\u00f6nyvt\u00e1rba m\u00e1solj\u00e1k. Ezut\u00e1n, amikor a szerveren nincsenek akt\u00edv folyamatok, azonnali k\u00f6nyvt\u00e1rv\u00e1lt\u00e1s t\u00f6rt\u00e9nik.<\/p>\n<p><img decoding=\"async\" alt=\"A projektek telep\u00edt\u00e9si m\u00f3dszertana, amelyet a Slack alkalmaz\" src=\"\/wp-content\/uploads\/2020\/04\/05ab374f047e53e408f3e75ad3a73d68.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>1. Az alkalmaz\u00e1sk\u00f3d kib\u0151v\u00edt\u00e9se a \"hideg\" k\u00f6nyvt\u00e1rba. 2. A rendszer \u00e1tkapcsol\u00e1sa a \"hideg\" k\u00f6nyvt\u00e1rra, amely \"forr\u00f3v\u00e1\" v\u00e1lik (atomikus m\u0171velet).<\/i><\/p>\n<h2>\u00d6sszegz\u00e9s: a hangs\u00faly \u00e1thelyez\u00e9se a megb\u00edzhat\u00f3s\u00e1gra.<\/h2>\n<p>\n2018-ban a projekt olyan m\u00e9reteket \u00f6lt\u00f6tt, hogy a nagyon gyors telep\u00edt\u00e9s kezdett \u00e1rtani a term\u00e9k stabilit\u00e1s\u00e1nak. Volt egy el\u00e9g fejlett telep\u00edt\u00e9si rendszer\u00fcnk, amire sok energi\u00e1t \u00e9s id\u0151t ford\u00edtottunk. Csak \u00e1t kellett alak\u00edtanunk \u00e9s t\u00f6k\u00e9letes\u00edten\u00fcnk a telep\u00edt\u00e9s szervez\u00e9s\u00e9nek folyamatait. Ekkor\u00e1ra m\u00e1r egy el\u00e9g nagy c\u00e9gg\u00e9 n\u0151tt\u00fcnk, amelynek fejleszt\u00e9seit vil\u00e1gszerte haszn\u00e1lt\u00e1k a folyamatos kommunik\u00e1ci\u00f3 biztos\u00edt\u00e1s\u00e1ra \u00e9s fontos feladatok megold\u00e1s\u00e1ra. Ez\u00e9rt a figyelm\u00fcnk k\u00f6z\u00e9ppontj\u00e1ban a megb\u00edzhat\u00f3s\u00e1g \u00e1llt.<\/p>\n<p>A Slack \u00faj kiad\u00e1sainak telep\u00edt\u00e9si folyamat\u00e1t biztons\u00e1gosabb\u00e1 kellett tenn\u00fcnk. Ez a sz\u00fcks\u00e9glet vezetett benn\u00fcnket a telep\u00edt\u00e9si rendszer\u00fcnk t\u00f6k\u00e9letes\u00edt\u00e9s\u00e9hez. Val\u00f3j\u00e1ban m\u00e1r kor\u00e1bban is t\u00e1rgyaltuk ezt a tov\u00e1bbfejlesztett rendszert. A rendszer m\u00e9ly\u00e9n tov\u00e1bbra is alkalmazzuk a gyors \u00e9s atomikus telep\u00edt\u00e9si technol\u00f3gi\u00e1kat. Megv\u00e1ltozott a telep\u00edt\u00e9s m\u00f3dja. Az \u00faj rendszer\u00fcnk arra k\u00e9sz\u00fclt, hogy fokozatosan hajtsa v\u00e9gre az \u00faj k\u00f3d telep\u00edt\u00e9s\u00e9t k\u00fcl\u00f6nb\u00f6z\u0151 szinteken \u00e9s k\u00fcl\u00f6nb\u00f6z\u0151 k\u00f6rnyezetekben. Most m\u00e1r kifinomultabb seg\u00e9deszk\u00f6z\u00f6ket \u00e9s monitoroz\u00f3 eszk\u00f6z\u00f6ket haszn\u00e1lunk, mint valaha. Ez lehet\u0151v\u00e9 teszi sz\u00e1munkra, hogy \u00e9szlelj\u00fck \u00e9s kijav\u00edtsuk a hib\u00e1kat j\u00f3val azel\u0151tt, hogy azok eljuthatn\u00e1nak a v\u00e9gfelhaszn\u00e1l\u00f3hoz.<\/p>\n<p>De nem \u00e1llunk meg itt. Folyamatosan fejlesztj\u00fck ezt a rendszert, alkalmazva korszer\u0171bb seg\u00e9deszk\u00f6z\u00f6ket \u00e9s automatiz\u00e1l\u00e1si megold\u00e1sokat.<\/p>\n<p><b>Haszn\u00e1lj\u00e1tok a CI\/CD technol\u00f3gi\u00e1kat a projektjeitekben?<\/b> Hogyan zajlik az \u00faj projektek kiad\u00e1s\u00e1nak telep\u00edt\u00e9si folyamata ott, ahol dolgozik?<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/ruvds.com\/ru-rub\/#order\"><img decoding=\"async\" alt=\"A projektek telep\u00edt\u00e9si m\u00f3dszertana, amelyet a Slack alkalmaz\" src=\"\/wp-content\/uploads\/2020\/04\/1aeb4af5770ce139b651be62e955f130.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><br \/>\n<br \/>Forr\u00e1s: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/ruvds\/blog\/496838\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412\u044b\u0432\u043e\u0434 \u043d\u043e\u0432\u043e\u0433\u043e \u0440\u0435\u043b\u0438\u0437\u0430 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0432 \u043f\u0440\u043e\u0434\u0430\u043a\u0448\u043d \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0442\u0449\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u043e\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u044f \u0431\u0430\u043b\u0430\u043d\u0441\u0430 \u043c\u0435\u0436\u0434\u0443 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c\u044e \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u0438 \u043d\u0430\u0434\u0451\u0436\u043d\u043e\u0441\u0442\u044c\u044e \u0440\u0435\u0448\u0435\u043d\u0438\u044f. \u0412 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Slack \u0446\u0435\u043d\u044f\u0442 \u0431\u044b\u0441\u0442\u0440\u044b\u0435 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438, \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0435 \u0446\u0438\u043a\u043b\u044b \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0439 \u0441\u0432\u044f\u0437\u0438, \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u0443\u044e \u0440\u0435\u0430\u043a\u0446\u0438\u044e \u043d\u0430 \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u0438\u043c\u0435\u044e\u0442\u0441\u044f \u0441\u043e\u0442\u043d\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u0442\u0440\u0435\u043c\u044f\u0442\u0441\u044f \u043a \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0439 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438. \u0410\u0432\u0442\u043e\u0440\u044b \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0430, \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043c\u044b \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u043f\u0443\u0431\u043b\u0438\u043a\u0443\u0435\u043c, \u0433\u043e\u0432\u043e\u0440\u044f\u0442, \u0447\u0442\u043e \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u0430\u044f [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":77784,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-77783","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=\"\u0412\u044b\u0432\u043e\u0434 \u043d\u043e\u0432\u043e\u0433\u043e \u0440\u0435\u043b\u0438\u0437\u0430 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0432 \u043f\u0440\u043e\u0434\u0430\u043a\u0448\u043d \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0442\u0449\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u043e\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u044f \u0431\u0430\u043b\u0430\u043d\u0441\u0430 \u043c\u0435\u0436\u0434\u0443 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c\u044e \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u0438 \u043d\u0430\u0434\u0451\u0436\u043d\u043e\u0441\u0442\u044c\u044e \u0440\u0435\u0448\u0435\u043d\u0438\u044f.\" \/>\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\/metodika-razvyortyvaniya-proektov-primenyaemaya-v-slack\" \/>\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\u041c\u0435\u0442\u043e\u0434\u0438\u043a\u0430 \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432, \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u043c\u0430\u044f \u0432 Slack | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412\u044b\u0432\u043e\u0434 \u043d\u043e\u0432\u043e\u0433\u043e \u0440\u0435\u043b\u0438\u0437\u0430 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0432 \u043f\u0440\u043e\u0434\u0430\u043a\u0448\u043d \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0442\u0449\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u043e\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u044f \u0431\u0430\u043b\u0430\u043d\u0441\u0430 \u043c\u0435\u0436\u0434\u0443 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c\u044e \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u0438 \u043d\u0430\u0434\u0451\u0436\u043d\u043e\u0441\u0442\u044c\u044e \u0440\u0435\u0448\u0435\u043d\u0438\u044f.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/metodika-razvyortyvaniya-proektov-primenyaemaya-v-slack\" \/>\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-04-13T23:42:28+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-04-13T23:42:28+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\udd47A Slack \u00e1ltal alkalmazott projektelep\u00edt\u00e9si m\u00f3dszertan | ProHoster","description":"A projekt \u00faj verzi\u00f3j\u00e1nak \u00e9lesbe \u00e1ll\u00edt\u00e1sa gondos egyens\u00falyoz\u00e1st ig\u00e9nyel a telep\u00edt\u00e9si sebess\u00e9g \u00e9s a megold\u00e1s megb\u00edzhat\u00f3s\u00e1ga k\u00f6z\u00f6tt.","canonical_url":"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/metodika-razvyortyvaniya-proektov-primenyaemaya-v-slack","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\u041c\u0435\u0442\u043e\u0434\u0438\u043a\u0430 \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432, \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u043c\u0430\u044f \u0432 Slack | ProHoster","og:description":"\u0412\u044b\u0432\u043e\u0434 \u043d\u043e\u0432\u043e\u0433\u043e \u0440\u0435\u043b\u0438\u0437\u0430 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0432 \u043f\u0440\u043e\u0434\u0430\u043a\u0448\u043d \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0442\u0449\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u043e\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u044f \u0431\u0430\u043b\u0430\u043d\u0441\u0430 \u043c\u0435\u0436\u0434\u0443 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c\u044e \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u0438 \u043d\u0430\u0434\u0451\u0436\u043d\u043e\u0441\u0442\u044c\u044e \u0440\u0435\u0448\u0435\u043d\u0438\u044f.","og:url":"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/metodika-razvyortyvaniya-proektov-primenyaemaya-v-slack","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-04-13T23:42:28+00:00","article:modified_time":"2020-04-13T23:42:28+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"77783","title":null,"description":null,"keywords":null,"keyphrases":{"focus":[],"additional":[]},"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 17:11:30","updated":"2026-08-11 12:50:20","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\/77783","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=77783"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts\/77783\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/media\/77784"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/media?parent=77783"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/categories?post=77783"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/tags?post=77783"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}