{"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\/hr\/blog\/administrirovanie\/metodika-razvyortyvaniya-proektov-primenyaemaya-v-slack","title":{"rendered":"Metodologija implementacije projekata koja se koristi u Slacku","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Izlaz novog izdanja projekta u produkciju zahtijeva pa\u017eljivo uskla\u0111ivanje izme\u0111u brzine implementacije i pouzdanosti rje\u0161enja. U Slacku cijene brze iteracije, kratke cikluse povratnih informacija i brzu reakciju na korisni\u010dke zahtjeve. Osim toga, kompanija ima stotine programera koji te\u017ee maksimalnoj produktivnosti.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/ruvds\/blog\/496838\/\"><img decoding=\"async\" alt=\"Metodologija implementacije projekata koja se koristi u Slacku\" src=\"\/wp-content\/uploads\/2020\/04\/a3d3cec330e9b9bd402035c22bda48ff.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>Autori materijala, \u010diji prijevod danas objavljujemo, ka\u017eu da kompanija koja nastoji slijediti sli\u010dne vrijednosti i pritom raste, mora stalno usavr\u0161avati svoj sustav implementacije projekata. Kompanija treba ulagati napore u transparentnost i pouzdanost radnih procesa, kako bi oni odgovarali razmjerima projekta. Ovdje \u0107e biti rije\u010d o radnim procesima uspostavljenim u Slacku i o nekim rje\u0161enjima koja su dovela do kori\u0161tenja sada\u0161njeg sustava implementacije projekata.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Kako procesi implementacije projekata danas funkcioniraju<\/h2>\n<p>\nSvaki PR (pull request) u Slacku mora pro\u0107i kod-reviziju i pro\u0107i sve testove. Tek nakon \u0161to su ispunjeni ovi uvjeti, programer mo\u017ee spojiti svoj kod s master granom projekta. Me\u0111utim, implementacija takvog koda izvodi se samo tijekom radnih sati po sjevernoameri\u010dkom vremenu. Kao rezultat toga, zahvaljuju\u0107i tome \u0161to su na\u0161i zaposlenici prisutni na radnim mjestima, potpuno smo spremni za rje\u0161avanje bilo kakvih neo\u010dekivanih problema.<\/p>\n<p>Svaki dan provodimo oko 12 planiranih implementacija. Tijekom svake implementacije, programer zadu\u017een za vo\u0111enje implementacije odgovara za izno\u0161enje nove verzije u produkciju. To je vi\u0161estepeni proces koji osigurava glatko izno\u0161enje verzije u radno stanje. Zahvaljuju\u0107i ovom pristupu mo\u017eemo otkriti gre\u0161ke prije nego \u0161to utje\u010du na sve na\u0161e korisnike. Ako se poka\u017ee da ima previ\u0161e gre\u0161aka, implementacija verzije mo\u017ee se vratiti. Ako se neka pojedina\u010dna gre\u0161ka otkrije nakon izdanja, lako se mo\u017ee izdati ispravak.<\/p>\n<p><img decoding=\"async\" alt=\"Metodologija implementacije projekata koja se koristi u Slacku\" src=\"\/wp-content\/uploads\/2020\/04\/e05d8ecf210832734a7bb691621a1f96.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Su\u010delje sustava Checkpoint, koje se koristi u Slacku za implementaciju projekata<\/i><\/p>\n<p>Proces implementacije novog izdanja u produkciji mo\u017ee se prikazati kao sastavljen od \u010detiri koraka.<\/p>\n<h3>\u258d1. Stvaranje izdava\u010dke grane<\/h3>\n<p>\nSvako izdanje zapo\u010dinje novom izdava\u010dkom granom u na\u0161oj Git povijesti. To omogu\u0107uje dodavanje oznaka izdanju i pru\u017ea mjesto za brzo ispravke gre\u0161aka prona\u0111enih tijekom pripreme izdanja za produkciju.<\/p>\n<h3>\u258d2. Implementacija u me\u0111ufazno okru\u017eenje<\/h3>\n<p>\nSljede\u0107i korak je implementacija verzije na me\u0111ufazne (staging) servere i pokretanje automatskog testa za op\u0107u funkcionalnost projekta (smoke test). Me\u0111ufazno okru\u017eenje je produkcijsko okru\u017eenje koje ne prima vanjski promet. U ovom okru\u017eenju provodimo dodatno ru\u010dno testiranje. To nam daje dodatnu sigurnost da izmijenjeni projekt ispravno radi. Samo automatizirani testovi nisu dovoljni za postizanje takve sigurnosti.<\/p>\n<h3>\u258d3. Implementacija u dogfood i canary okru\u017eenja<\/h3>\n<p>\nImplementacija u produkciji zapo\u010dinje s dogfood okru\u017eenjem, koje se sastoji od niza hostova koji opslu\u017euju na\u0161e interne Slack radne prostore. Budu\u0107i da smo vrlo aktivni korisnici Slacka, primjena ovog pristupa pomogla je otkriti brojne gre\u0161ke u ranim fazama implementacije. Nakon \u0161to smo se uvjerili da osnovna funkcionalnost sustava nije naru\u0161ena, provodimo implementaciju verzije u canary okru\u017eenju. To su sustavi kojima prolazi oko 2% produkcijskog prometa.<\/p>\n<h3>\u258d4. Postepeno uvo\u0111enje u produkciju<\/h3>\n<p>\nAko pokazatelji pra\u0107enja novog izdanja ostanu stabilni, i ako nakon implementacije projekta u canary okru\u017eenju ne primimo pritu\u017ebe, nastavljamo s postepenim prebacivanjem produkcijskih servera na novo izdanje. Proces implementacije podijeljen je na sljede\u0107e faze: 10%, 25%, 50%, 75% i 100%. Tako mo\u017eemo polako preusmjeriti produkcijski promet na novo izdanje sustava. U me\u0111uvremenu imamo vremena za istra\u017eivanje situacije ukoliko se pojave neke anomalije.<\/p>\n<h3>\u258d\u0160to u\u010diniti ako ne\u0161to po\u0111e po zlu tijekom implementacije?<\/h3>\n<p>\nModifikacija koda uvijek nosi rizik. No, uspijevamo se nositi s tim zahvaljuju\u0107i dobro pripremljenim \"voditeljima implementacije\" koji upravljaju procesom izlaska nove verzije u produkciju, prate pokazatelje nadzora i koordiniraju rad programera koji izvode kod.<\/p>\n<p>U slu\u010daju da ne\u0161to zaista po\u0111e po zlu, trudimo se otkriti problem \u0161to je ranije mogu\u0107e. Istra\u017eujemo problem, pronalazimo PR koji uzrokuje gre\u0161ke, vra\u0107amo ga, pa\u017eljivo analiziramo i kreiramo novu verziju. Me\u0111utim, ponekad problem ostane nezapa\u017een sve do izlaska projekta u produkciju. U takvoj situaciji najva\u017enije je obnoviti funkcioniranje usluge. Stoga, prije nego \u0161to zapo\u010dnemo istra\u017eivanje problema, odmah se vra\u0107amo na prethodnu radnu verziju.<\/p>\n<h2>Gra\u0111evni blokovi sustava implementacije<\/h2>\n<p>\nRazmotrimo tehnologije koje le\u017ee u osnovi na\u0161eg sustava implementacije projekata.<\/p>\n<h3>\u258dBrze implementacije<\/h3>\n<p>\nGore opisani radni proces mo\u017ee izgledati, u retrospektivi, potpuno o\u010dito. No, na\u0161 sustav implementacije nije postao takav odmah.<\/p>\n<p>Kad je tvrtka bila znatno manja, cijela na\u0161a aplikacija mogla je raditi na 10 Amazon EC2 instanci. Implementacija projekta u takvoj situaciji zna\u010dila je kori\u0161tenje rsync za brzu sinkronizaciju svih poslu\u017eitelja. Prije, nova verzija u produkciji bila je odvojena samo jednim korakom, koji je predstavljao me\u0111uprostor. Verzije su se kreirale i provjeravale u tom prostoru, a zatim su odmah i\u0161le u produkciju. Bilo je vrlo lako shvatiti takav sustav, omogu\u0107avao je bilo kojem programeru da bilo kada implementira svoj kod.<\/p>\n<p>No, kako je broj na\u0161ih klijenata rastao, rasla je i infrastruktura potrebna za podr\u0161ku radu projekta. Ubrzo, s obzirom na stalni rast sustava, na\u0161 model implementacije, koji se temeljio na slanju novog koda na poslu\u017eitelje, prestao je ispunjavati svoju ulogu. Naime, dodavanje svakog novog poslu\u017eitelja zna\u010dilo je pove\u0107anje vremena potrebnog za izvr\u0161enje implementacije. \u010cak i strategije temeljen na paralelnom kori\u0161tenju rsync-a imaju odre\u0111ena ograni\u010denja.<\/p>\n<p>Na kraju smo rije\u0161ili ovaj problem prelaskom na potpuno paralelni sustav implementacije, koji nije bio postavljen kao stari sustav. Naime, sada nismo slali kod na poslu\u017eitelje koriste\u0107i skriptu za sinkronizaciju. Sada je svaki poslu\u017eitelj samostalno preuzimao novu verziju, saznaju\u0107i da to treba u\u010diniti putem pra\u0107enja promjene klju\u010da Consul. Poslu\u017eitelji su preuzimali kod paralelno. To nam je omogu\u0107ilo odr\u017eavanje visoke brzine implementacije \u010dak i u uvjetima stalnog rasta sustava.<\/p>\n<p><img decoding=\"async\" alt=\"Metodologija implementacije projekata koja se koristi u Slacku\" src=\"\/wp-content\/uploads\/2020\/04\/baf52b60024eb9881e8a31fbf0da08bd.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>1. Proizvodni poslu\u017eitelji prate klju\u010d Consul. 2. Kada se klju\u010d promijeni, to obavje\u0161tava poslu\u017eitelje da zapo\u010dnu preuzimanje novog koda. 3. Poslu\u017eitelji preuzimaju tarball datoteke s aplikacijskim kodom.<\/i><\/p>\n<h3>\u258dAtomske implementacije<\/h3>\n<p>\nJo\u0161 jedno rje\u0161enje koje nam je pomoglo da do\u0111emo do vi\u0161eslojnog sustava implementacije bilo je atomsko implementiranje.<\/p>\n<p>Prije kori\u0161tenja atomske implementacije, svaka implementacija mogla je dovesti do velikog broja poruka o pogre\u0161kama. Naime, proces kopiranja novih datoteka na proizvodne poslu\u017eitelje nije bio atomaran. To je dovelo do postojanja kratkog vremenskog perioda kada je kod koji je pozivao nove funkcije bio dostupan prije nego \u0161to su te funkcije postale dostupne. Kada je takav kod bio pozvan, to je dovelo do vra\u0107anja internih pogre\u0161aka. To se manifestiralo u neuspje\u0161nim API pozivima i \u201epokvarenim\u201c web stranicama.<\/p>\n<p>Tim koji se bavio ovim problemom rije\u0161io ga je uvo\u0111enjem pojmova \u201evru\u0107e\u201c (hot) i \u201ehladne\u201c (cold) direktorije. Kod u \u201evru\u0107oj\u201c direktoriji odgovara za obradu proizvodnog prometa. A u \u201ehladnim\u201c direktorijima kod se, tijekom rada sustava, samo priprema za kori\u0161tenje. Tijekom implementacije novi kod kopira se u neiskori\u0161tenu \u201ehladnu\u201c direktoriju. Zatim, kada na poslu\u017eitelju ne bude aktivnih procesa, izvr\u0161ava se trenutni prelazak direktorija.<\/p>\n<p><img decoding=\"async\" alt=\"Metodologija implementacije projekata koja se koristi u Slacku\" src=\"\/wp-content\/uploads\/2020\/04\/05ab374f047e53e408f3e75ad3a73d68.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>1. Raspakiranje aplikacijskog koda u \u201ehladnu\u201c direktoriju. 2. Prebacivanje sustava na \u201ehladnu\u201c direktoriju, koja postaje \u201evru\u0107a\u201c (atomarna operacija).<\/i><\/p>\n<h2>Zaklju\u010dci: pomak fokusa na pouzdanost.<\/h2>\n<p>\nU 2018. godini projekt je dosegao razmjere kada je vrlo brzo razmje\u0161tanje po\u010delo \u0161tetiti stabilnosti proizvoda. Imali smo prili\u010dno napredan sustav razmje\u0161tanja, u koji smo ulo\u017eili mnogo truda i vremena. Trebalo je samo prestrukturirati i unaprijediti procese organizacije razmje\u0161tanja. Postali smo dovoljno velika tvrtka \u010diji se razvoj koristi \u0161irom svijeta za odr\u017eavanje neprekidne komunikacije i rje\u0161avanje va\u017enih zadataka. Stoga je pouzdanost postala sredi\u0161nja ta\u010dka na\u0161eg interesa.<\/p>\n<p>Trebao nam je sigurniji proces razmje\u0161tanja novih izdanja Slacka. Ova potreba dovela nas je do unaprje\u0111enja na\u0161eg sustava razmje\u0161tanja. Uostalom, o tom smo unapre\u0111enom sustavu ranije razgovarali. Unutarnjim dijelovima sustava i dalje koristimo tehnologije brzog i atomskog razmje\u0161tanja. Promijenilo se samo to kako se to\u010dno izvr\u0161ava razmje\u0161tanje. Na\u0161 novi sustav namijenjen je postupnom izvr\u0161avanju razmje\u0161tanja novog koda na razli\u010ditim razinama, u razli\u010ditim okru\u017eenjima. Sada koristimo naprednije pomo\u0107ne alate i sredstva za pra\u0107enje sustava nego prije. To nam omogu\u0107ava da uhvatimo i ispravimo gre\u0161ke mnogo prije nego \u0161to dobiju priliku do\u0107i do krajnjeg korisnika.<\/p>\n<p>Ali ne planiramo stati na postignutom. Stalno unapre\u0111ujemo ovaj sustav primjenom naprednijih pomo\u0107nih alata i sredstava za automatizaciju rada.<\/p>\n<p><b>Dragi \u010ditatelji!<\/b> Kako izgleda proces razmje\u0161tanja novih izdanja projekata gdje vi radite?<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/ruvds.com\/ru-rub\/#order\"><img decoding=\"async\" alt=\"Metodologija implementacije projekata koja se koristi u Slacku\" src=\"\/wp-content\/uploads\/2020\/04\/1aeb4af5770ce139b651be62e955f130.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><br \/>\n<br \/>Izvor: <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.4 - 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\/hr\/blog\/administrirovanie\/metodika-razvyortyvaniya-proektov-primenyaemaya-v-slack\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"hr_HR\" \/>\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\/hr\/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\udd47Metodologija razmje\u0161tanja projekata koja se primjenjuje u Slacku | ProHoster","description":"Izvo\u0111enje novog izdanja projekta u produkciju zahtijeva pa\u017eljivo uskla\u0111ivanje izme\u0111u brzine razmje\u0161tanja i pouzdanosti rje\u0161enja.","canonical_url":"https:\/\/prohoster.info\/hr\/blog\/administrirovanie\/metodika-razvyortyvaniya-proektov-primenyaemaya-v-slack","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"hr_HR","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\/hr\/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\/hr\/wp-json\/wp\/v2\/posts\/77783","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/comments?post=77783"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/posts\/77783\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/media\/77784"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/media?parent=77783"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/categories?post=77783"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/tags?post=77783"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}