{"id":31761,"date":"2019-10-31T21:42:55","date_gmt":"2019-10-31T18:42:55","guid":{"rendered":"https:\/\/prohoster.info\/blog\/mikroservisy-razmer-imeet-znachenie-dazhe-esli-u-vas-kubernetes\/"},"modified":"2019-10-31T21:42:55","modified_gmt":"2019-10-31T18:42:55","slug":"mikroservisy-razmer-imeet-znachenie-dazhe-esli-u-vas-kubernetes","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sk\/blog\/administrirovanie\/mikroservisy-razmer-imeet-znachenie-dazhe-esli-u-vas-kubernetes","title":{"rendered":"Mikroslu\u017eby: ve\u013ekos\u0165 m\u00e1 v\u00fdznam, aj ke\u010f m\u00e1te Kubernetes.","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>19. septembra v Bratislave <noindex><a rel=\"nofollow\" href=\"https:\/\/www.meetup.com\/HighLoad-User-Group\/events\/254238096\/\">sa uskuto\u010dnilo<\/a><\/noindex> prv\u00fd tematick\u00fd meetup HUG (Highload++ User Group), ktor\u00fd bol venovan\u00fd mikroslu\u017eb\u00e1m. Na \u0148om zaznel pr\u00edspevok \"Prev\u00e1dzka mikroslu\u017eieb: ve\u013ekos\u0165 je d\u00f4le\u017eit\u00e1, aj ke\u010f m\u00e1te Kubernetes\", v ktorom sme sa podelili o rozsiahle sk\u00fasenosti spolo\u010dnosti \"Flant\" v oblasti prev\u00e1dzky projektov s mikroslu\u017ebovou architekt\u00farou. V prvom rade bude u\u017eito\u010dn\u00fd v\u0161etk\u00fdm v\u00fdvoj\u00e1rom, ktor\u00ed uva\u017euj\u00fa o aplik\u00e1cii tohto pr\u00edstupu vo svojom aktu\u00e1lnom alebo bud\u00facom projekte.<\/p>\n<p><img decoding=\"async\" alt=\"Mikroslu\u017eby: ve\u013ekos\u0165 m\u00e1 v\u00fdznam, aj ke\u010f m\u00e1te Kubernetes.\" src=\"\/wp-content\/uploads\/2019\/04\/5d84197eef093da02b3db2156841e644.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPredstavujeme <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/watch?v=g9cgppj0gKQ\"><b>video z predn\u00e1\u0161ky<\/b><\/a><\/noindex> (50 min\u00fat, ove\u013ea informat\u00edvnej\u0161ie ako \u010dl\u00e1nok), ako aj hlavn\u00fd preh\u013ead z neho v textovej podobe.<\/p>\n<p><i>NB: Video a prezent\u00e1cia s\u00fa dostupn\u00e9 aj na konci tejto publik\u00e1cie.<\/i><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>\u00davod<\/h2>\n<p>\nZvy\u010dajne m\u00e1 dobr\u00fd pr\u00edbeh \u00favod, hlavn\u00fa z\u00e1pletku a z\u00e1ver. T\u00e1to predn\u00e1\u0161ka viac pripom\u00edna \u00favod, a to tragick\u00fd. Taktie\u017e je d\u00f4le\u017eit\u00e9 poznamena\u0165, \u017ee v nej je predostret\u00fd poh\u013ead na mikroslu\u017eby z poh\u013eadu <i>vyu\u017eit\u00ed<\/i>.<\/p>\n<p>Za\u010dnem tak\u00fdmto grafom, autorom ktor\u00e9ho (v roku 2015) <noindex><a rel=\"nofollow\" href=\"https:\/\/martinfowler.com\/bliki\/MicroservicePremium.html\">sa stal<\/a><\/noindex> Martin Fowler:<\/p>\n<p><img decoding=\"async\" alt=\"Mikroslu\u017eby: ve\u013ekos\u0165 m\u00e1 v\u00fdznam, aj ke\u010f m\u00e1te Kubernetes.\" src=\"\/wp-content\/uploads\/2019\/04\/f0cc0e00f32f5ea0a736e09fd20eaa85.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNa \u0148om je vidie\u0165, ako v pr\u00edpade monolitickej aplik\u00e1cie, ktor\u00e1 dosiahla ur\u010dit\u00fa ve\u013ekos\u0165, za\u010d\u00edna klesa\u0165 produktivita pr\u00e1ce. Mikroslu\u017eby sa vyzna\u010duj\u00fa t\u00fdm, \u017ee po\u010diato\u010dn\u00e1 produktivita s nimi je ni\u017e\u0161ia, ale s rastom komplexnosti nie je degrad\u00e1cia efektivity tak\u00e1 v\u00fdrazn\u00e1.<\/p>\n<p>Dopln\u00edm tento graf pre pr\u00edpad vyu\u017eitia Kubernetes:<\/p>\n<p><img decoding=\"async\" alt=\"Mikroslu\u017eby: ve\u013ekos\u0165 m\u00e1 v\u00fdznam, aj ke\u010f m\u00e1te Kubernetes.\" src=\"\/wp-content\/uploads\/2019\/04\/1b83f03639324c610a84bfd434317f48.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPre\u010do sa aplik\u00e1cii s mikroslu\u017ebami dar\u00ed lep\u0161ie? Preto\u017ee tak\u00e1 architekt\u00fara kladie v\u00e1\u017ene po\u017eiadavky na architekt\u00faru, ktor\u00e9 s\u00fa z\u00e1rove\u0148 v\u00fdborne pokryt\u00e9 mo\u017enos\u0165ami Kubernetes. Na druhej strane, \u010das\u0165 tejto funk\u010dnosti bude u\u017eito\u010dn\u00e1 aj pre monolit, najm\u00e4 z d\u00f4vodu, \u017ee typick\u00fd dne\u0161n\u00fd monolit nie je \u00faplne monolit (podrobnosti bud\u00fa \u010falej v predn\u00e1\u0161ke).<\/p>\n<p>Ako je vidno, kone\u010dn\u00fd graf (ke\u010f s\u00fa monolitick\u00e9 aj mikroslu\u017ebov\u00e9 aplik\u00e1cie v infra\u0161trukt\u00fare s Kubernetes) sa ve\u013emi nel\u00ed\u0161i od p\u00f4vodn\u00e9ho. \u010ealej bude re\u010d o aplik\u00e1ci\u00e1ch, ktor\u00e9 sa prev\u00e1dzkuj\u00fa s vyu\u017eit\u00edm Kubernetes.<\/p>\n<h2>U\u017eito\u010dn\u00e1 a \u0161kodliv\u00e1 mikroslu\u017ebovos\u0165<\/h2>\n<p>\nA tu je hlavn\u00e1 my\u0161lienka:<\/p>\n<p><img decoding=\"async\" alt=\"Mikroslu\u017eby: ve\u013ekos\u0165 m\u00e1 v\u00fdznam, aj ke\u010f m\u00e1te Kubernetes.\" src=\"\/wp-content\/uploads\/2019\/04\/c555e5fbdf09e4bb2be17fad23b8ff6b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u010co vlastne znamen\u00e1 <b>norm\u00e1lna<\/b> mikroslu\u017ebov\u00e1 architekt\u00fara? Mala by v\u00e1m prin\u00e1\u0161a\u0165 skuto\u010dn\u00fd prospech, zvy\u0161ovan\u00edm efektivity pr\u00e1ce. Ak sa vr\u00e1tim k grafu, tak tu je ona:<\/p>\n<p><img decoding=\"async\" alt=\"Mikroslu\u017eby: ve\u013ekos\u0165 m\u00e1 v\u00fdznam, aj ke\u010f m\u00e1te Kubernetes.\" src=\"\/wp-content\/uploads\/2019\/04\/c27a7af10812580f0543888256a0e698.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAk by sme ju nazvali <b>u\u017eito\u010dn\u00fd<\/b>, tak na druhej strane grafu by bola <b>\u0161kodliv\u00e1<\/b> mikroslu\u017ebovos\u0165 (br\u00e1ni pr\u00e1ci):<\/p>\n<p><img decoding=\"async\" alt=\"Mikroslu\u017eby: ve\u013ekos\u0165 m\u00e1 v\u00fdznam, aj ke\u010f m\u00e1te Kubernetes.\" src=\"\/wp-content\/uploads\/2019\/04\/27a7298bd8f877b2bc69d19378a542e2.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nVraciac sa k \u201ehlavnej my\u0161lienke\u201c: m\u00e1me v\u00f4bec d\u00f4verova\u0165 mojim sk\u00fasenostiam? Od za\u010diatku tohto roku som sa pozrel <b>na 85 projektov<\/b>. Nie v\u0161etky mali mikroslu\u017eobn\u00fa architekt\u00faru (takouto architekt\u00farou disponovalo pribli\u017ene od jednej tretiny do polovice z nich), ale aj tak je to ve\u013ek\u00e9 \u010d\u00edslo. My (spolo\u010dnos\u0165 \u201eFlant\u201c) ako outsourcingov\u00ed zamestnanci m\u00e1me mo\u017enos\u0165 vidie\u0165 \u0161irok\u00e9 spektrum aplik\u00e1ci\u00ed vyv\u00edjan\u00fdch ako mal\u00fdmi spolo\u010dnos\u0165ami (s 5 v\u00fdvoj\u00e1rmi), tak aj ve\u013ek\u00fdmi (~500 v\u00fdvoj\u00e1rmi). \u010eal\u0161\u00edm plusom je, \u017ee vid\u00edme, ako tieto aplik\u00e1cie \u017eij\u00fa a vyv\u00edjaj\u00fa sa po\u010das mnoh\u00fdch rokov.<\/p>\n<h2>Pre\u010do mikroslu\u017eby?<\/h2>\n<p>\nNa ot\u00e1zku o v\u00fdhod\u00e1ch mikroslu\u017eieb existuje <noindex><a rel=\"nofollow\" href=\"https:\/\/martinfowler.com\/articles\/microservice-trade-offs.html\">ve\u013emi konkr\u00e9tna odpove\u010f<\/a><\/noindex> od u\u017e spomenut\u00e9ho Martina Fowlera:<\/p>\n<ol>\n<li> jasn\u00e9 hranice modularity;<\/li>\n<li> nez\u00e1visl\u00e9 nasadzovanie;<\/li>\n<li> sloboda v\u00fdberu technol\u00f3gi\u00ed.<\/li>\n<\/ol>\n<p>\nVe\u013ea som hovoril s architektmi a v\u00fdvoj\u00e1rmi softv\u00e9ru a p\u00fdtal som sa, pre\u010do potrebuj\u00fa mikroslu\u017eby. Vytvoril som svoj zoznam ich o\u010dak\u00e1van\u00ed. Tu je to, \u010do vy\u0161lo:<\/p>\n<p><img decoding=\"async\" alt=\"Mikroslu\u017eby: ve\u013ekos\u0165 m\u00e1 v\u00fdznam, aj ke\u010f m\u00e1te Kubernetes.\" src=\"\/wp-content\/uploads\/2019\/04\/e9fa2f1a03da2017e90c5f952b752187.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAk by som pop\u00edsal \u201ev pocitoch\u201c niektor\u00e9 z bodov, tak:<\/p>\n<ul>\n<li> jasn\u00e9 hranice modulov: m\u00e1me tu zl\u00fd monolit, a teraz bude v\u0161etko \u00fah\u013eadne usporiadan\u00e9 v Git-repozit\u00e1roch, v ktor\u00fdch je v\u0161etko \u201epo poli\u010dk\u00e1ch\u201c, nemie\u0161a sa tepl\u00e9 so studen\u00fdm;<\/li>\n<li> nez\u00e1vislos\u0165 nasadzovania: budeme m\u00f4c\u0165 nasadzova\u0165 slu\u017eby nez\u00e1visle, aby sa v\u00fdvoj ur\u00fdchlil (paralelne m\u00f4\u017eeme publikova\u0165 nov\u00e9 funkcie);<\/li>\n<li> nez\u00e1vislos\u0165 v\u00fdvoja: tento mikroslu\u017eba m\u00f4\u017ee by\u0165 pridelen\u00e1 jednomu t\u00edmu\/v\u00fdvoj\u00e1rovi, a ten druh\u00fd \u010fal\u0161iemu, \u010do n\u00e1m umo\u017en\u00ed r\u00fdchlej\u0161ie vyv\u00edja\u0165;<\/li>\n<li> b<i>o<\/i>vy\u0161\u0161ia spo\u013eahlivos\u0165: ak d\u00f4jde k \u010diasto\u010dnej degrad\u00e1cii (spadne jedna mikroslu\u017eba z 20), tak prestane fungova\u0165 iba jedno tla\u010didlo, zatia\u013e \u010do syst\u00e9m ako celok bude pokra\u010dova\u0165 v \u010dinnosti.<\/li>\n<\/ul>\n<p><\/p>\n<h2>Typov\u00e1 (\u0161kodliv\u00e1) mikroslu\u017eobn\u00e1 architekt\u00fara<\/h2>\n<p>\nAby som vysvetlil, pre\u010do je v skuto\u010dnosti v\u0161etko in\u00e9, ne\u017e o\u010dak\u00e1vame, predstav\u00edm <i>syntetick\u00fd<\/i> obraz mikroslu\u017eobnej architekt\u00fary, zalo\u017een\u00fd na sk\u00fasenostiach z mno\u017estva r\u00f4znych projektov.<\/p>\n<p>Pr\u00edkladom bude abstraktn\u00fd internetov\u00fd obchod, ktor\u00fd sa chyst\u00e1 konkurova\u0165 Amazone alebo aspo\u0148 OZON-u. Jeho mikroslu\u017eobn\u00e1 architekt\u00fara vyzer\u00e1 takto:<\/p>\n<p><img decoding=\"async\" alt=\"Mikroslu\u017eby: ve\u013ekos\u0165 m\u00e1 v\u00fdznam, aj ke\u010f m\u00e1te Kubernetes.\" src=\"\/wp-content\/uploads\/2019\/04\/3b85936587109631d16882a52dd1b310.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nZ mno\u017estva d\u00f4vodov s\u00fa tieto mikroslu\u017eby p\u00edsan\u00e9 na r\u00f4znych platform\u00e1ch:<\/p>\n<p><img decoding=\"async\" alt=\"Mikroslu\u017eby: ve\u013ekos\u0165 m\u00e1 v\u00fdznam, aj ke\u010f m\u00e1te Kubernetes.\" src=\"\/wp-content\/uploads\/2019\/04\/e145b212a83814218add965ce26b3fed.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKe\u010f\u017ee ka\u017ed\u00e1 mikroslu\u017eba mus\u00ed by\u0165 auton\u00f3mna, mnoh\u00e9 z nich potrebuj\u00fa vlastn\u00fa datab\u00e1zu a cache. Kone\u010dn\u00e1 architekt\u00fara vyzer\u00e1 takto:<\/p>\n<p><img decoding=\"async\" alt=\"Mikroslu\u017eby: ve\u013ekos\u0165 m\u00e1 v\u00fdznam, aj ke\u010f m\u00e1te Kubernetes.\" src=\"\/wp-content\/uploads\/2019\/04\/299b2ac7b6956e295c3d59210955e5e9.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>Ak\u00e9 s\u00fa jej n\u00e1sledky?<\/h2>\n<p>\nU Fowlera sa v tejto veci <noindex><a rel=\"nofollow\" href=\"https:\/\/martinfowler.com\/articles\/microservice-trade-offs.html\">existuje \u010dl\u00e1nok<\/a><\/noindex> o \"platbe\" za pou\u017e\u00edvanie mikroslu\u017eieb:<\/p>\n<p><img decoding=\"async\" alt=\"Mikroslu\u017eby: ve\u013ekos\u0165 m\u00e1 v\u00fdznam, aj ke\u010f m\u00e1te Kubernetes.\" src=\"\/wp-content\/uploads\/2019\/04\/50fc6ac602cb2eb8383d2103101c01ce.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPozrieme sa, \u010di sa na\u0161e o\u010dak\u00e1vania splnili.<\/p>\n<h3>Jasn\u00e9 hranice modulov\u2026<\/h3>\n<p>\nAle <b>ko\u013eko mikroslu\u017eieb mus\u00edme naozaj opravi\u0165<\/b>, aby sme zaviedli zmenu? M\u00f4\u017eeme v\u00f4bec pochopi\u0165, ako to v\u0161etko funguje, bez distribuovan\u00e9ho trasova\u010da (ve\u010f ka\u017ed\u00fa po\u017eiadavku spracov\u00e1va polovica mikroslu\u017eieb)?<\/p>\n<p>Existuje vzor \"<noindex><a rel=\"nofollow\" href=\"http:\/\/www.laputan.org\/mud\/\">ve\u013ek\u00e1 gu\u010da \u0161piny<\/a><\/noindex>\", a tu sa z\u00edskala skuto\u010dne distribuovan\u00e1 gu\u010da \u0161piny. Na potvrdenie je tu pribli\u017en\u00e1 ilustr\u00e1cia toho, ako prech\u00e1dzaj\u00fa po\u017eiadavky:<\/p>\n<p><img decoding=\"async\" alt=\"Mikroslu\u017eby: ve\u013ekos\u0165 m\u00e1 v\u00fdznam, aj ke\u010f m\u00e1te Kubernetes.\" src=\"\/wp-content\/uploads\/2019\/04\/c91086409c06f5a76b1f76bec30b737d.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>Nez\u00e1vislos\u0165 nasadenia\u2026<\/h3>\n<p>\nTechnicky je dosiahnut\u00e1: m\u00f4\u017eeme nasadi\u0165 ka\u017ed\u00fa mikroslu\u017ebu osobitne. Ale v praxi je potrebn\u00e9 ma\u0165 na pam\u00e4ti, \u017ee sa v\u017edy nasad\u00ed <b>mno\u017estvo mikroslu\u017eieb<\/b>, pri\u010dom mus\u00edme zoh\u013eadni\u0165 <b>poradie ich nasadenia.<\/b>V ide\u00e1lnom pr\u00edpade by sme mali testova\u0165 v samostatnom prostred\u00ed, \u010di nasadzujeme verziu v spr\u00e1vnom porad\u00ed.<\/p>\n<h3>Sloboda v\u00fdberu technol\u00f3gie\u2026<\/h3>\n<p>\nExistuje. Len si treba pam\u00e4ta\u0165, \u017ee \u010dasto sloboda hrani\u010d\u00ed s anarchiou. Je ve\u013emi d\u00f4le\u017eit\u00e9 nevybera\u0165 technol\u00f3gie len preto, aby sme si s nimi \"hrali\".<\/p>\n<h3>Nez\u00e1vislos\u0165 v\u00fdvoja\u2026<\/h3>\n<p>\nAko vytvori\u0165 testovacie prostredie pre cel\u00fa aplik\u00e1ciu (z tak\u00e9ho mno\u017estva komponentov)? A z\u00e1rove\u0148 ho treba udr\u017eiava\u0165 v aktu\u00e1lnom stave. To v\u0161etko vedie k tomu, \u017ee <b>skuto\u010dn\u00fd po\u010det testovac\u00edch prostred\u00ed<\/b>, ktor\u00e9 m\u00f4\u017eeme v\u00f4bec udr\u017eiava\u0165, <b>je minim\u00e1lny.<\/b>.<\/p>\n<p>A \u010do lokalne rozbehn\u00fa\u0165 v\u0161etko? Ukazuje sa, \u017ee mnohokr\u00e1t v\u00fdvoj\u00e1r vykon\u00e1va svoju pr\u00e1cu nez\u00e1visle, ale \"na slepo\", preto\u017ee je n\u00faten\u00fd \u010daka\u0165, k\u00fdm sa uvo\u013en\u00ed prostredie na testovanie.<\/p>\n<h3>Oddelen\u00e9 \u0161k\u00e1lovanie\u2026<\/h3>\n<p>\n\u00c1no, ale je obmedzen\u00e9 v oblasti pou\u017eit\u00fdch DBMS. V uvedenom pr\u00edklade architekt\u00fary nebud\u00fa probl\u00e9my s Cassandrou, ale bud\u00fa s MySQL a PostgreSQL.<\/p>\n<h3>Ve\u013ek\u00e1<i>o<\/i>spo\u013eahlivos\u0165\u2026<\/h3>\n<p>\nNielen\u017ee v skuto\u010dnosti zlyhanie jedn\u00e9ho mikroslu\u017eby \u010dasto nar\u00fa\u0161a spr\u00e1vne fungovanie cel\u00e9ho syst\u00e9mu, existuje aj nov\u00fd probl\u00e9m: <b>robi\u0165 odoln\u00fdm ka\u017ed\u00fa mikroslu\u017ebu je ve\u013emi \u0165a\u017ek\u00e9<\/b>. Preto\u017ee v mikroslu\u017eb\u00e1ch sa pou\u017e\u00edvaj\u00fa r\u00f4zne technol\u00f3gie (memcache, Redis a pod.), pre ka\u017ed\u00fa treba v\u0161etko premyslie\u0165 a realizova\u0165, \u010do je samozrejme mo\u017en\u00e9, ale vy\u017eaduje obrovsk\u00e9 zdroje.<\/p>\n<h3>Mierite\u013enos\u0165 za\u0165a\u017eenia...<\/h3>\n<p>\nS t\u00fdmto je naozaj v\u0161etko v poriadku.<\/p>\n<h3>\u201e\u013dahkos\u0165\u201c mikroservisov...<\/h3>\n<p>\nNem\u00e1me len to, \u017ee sa objavili obrovsk\u00e9 <b>sie\u0165ov\u00e9 re\u017eijn\u00e9 n\u00e1klady<\/b> (zv\u00fd\u0161uj\u00fa sa po\u017eiadavky na DNS a podobne), ale aj kv\u00f4li mno\u017estvu pod\u017eiadost\u00ed sme za\u010dali <b>replikova\u0165 d\u00e1ta<\/b> (uchov\u00e1va\u0165 cache), \u010do viedlo k zna\u010dn\u00e9mu objemu \u00falo\u017eiska.<\/p>\n<p>A tak\u00fd je v\u00fdsledok splnenia na\u0161ich o\u010dak\u00e1van\u00ed:<\/p>\n<p><img decoding=\"async\" alt=\"Mikroslu\u017eby: ve\u013ekos\u0165 m\u00e1 v\u00fdznam, aj ke\u010f m\u00e1te Kubernetes.\" src=\"\/wp-content\/uploads\/2019\/04\/ab189c8649d720c7add975ac54811f51.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>Ale to e\u0161te nie je v\u0161etko!<\/h3>\n<p>\nPreto\u017ee:<\/p>\n<ul>\n<li> Pravdepodobne budeme potrebova\u0165 spr\u00e1vu spr\u00e1v.<\/li>\n<li> Ako urobi\u0165 konzistentn\u00fa z\u00e1lohu v po\u017eadovanom \u010dase? Jedin\u00e1 <i>re\u00e1lna<\/i> mo\u017enos\u0165 \u2014 vypn\u00fa\u0165 prenos na to. Ale ako to urobi\u0165 v produkcii?<\/li>\n<li> Ak hovor\u00edme o podpore viacer\u00fdch regi\u00f3nov, organizovanie odolnosti v ka\u017edom z nich je ve\u013emi n\u00e1ro\u010dn\u00e1 \u00faloha.<\/li>\n<li> Objavuje sa probl\u00e9m centralizovan\u00fdch zmien. Napr\u00edklad, ak potrebujeme aktualizova\u0165 verziu PHP, bude potrebn\u00e9 urobi\u0165 commit do ka\u017ed\u00e9ho repozit\u00e1ra (a t\u00fdch je desiatky).<\/li>\n<li> Rast opera\u010dnej zlo\u017eitosti sa na poh\u013ead zd\u00e1 exponenci\u00e1lny.<\/li>\n<\/ul>\n<p><\/p>\n<h2>\u010co s t\u00fdm v\u0161etk\u00fdm robi\u0165?<\/h2>\n<p>\n<b>Za\u010dnite s monolitnou aplik\u00e1ciou<\/b>. Sk\u00fasenosti Fowlera <noindex><a rel=\"nofollow\" href=\"https:\/\/martinfowler.com\/bliki\/MonolithFirst.html\">hovor\u00ed<\/a><\/noindex> o tom, \u017ee takmer v\u0161etky \u00faspe\u0161n\u00e9 mikroservisn\u00e9 aplik\u00e1cie za\u010d\u00ednali ako monolit, ktor\u00fd sa stal pr\u00edli\u0161 ve\u013ek\u00fdm a potom bol rozdelen\u00fd. Z\u00e1rove\u0148 takmer v\u0161etky syst\u00e9my, ktor\u00e9 boli postaven\u00e9 ako mikroservisy od za\u010diatku, sk\u00f4r \u010di nesk\u00f4r \u010delili v\u00e1\u017enym probl\u00e9mom.<\/p>\n<p>\u010eal\u0161ia cenn\u00e1 my\u0161lienka \u2014 aby bol projekt s mikroservisnou architekt\u00farou \u00faspe\u0161n\u00fd, mus\u00edte ve\u013emi dobre pozna\u0165 <b>a predmetn\u00fa oblas\u0165, a ako robi\u0165 mikroservisy<\/b>. A najlep\u0161\u00ed sp\u00f4sob, ako sa dozvedie\u0165 o predmetnej oblasti \u2014 je spravi\u0165 monolit.<\/p>\n<h2>Ale \u010do robi\u0165, ak sme u\u017e v takej situ\u00e1cii?<\/h2>\n<p>\nPrv\u00fd krok k rie\u0161eniu ak\u00e9hoko\u013evek probl\u00e9mu \u2014 s\u00fahlasi\u0165 s n\u00edm a pochopi\u0165, \u017ee je to probl\u00e9m, \u017ee u\u017e viac nechceme trpie\u0165.<\/p>\n<p>Ak v pr\u00edpade roz\u0161\u00edren\u00e9ho monolitu (ke\u010f sme u\u017e vy\u010derpali mo\u017enosti na jeho zak\u00fapenie) ho rozdel\u00edme, v tomto pr\u00edpade ide o opa\u010dn\u00fd pr\u00edbeh: ke\u010f nadmern\u00e1 mikroservisnos\u0165 u\u017e nepom\u00e1ha, ale prek\u00e1\u017ea \u2014 <b>odstr\u00e1\u0148te nadbyto\u010dn\u00e9 a zv\u00e4\u010d\u0161ite<\/b>!<\/p>\n<p>Napr\u00edklad, pre vy\u0161\u0161ie uveden\u00fd s\u00fahrnn\u00fd obraz...<\/p>\n<p>Zbavte sa najproblematic\u030ckej\u0161\u00edch mikroservisov:<\/p>\n<p><img decoding=\"async\" alt=\"Mikroslu\u017eby: ve\u013ekos\u0165 m\u00e1 v\u00fdznam, aj ke\u010f m\u00e1te Kubernetes.\" src=\"\/wp-content\/uploads\/2019\/04\/4b72ede0452890027a950d31ced26405.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSpojte v\u0161etky mikroservisy zodpovedaj\u00face za generovanie frontendu:<\/p>\n<p><img decoding=\"async\" alt=\"Mikroslu\u017eby: ve\u013ekos\u0165 m\u00e1 v\u00fdznam, aj ke\u010f m\u00e1te Kubernetes.\" src=\"\/wp-content\/uploads\/2019\/04\/3bf2831a637cfa148b032ba8c521353a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u2026 do jedn\u00e9ho mikroslu\u017eby, nap\u00edsan\u00e9ho v jednom (modernom a norm\u00e1lnom, ako si sami mysl\u00edte) jazyku\/frameworku:<\/p>\n<p><img decoding=\"async\" alt=\"Mikroslu\u017eby: ve\u013ekos\u0165 m\u00e1 v\u00fdznam, aj ke\u010f m\u00e1te Kubernetes.\" src=\"\/wp-content\/uploads\/2019\/04\/73f53f5f4f41f72a7c6d187d855bbd95.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nBude ma\u0165 jeden ORM (jednu DB) a spo\u010diatku p\u00e1r aplik\u00e1ci\u00ed:<\/p>\n<p><img decoding=\"async\" alt=\"Mikroslu\u017eby: ve\u013ekos\u0165 m\u00e1 v\u00fdznam, aj ke\u010f m\u00e1te Kubernetes.\" src=\"\/wp-content\/uploads\/2019\/04\/f44baf6a02bf00317f1395ab339f57a9.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u2026 ale v\u00f4bec tam m\u00f4\u017eete presun\u00fa\u0165 ove\u013ea viac, pri\u010dom z\u00edskate tak\u00fdto v\u00fdsledok:<\/p>\n<p><img decoding=\"async\" alt=\"Mikroslu\u017eby: ve\u013ekos\u0165 m\u00e1 v\u00fdznam, aj ke\u010f m\u00e1te Kubernetes.\" src=\"\/wp-content\/uploads\/2019\/04\/97c02ae24199bca42e4bf24f8031578a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNavy\u0161e, v Kubernetes to sp\u00fa\u0161\u0165ame ako samostatn\u00e9 instance, a preto m\u00f4\u017eeme st\u00e1le mera\u0165 za\u0165a\u017eenie a samostatne ich \u0161k\u00e1lova\u0165.<\/p>\n<h2>Zhr\u0148uj\u00fac<\/h2>\n<p>\nPozrite sa na situ\u00e1ciu \u0161ir\u0161ie. Ve\u013emi \u010dasto v\u0161etky tieto probl\u00e9my s mikroslu\u017ebami vznikaj\u00fa z toho, \u017ee niekto vzal svoju \u00falohu, ale chcel \"hra\u0165 sa s mikroslu\u017ebami\".<\/p>\n<p><b>V slove \"mikroslu\u017eby\" je \u010das\u0165 \u201emikro\u201c nadbyto\u010dn\u00e1.<\/b>. S\u00fa \u201emikro\u201c iba preto, \u017ee s\u00fa men\u0161ie ako obrovsk\u00fd monolit. Ale nemyslite na nich ako na nie\u010do mal\u00e9.<\/p>\n<p>A pre kone\u010dn\u00fa my\u0161lienku sa vr\u00e1\u0165me k p\u00f4vodn\u00e9mu grafu:<\/p>\n<p><img decoding=\"async\" alt=\"Mikroslu\u017eby: ve\u013ekos\u0165 m\u00e1 v\u00fdznam, aj ke\u010f m\u00e1te Kubernetes.\" src=\"\/wp-content\/uploads\/2019\/04\/a75665af4caa7c4982f70c59ec3c6e89.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNap\u00edsan\u00e1 k nemu pozn\u00e1mka <i>(vpravo hore)<\/i> sa zameriava na to, \u017ee <b>zru\u010dnosti t\u00edmu, ktor\u00fd rob\u00ed v\u00e1\u0161 projekt, s\u00fa v\u017edy prim\u00e1rne<\/b> \u2014 pr\u00e1ve oni zohr\u00e1vaj\u00fa k\u013e\u00fa\u010dov\u00fa \u00falohu vo va\u0161ej vo\u013ebe medzi mikroslu\u017ebami a monolitom. Ak t\u00edm nem\u00e1 dostatok schopnost\u00ed, ale za\u010dne robi\u0165 mikroslu\u017eby, hist\u00f3ria bude ur\u010dite fat\u00e1lna.<\/p>\n<h2>Video a sn\u00edmky<\/h2>\n<p>\nVideo z vyst\u00fapenia (~50 min\u00fat; bohu\u017eia\u013e, nie pren\u00e1\u0161a mno\u017estvo em\u00f3ci\u00ed n\u00e1v\u0161tevn\u00edkov, \u010do vo ve\u013ekej miere ur\u010dovalo n\u00e1ladu predn\u00e1\u0161ky, ale tak je to):<\/p>\n<p><center><div class=\"youtube-placeholder\" data-id=\"g9cgppj0gKQ\" onclick=\"loadVideo(this)\">\r\n        <img decoding=\"async\" src=\"https:\/\/img.youtube.com\/vi\/g9cgppj0gKQ\/hqdefault.jpg\" alt=\"Prehrajte video\" loading=\"lazy\" width=\"480\" height=\"360\" style=\"width:100%;height:auto;\">\r\n        <div class=\"play-button\"><\/div>\r\n    <\/div><\/center><\/p>\n<p>Prezent\u00e1cia predn\u00e1\u0161ky:<\/p>\n<p><center><iframe loading=\"lazy\" width=\"560\" height=\"315\" src=\"\/\/speakerdeck.com\/player\/f4f5ab9957084712bc92aa8a0ef61e45\" frameborder=\"0\" allowfullscreen><\/iframe><\/center><\/p>\n<h2>P.S.<\/h2>\n<p>\nIn\u00e9 predn\u00e1\u0161ky v na\u0161om blogu:<\/p>\n<ul>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/412901\/\">Monitoring a Kubernetes<\/a><\/noindex>\u00bb <i>(Dmitrij Stoljaro; 28. m\u00e1ja 2018 na RootConf)<\/i>;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/345116\/\">Najlep\u0161ie praktiky CI\/CD s Kubernetes a GitLab<\/a><\/noindex>\u00bb <i>(Dmitrij Stoljaro; 7. novembra 2017 na HighLoad++)<\/i>;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/331188\/\">Na\u0161a sk\u00fasenos\u0165 s Kubernetes v mal\u00fdch projektoch<\/a><\/noindex>\u00bb <i>(Dmitrij Stoljaro; 6. j\u00fana 2017 na RootConf)<\/i>;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/324274\/\">Zbierame Docker obrazy pre CI\/CD r\u00fdchlo a jednoducho spolu s dapp<\/a><\/noindex>\u00bb <i>(Dmitrij Stoljaro; 8. novembra 2016 na HighLoad++)<\/i>;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/322686\/\">Praktiky Continuous Delivery s Docker<\/a><\/noindex>\u00bb <i>(Dmitrij Stoljaro; 31. m\u00e1ja 2016 na RootConf)<\/i>.<\/li>\n<\/ul>\n<p>\nMo\u017eno v\u00e1s bud\u00fa zauj\u00edma\u0165 aj nasleduj\u00face publik\u00e1cie:<\/p>\n<ul>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/347518\/\">Koniec mikroslu\u017ebov\u00e9mu \u0161ialenstvu v roku 2018<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/425085\/\">7 najlep\u0161\u00edch prakt\u00edk prev\u00e1dzky kontajnerov pod\u013ea Google<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/flant\/blog\/340270\/\">\u0160tatistika The New Stack o \u0165a\u017ekostiach s implement\u00e1ciou Kubernetes<\/a><\/noindex>\u00bb.<\/li>\n<\/ul>\n<p>Zdroj: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/424531\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>19 \u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044f \u0432 \u041c\u043e\u0441\u043a\u0432\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043b\u0441\u044f \u043f\u0435\u0440\u0432\u044b\u0439 \u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043c\u0438\u0442\u0430\u043f HUG (Highload++ User Group), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u044b\u043b \u043f\u043e\u0441\u0432\u044f\u0449\u0451\u043d \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u0430\u043c. \u041d\u0430 \u043d\u0451\u043c \u043f\u0440\u043e\u0437\u0432\u0443\u0447\u0430\u043b \u0434\u043e\u043a\u043b\u0430\u0434 \u00ab\u042d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u044f \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432: \u0440\u0430\u0437\u043c\u0435\u0440 \u0438\u043c\u0435\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 Kubernetes\u00bb, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043c\u044b \u043f\u043e\u0434\u0435\u043b\u0438\u043b\u0438\u0441\u044c \u043e\u0431\u0448\u0438\u0440\u043d\u044b\u043c \u043e\u043f\u044b\u0442\u043e\u043c \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u00ab\u0424\u043b\u0430\u043d\u0442\u00bb \u0432 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u0441 \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u043d\u043e\u0439 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043e\u0439. \u0412 \u043f\u0435\u0440\u0432\u0443\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043b\u0435\u0437\u0435\u043d \u0432\u0441\u0435\u043c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c, \u0437\u0430\u0434\u0443\u043c\u044b\u0432\u0430\u044e\u0449\u0438\u043c\u0441\u044f \u043e [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":23651,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-31761","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=\"19 \u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044f \u0432 \u041c\u043e\u0441\u043a\u0432\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043b\u0441\u044f \u043f\u0435\u0440\u0432\u044b\u0439 \u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043c\u0438\u0442\u0430\u043f HUG (Highload++ User Group), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u044b\u043b \u043f\u043e\u0441\u0432\u044f\u0449\u0451\u043d.\" \/>\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\/sk\/blog\/administrirovanie\/mikroservisy-razmer-imeet-znachenie-dazhe-esli-u-vas-kubernetes\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"sk_SK\" \/>\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\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u044b: \u0440\u0430\u0437\u043c\u0435\u0440 \u0438\u043c\u0435\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 Kubernetes | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"19 \u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044f \u0432 \u041c\u043e\u0441\u043a\u0432\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043b\u0441\u044f \u043f\u0435\u0440\u0432\u044b\u0439 \u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043c\u0438\u0442\u0430\u043f HUG (Highload++ User Group), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u044b\u043b \u043f\u043e\u0441\u0432\u044f\u0449\u0451\u043d.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sk\/blog\/administrirovanie\/mikroservisy-razmer-imeet-znachenie-dazhe-esli-u-vas-kubernetes\" \/>\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-31T18:42:55+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:42:55+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\udd47Mikroslu\u017eby: ve\u013ekos\u0165 m\u00e1 v\u00fdznam, aj ke\u010f m\u00e1te Kubernetes | ProHoster","description":"19. septembra sa v Moskve konalo prv\u00e9 tematick\u00e9 stretnutie HUG (Highload++ User Group), ktor\u00e9 bolo venovan\u00e9.","canonical_url":"https:\/\/prohoster.info\/sk\/blog\/administrirovanie\/mikroservisy-razmer-imeet-znachenie-dazhe-esli-u-vas-kubernetes","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sk_SK","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\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u044b: \u0440\u0430\u0437\u043c\u0435\u0440 \u0438\u043c\u0435\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 Kubernetes | ProHoster","og:description":"19 \u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044f \u0432 \u041c\u043e\u0441\u043a\u0432\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043b\u0441\u044f \u043f\u0435\u0440\u0432\u044b\u0439 \u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043c\u0438\u0442\u0430\u043f HUG (Highload++ User Group), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u044b\u043b \u043f\u043e\u0441\u0432\u044f\u0449\u0451\u043d.","og:url":"https:\/\/prohoster.info\/sk\/blog\/administrirovanie\/mikroservisy-razmer-imeet-znachenie-dazhe-esli-u-vas-kubernetes","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-31T18:42:55+00:00","article:modified_time":"2019-10-31T18:42:55+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"31761","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-21 07:42:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 03:11:22","updated":"2026-01-21 07:42:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts\/31761","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/comments?post=31761"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts\/31761\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/media\/23651"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/media?parent=31761"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/categories?post=31761"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/tags?post=31761"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}