{"id":83248,"date":"2020-05-29T19:42:48","date_gmt":"2020-05-29T17:42:48","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/dihotomiya-dannyh-pereosmyslenie-otnosheniya-k-dannym-i-servisam"},"modified":"2020-05-29T19:42:48","modified_gmt":"2020-05-29T17:42:48","slug":"dihotomiya-dannyh-pereosmyslenie-otnosheniya-k-dannym-i-servisam","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sk\/blog\/administrirovanie\/dihotomiya-dannyh-pereosmyslenie-otnosheniya-k-dannym-i-servisam","title":{"rendered":"Dichot\u00f3mia d\u00e1t: prehodnotenie vz\u0165ahu k d\u00e1tam a slu\u017eb\u00e1m","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><i><b>Ahojte v\u0161etci! M\u00e1me skvel\u00e9 spr\u00e1vy, v j\u00fani OTUS op\u00e4\u0165 sp\u00fa\u0161\u0165a kurz <noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/rVZl\/\">\u201eArchitekt softv\u00e9ru\u201c<\/a><\/noindex>, a preto s vami tradi\u010dne zdie\u013eame u\u017eito\u010dn\u00fd materi\u00e1l.<\/b><\/i><\/p>\n<p><img decoding=\"async\" alt=\"Dichot\u00f3mia d\u00e1t: prehodnotenie vz\u0165ahu k d\u00e1tam a slu\u017eb\u00e1m\" src=\"\/wp-content\/uploads\/2020\/05\/6092ffb23e765239b4a8f27d4a0cb846.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n Ak ste sa s touto hist\u00f3riou mikroservisov stretli bez ak\u00e9hoko\u013evek kontextu, m\u00f4\u017eete to pova\u017eova\u0165 za trochu zvl\u00e1\u0161tne. Rozdelenie aplik\u00e1cie na fragmenty, ktor\u00e9 s\u00fa navz\u00e1jom prepojen\u00e9 sie\u0165ou, nevyhnutne znamen\u00e1 pridanie zlo\u017eit\u00fdch re\u017eimov odolnosti vo\u010di zlyhaniam do v\u00fdsledn\u00e9ho distribuovan\u00e9ho syst\u00e9mu. <\/p>\n<p>Napriek tomu, \u017ee tak\u00fdto pr\u00edstup zah\u0155\u0148a rozdelenie na mnoho nez\u00e1visl\u00fdch slu\u017eieb, kone\u010dn\u00fd cie\u013e je ove\u013ea v\u00e4\u010d\u0161\u00ed ako len to, aby tieto slu\u017eby fungovali na r\u00f4znych zariadeniach. Ide o interakciu s okol\u00edm, ktor\u00e9 je svojou podstatou tie\u017e distribuovan\u00e9. Nie v technickom zmysle, sk\u00f4r v zmysle ekosyst\u00e9mu, ktor\u00fd sa sklad\u00e1 z mnoh\u00fdch \u013eud\u00ed, t\u00edmov, programov, a ka\u017ed\u00e1 z t\u00fdchto \u010dast\u00ed nejako mus\u00ed vykon\u00e1va\u0165 svoju pr\u00e1cu.<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Spolo\u010dnosti, napr\u00edklad, predstavuj\u00fa s\u00fabor distribuovan\u00fdch syst\u00e9mov, ktor\u00e9 spolu prispievaj\u00fa k dosiahnutiu ur\u010dit\u00e9ho cie\u013ea. Tento fakt sme ignorovali cel\u00e9 desa\u0165ro\u010dia a sna\u017eili sme sa dosiahnu\u0165 integr\u00e1ciu, pri\u010dom sme si vymie\u0148ali s\u00fabory cez FTP alebo pou\u017e\u00edvali n\u00e1stroje podnikovej integr\u00e1cie, s\u00fastre\u010fuj\u00fac sa na na\u0161e osobn\u00e9 izolovan\u00e9 ciele. Av\u0161ak s pr\u00edchodom slu\u017eieb sa v\u0161etko zmenilo. Slu\u017eby n\u00e1m pomohli nazrie\u0165 za obzor a vidie\u0165 svet vz\u00e1jomne z\u00e1visl\u00fdch programov, ktor\u00e9 spolupracuj\u00fa. Aby sme v\u0161ak boli \u00faspe\u0161n\u00ed, je potrebn\u00e9 si uvedomi\u0165 a navrhn\u00fa\u0165 dva z\u00e1sadne odli\u0161n\u00e9 svety: vonkaj\u0161\u00ed svet, kde \u017eijeme v ekosyst\u00e9me mnoh\u00fdch \u010fal\u0161\u00edch slu\u017eieb, a n\u00e1\u0161 osobn\u00fd, vn\u00fatorn\u00fd svet, kde vl\u00e1dneme osamote.<\/p>\n<p><img decoding=\"async\" alt=\"Dichot\u00f3mia d\u00e1t: prehodnotenie vz\u0165ahu k d\u00e1tam a slu\u017eb\u00e1m\" src=\"\/wp-content\/uploads\/2020\/05\/93f535f6f3319d7b2829d35c0fe1c48f.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <br \/>\n Tak\u00fdto distribuovan\u00fd svet sa l\u00ed\u0161i od toho, v ktorom sme vyrastali a na ktor\u00fd sme si zvykli. Princ\u00edpy vytv\u00e1rania tradi\u010dnej monolitnej architekt\u00fary nevydr\u017eia \u017eiadnu kritiku. Preto spr\u00e1vne pochopenie tak\u00fdchto syst\u00e9mov je nie\u010do viac ako len vytvorenie skvelej sch\u00e9my na bielej tabu\u013eke alebo skvel\u00e9ho d\u00f4kazu konceptu. Ide o to, aby tak\u00fdto syst\u00e9m \u00faspe\u0161ne fungoval dlhodobo. Na\u0161\u0165astie, slu\u017eby existuj\u00fa u\u017e pomerne dlho, aj ke\u010f vyzeraj\u00fa r\u00f4zne. <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Service-oriented_architecture\">Lekcie SOA<\/a><\/noindex> st\u00e1le s\u00fa aktu\u00e1lne, aj ke\u010f s\u00fa ochuten\u00e9 Dockerom, Kubernetesom a mierne pozna\u010den\u00e9 hipstersk\u00fdmi bradami. <\/p>\n<p>Dnes sa pozrieme na to, ako sa zmenili pravidl\u00e1, pre\u010do mus\u00edme prehodnoti\u0165 n\u00e1\u0161 pr\u00edstup k slu\u017eb\u00e1m a inform\u00e1ci\u00e1m, ktor\u00e9 si navz\u00e1jom pren\u00e1\u0161aj\u00fa, a pre\u010do k tomu budeme potrebova\u0165 \u00faplne in\u00fd s\u00fabor n\u00e1strojov.<\/p>\n<h3>Inkapsul\u00e1cia nemus\u00ed by\u0165 v\u017edy va\u0161\u00edm priate\u013eom.<\/h3>\n<p>\n Mikroslu\u017eby m\u00f4\u017eu fungova\u0165 nez\u00e1visle jedna od druhej. Pr\u00e1ve t\u00e1to vlastnos\u0165 im d\u00e1va najv\u00e4\u010d\u0161iu hodnotu. Taktie\u017e umo\u017e\u0148uje slu\u017eb\u00e1m r\u00e1s\u0165 a roz\u0161irova\u0165 sa. Nie v zmysle roz\u0161\u00edrenia na kvadrili\u00f3ny pou\u017e\u00edvate\u013eov alebo petabajty d\u00e1t (aj ke\u010f aj v tom m\u00f4\u017eu pom\u00f4c\u0165), ale v zmysle rastu z poh\u013eadu \u013eud\u00ed, ke\u010f\u017ee t\u00edmy a organiz\u00e1cie sa neust\u00e1le zv\u00e4\u010d\u0161uj\u00fa.<\/p>\n<p><img decoding=\"async\" alt=\"Dichot\u00f3mia d\u00e1t: prehodnotenie vz\u0165ahu k d\u00e1tam a slu\u017eb\u00e1m\" src=\"\/wp-content\/uploads\/2020\/05\/ec36218b6152c2b713f72689b4ea6916.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAv\u0161ak nez\u00e1vislos\u0165 je dvojse\u010dn\u00e1 zbra\u0148. To znamen\u00e1, \u017ee slu\u017eba sama o sebe m\u00f4\u017ee be\u017ea\u0165 jednoducho a bez probl\u00e9mov. Ale ak sa v slu\u017ebe implementuje funkcia, ktor\u00e1 vy\u017eaduje zapoji\u0165 in\u00fa slu\u017ebu, nakoniec mus\u00edme upravova\u0165 obe slu\u017eby takmer s\u00fa\u010dasne. V monolite je to jednoduch\u00e9, jednoducho zmen\u00edte a vyd\u00e1te nov\u00fa verziu, ale v pr\u00edpade synchroniz\u00e1cie nez\u00e1visl\u00fdch slu\u017eieb s\u00fa probl\u00e9my v\u00e4\u010d\u0161ie. Koordin\u00e1cia medzi t\u00edmami a cyklami vydan\u00ed nar\u00fa\u0161a flexibilitu.<\/p>\n<p><img decoding=\"async\" alt=\"Dichot\u00f3mia d\u00e1t: prehodnotenie vz\u0165ahu k d\u00e1tam a slu\u017eb\u00e1m\" src=\"\/wp-content\/uploads\/2020\/05\/5fc993636f29e9eb9831d05cbc0bd7f8.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nV r\u00e1mci \u0161tandardn\u00e9ho pr\u00edstupu sa sna\u017e\u00edme vyh\u00fdba\u0165 zlo\u017eit\u00fdm prie\u010dnym zmen\u00e1m jasn\u00fdm oddelen\u00edm funkcionality medzi slu\u017ebami. Slu\u017eba jednotn\u00e9ho pr\u00edstupu m\u00f4\u017ee by\u0165 dobr\u00fdm pr\u00edkladom. M\u00e1 jasne definovan\u00fa \u00falohu, ktor\u00e1 ju odli\u0161uje od ostatn\u00fdch slu\u017eieb. Tak\u00e9to jasn\u00e9 rozdelenie znamen\u00e1, \u017ee v svete r\u00fdchlo sa meniacich po\u017eiadaviek na okolit\u00fdch slu\u017eb\u00e1ch sa slu\u017eba jednotn\u00e9ho pr\u00edstupu pravdepodobne nezmen\u00ed. Existuje v r\u00e1mci pr\u00edsne obmedzen\u00e9ho kontextu.<\/p>\n<p><img decoding=\"async\" alt=\"Dichot\u00f3mia d\u00e1t: prehodnotenie vz\u0165ahu k d\u00e1tam a slu\u017eb\u00e1m\" src=\"\/wp-content\/uploads\/2020\/05\/095fd7a6e02ead4924abf180e3b1d26b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <br \/>\n Probl\u00e9m je v tom, \u017ee v re\u00e1lnom svete obchodn\u00e9 slu\u017eby nem\u00f4\u017eu neust\u00e1le udr\u017eiava\u0165 rovnako \u010dist\u00e9 oddelenie rol\u00ed. Napr\u00edklad, tieto obchodn\u00e9 slu\u017eby do zna\u010dnej miery pracuj\u00fa s \u00fadajmi, ktor\u00e9 prich\u00e1dzaj\u00fa z in\u00fdch podobn\u00fdch slu\u017eieb. Ak sa zaober\u00e1te online predajom, spracovanie toku objedn\u00e1vok, katal\u00f3gu produktov alebo inform\u00e1ci\u00ed o pou\u017e\u00edvate\u013eoch sa stane po\u017eiadavkou pre mnoh\u00e9 va\u0161e slu\u017eby. Ka\u017ed\u00e1 zo slu\u017eieb potrebuje na svoju pr\u00e1cu pr\u00edstup k t\u00fdmto \u00fadajom. <\/p>\n<p><img decoding=\"async\" alt=\"Dichot\u00f3mia d\u00e1t: prehodnotenie vz\u0165ahu k d\u00e1tam a slu\u017eb\u00e1m\" src=\"\/wp-content\/uploads\/2020\/05\/2a3d23850c88d574c990dfdc6015072c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>V\u00e4\u010d\u0161ina obchodn\u00fdch slu\u017eieb vyu\u017e\u00edva rovnak\u00fd tok \u00fadajov, preto je ich pr\u00e1ca nevyhnutne prepleten\u00e1.<\/i><\/p>\n<p>Takto sme sa dostali k d\u00f4le\u017eit\u00e9mu momentu, o ktorom stoj\u00ed za to hovori\u0165. Zatia\u013e \u010do slu\u017eby dobre funguj\u00fa pre komponenty infra\u0161trukt\u00fary, ktor\u00e9 pracuj\u00fa do zna\u010dnej miery izolovane, v\u00e4\u010d\u0161ina obchodn\u00fdch slu\u017eieb je prepleten\u00e1 ove\u013ea tesnej\u0161ie.<\/p>\n<h3>Dichot\u00f3mia \u00fadajov<\/h3>\n<p>\n Pr\u00edstupy zameran\u00e9 na slu\u017eby m\u00f4\u017eu u\u017e existova\u0165, av\u0161ak st\u00e1le je ich m\u00e1lo inform\u00e1ci\u00ed o tom, ako vymie\u0148a\u0165 ve\u013ek\u00e9 objemy \u00fadajov medzi slu\u017ebami.<\/p>\n<p>Hlavn\u00fd probl\u00e9m spo\u010d\u00edva v tom, \u017ee \u00fadaje a slu\u017eby s\u00fa nerozlu\u010dn\u00e9. Na jednej strane enkapsul\u00e1cia nab\u00e1da, aby sme skr\u00fdvali \u00fadaje, aby sa slu\u017eby mohli oddeli\u0165 one od druhej a u\u013eah\u010di\u0165 ich rast a bud\u00face zmeny. Na druhej strane potrebujeme ma\u0165 mo\u017enos\u0165 vo\u013ene zdie\u013ea\u0165 a vlastni\u0165 spolo\u010dn\u00e9 \u00fadaje, rovnako ako ak\u00e9ko\u013evek in\u00e9. Ide o to, aby sme mohli okam\u017eite za\u010da\u0165 pracova\u0165, tak rovnako vo\u013ene, ako aj v akejko\u013evek inej informa\u010dnej s\u00fastave.<\/p>\n<p>Av\u0161ak informa\u010dn\u00e9 syst\u00e9my maj\u00fa m\u00e1lo spolo\u010dn\u00e9ho s enkapsul\u00e1ciou. V skuto\u010dnosti e\u0161te naopak. Datab\u00e1zy robia v\u0161etko, \u010do m\u00f4\u017eu, aby poskytli pr\u00edstup k \u00fadajom, ktor\u00e9 obsahuj\u00fa. S\u00eddlia s mocn\u00fdm deklarat\u00edvnym rozhran\u00edm, ktor\u00e9 umo\u017e\u0148uje transformova\u0165 \u00fadaje pod\u013ea va\u0161ich potrieb. Tak\u00e1to funkcionalita je d\u00f4le\u017eit\u00e1 v \u0161t\u00e1diu predbe\u017en\u00e9ho v\u00fdskumu, ale nie pre riadenie rast\u00facej zlo\u017eitosti neust\u00e1le sa vyv\u00edjaj\u00facej slu\u017eby.<\/p>\n<p><img decoding=\"async\" alt=\"Dichot\u00f3mia d\u00e1t: prehodnotenie vz\u0165ahu k d\u00e1tam a slu\u017eb\u00e1m\" src=\"\/wp-content\/uploads\/2020\/05\/830465d4aa3bd2e6c02772a982f170bd.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <br \/>\n A tu nast\u00e1va dilema. Rozpor. Dichot\u00f3mia. Predsa len informa\u010dn\u00e9 syst\u00e9my s\u00fa o poskytovan\u00ed \u00fadajov a slu\u017eby s\u00fa o skr\u00fdvan\u00ed.<\/p>\n<p>Tieto dve sily s\u00fa z\u00e1kladn\u00e9. Le\u017eia v z\u00e1klade v\u00e4\u010d\u0161iny na\u0161ej pr\u00e1ce, neust\u00e1le sa sna\u017eiac z\u00edska\u0165 prevahu v syst\u00e9moch, ktor\u00e9 vytv\u00e1rame.<\/p>\n<p>Ako sa syst\u00e9my slu\u017eieb rozrastaj\u00fa a vyv\u00edjaj\u00fa, vid\u00edme r\u00f4zne prejavy d\u00f4sledkov dichot\u00f3mie \u00fadajov. Bu\u010f sa rozhranie slu\u017eby rozrastie, poskytuj\u00fac \u010doraz \u0161ir\u0161iu \u0161k\u00e1lu funkci\u00ed a za\u010dne vyzera\u0165 ako ve\u013emi podivn\u00e1 dom\u00e1ca datab\u00e1za, alebo n\u00e1s postihne sklamanie a realizujeme nejak\u00fd sp\u00f4sob mas\u00edvneho extrahovania alebo pres\u00favania cel\u00fdch s\u00faborov \u00fadajov zo slu\u017eby do slu\u017eby.<\/p>\n<p><img decoding=\"async\" alt=\"Dichot\u00f3mia d\u00e1t: prehodnotenie vz\u0165ahu k d\u00e1tam a slu\u017eb\u00e1m\" src=\"\/wp-content\/uploads\/2020\/05\/da718c87570a4eb20b18f9c880ae8a1b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <br \/>\n Navy\u0161e vytvorenie nie\u010doho, \u010do vyzer\u00e1 ako podivn\u00e1 dom\u00e1ca datab\u00e1za, prinesie cel\u00fa radu probl\u00e9mov. Nebudeme sa zaobera\u0165 podrobnos\u0165ami o tom, \u010d\u00edm je nebezpe\u010dn\u00e1 <i>zdie\u013ean\u00e1 datab\u00e1za<\/i>, jednoducho povedzme, \u017ee predstavuje zna\u010dn\u00e9 n\u00e1kladn\u00e9 in\u017einierske a prev\u00e1dzkov\u00e9 <noindex><a rel=\"nofollow\" href=\"http:\/\/microservices.io\/patterns\/data\/shared-database.html\">\u0165a\u017ekosti<\/a><\/noindex> pre spolo\u010dnos\u0165, ktor\u00e1 sa ju sna\u017e\u00ed pou\u017e\u00edva\u0165.<\/p>\n<p>Hor\u0161ie je, \u017ee objemy \u00fadajov zn\u00e1sobuj\u00fa probl\u00e9my s hranicami slu\u017eieb. \u010c\u00edm viac spolo\u010dn\u00fdch \u00fadajov je v r\u00e1mci slu\u017eby, t\u00fdm zlo\u017eitej\u0161ie sa stane rozhranie a t\u00fdm \u0165a\u017e\u0161ie bude spoji\u0165 s\u00fabory \u00fadajov prich\u00e1dzaj\u00face z r\u00f4znych slu\u017eieb.<\/p>\n<p>Alternat\u00edvny pr\u00edstup s extrahovan\u00edm a pres\u00favan\u00edm cel\u00fdch s\u00faborov \u00fadajov m\u00e1 tie\u017e svoje probl\u00e9my. Be\u017en\u00fd pr\u00edstup k tejto ot\u00e1zke vyzer\u00e1 ako jednoduch\u00e9 extrahovanie a ukladanie s\u00faboru \u00fadajov v celku, a potom jeho ulo\u017eenie lok\u00e1lne v ka\u017edej slu\u017ebe-spotrebite\u013eovi.<\/p>\n<p><img decoding=\"async\" alt=\"Dichot\u00f3mia d\u00e1t: prehodnotenie vz\u0165ahu k d\u00e1tam a slu\u017eb\u00e1m\" src=\"\/wp-content\/uploads\/2020\/05\/63934c6876cb89e87155d4c097657617.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <br \/>\n Probl\u00e9m je v tom, \u017ee r\u00f4zne slu\u017eby interpretuj\u00fa \u00fadaje, ktor\u00e9 spotreb\u00favaj\u00fa, r\u00f4zne. Tieto \u00fadaje s\u00fa v\u017edy po ruke. Menia sa a spracov\u00e1vaj\u00fa lok\u00e1lne. \u010coskoro prestan\u00fa ma\u0165 nie\u010do spolo\u010dn\u00e9 s \u00fadajmi v zdroji.<\/p>\n<p><img decoding=\"async\" alt=\"Dichot\u00f3mia d\u00e1t: prehodnotenie vz\u0165ahu k d\u00e1tam a slu\u017eb\u00e1m\" src=\"\/wp-content\/uploads\/2020\/05\/616e390ad3df3317ac34ac8d861ce804.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <i>\u010c\u00edm viac s\u00fa k\u00f3pie mutabiln\u00e9, t\u00fdm viac sa \u00fadaje bud\u00fa l\u00ed\u0161i\u0165 s \u010dasom.<\/i><\/p>\n<p>E\u0161te hor\u0161ie je, \u017ee tak\u00e9to \u00fadaje je \u0165a\u017ek\u00e9 opravi\u0165 sp\u00e4tne (<noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Master_data_management\">MDM<\/a><\/noindex> tu m\u00f4\u017ee naozaj pr\u00eds\u0165 na pomoc). V skuto\u010dnosti niektor\u00e9 z \u0165a\u017eko rie\u0161ite\u013en\u00fdch technick\u00fdch probl\u00e9mov, ktor\u00fdm \u010del\u00ed biznis, vznikaj\u00fa z rozli\u010dn\u00fdch \u00fadajov, ktor\u00e9 sa mno\u017eia z aplik\u00e1cie na aplik\u00e1ciu.<\/p>\n<p>Aby sme na\u0161li rie\u0161enie tohto probl\u00e9mu so spolo\u010dn\u00fdmi \u00fadajmi, mus\u00edme myslie\u0165 inak. Mali by sa sta\u0165 objektmi prvej triedy v architekt\u00farach, ktor\u00e9 budujeme. <noindex><a rel=\"nofollow\" href=\"http:\/\/cidrdb.org\/cidr2005\/papers\/P12.pdf\">Pat Helland<\/a><\/noindex> naz\u00fdva tak\u00e9to \u00fadaje \u201eextern\u00fdmi\u201c, a to je ve\u013emi d\u00f4le\u017eit\u00e1 vlastnos\u0165. Potrebujeme enkapsul\u00e1ciu, aby sme neodhalili vn\u00fatorn\u00fa \u0161trukt\u00faru slu\u017eby, ale mus\u00edme u\u013eah\u010di\u0165 slu\u017eb\u00e1m pr\u00edstup k zdie\u013ean\u00fdm \u00fadajom, aby mohli spr\u00e1vne vykon\u00e1va\u0165 svoju pr\u00e1cu.<\/p>\n<p><img decoding=\"async\" alt=\"Dichot\u00f3mia d\u00e1t: prehodnotenie vz\u0165ahu k d\u00e1tam a slu\u017eb\u00e1m\" src=\"\/wp-content\/uploads\/2020\/05\/9703ffdbb528320edc62ee7a680a3258.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <br \/>\n Probl\u00e9m spo\u010d\u00edva v tom, \u017ee \u017eiaden z pr\u00edstupov dnes u\u017e nie je aktu\u00e1lny, preto\u017ee ani rozhrania slu\u017eby, ani v\u00fdmena spr\u00e1v, ani zdie\u013ean\u00e1 datab\u00e1za nenab\u00edzaj\u00fa dobr\u00e9 rie\u0161enie na pr\u00e1cu s extern\u00fdmi \u00fadajmi. Rozhrania slu\u017eby s\u00fa nevhodn\u00e9 na v\u00fdmenu \u00fadajov v akomko\u013evek rozsahu. V\u00fdmena spr\u00e1v pren\u00e1\u0161a \u00fadaje, ale neuchov\u00e1va ich hist\u00f3riu, preto sa \u010dasom \u00fadaje po\u0161kodzuj\u00fa. Zdie\u013ean\u00e9 datab\u00e1zy s\u00fa pr\u00edli\u0161 zameran\u00e9 na jedno miesto, \u010do obmedzuje pokrok. Nevyhnutne sa ocit\u00e1me v cykle nefunk\u010dn\u00fdch \u00fadajov:<\/p>\n<p><img decoding=\"async\" alt=\"Dichot\u00f3mia d\u00e1t: prehodnotenie vz\u0165ahu k d\u00e1tam a slu\u017eb\u00e1m\" src=\"\/wp-content\/uploads\/2020\/05\/f17ac7063a813cb76bad71ae8622912c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <i>Cyklus nefunk\u010dn\u00fdch \u00fadajov<\/i><\/p>\n<h3>Toky: decentralizovan\u00fd pr\u00edstup k \u00fadajom a slu\u017eb\u00e1m<\/h3>\n<p>\n Ide\u00e1lne by sme mali zmeni\u0165 pr\u00edstup k tomu, ako slu\u017eby pracuj\u00fa so zdie\u013ean\u00fdmi \u00fadajmi. V s\u00fa\u010dasnosti sa ak\u00fdko\u013evek pr\u00edstup stret\u00e1va s vy\u0161\u0161ie uvedenou dichot\u00f3miou, preto\u017ee neexistuje \u017eiadny \u010darovn\u00fd pr\u00e1\u0161ok, ktor\u00fdm by sme to mohli \u0161tedro posypa\u0165 a necha\u0165 to zmizn\u00fa\u0165. M\u00f4\u017eeme v\u0161ak prekona\u0165 probl\u00e9m a dosiahnu\u0165 kompromis.<\/p>\n<p>Tento kompromis predpoklad\u00e1 ur\u010dit\u00fa \u00farove\u0148 centraliz\u00e1cie. M\u00f4\u017eeme vyu\u017ei\u0165 mechanizmus distribuovan\u00fdch logov, preto\u017ee zabezpe\u010duje spo\u013eahliv\u00e9 a \u0161k\u00e1lovate\u013en\u00e9 toky. Teraz potrebujeme, aby sa slu\u017eby mohli pripoji\u0165 a pracova\u0165 s t\u00fdmito zdie\u013ean\u00fdmi tokmi, av\u0161ak chceme sa vyhn\u00fa\u0165 zlo\u017eit\u00fdm centralizovan\u00fdm slu\u017eb\u00e1m, ktor\u00e9 t\u00fato pr\u00e1cu vykon\u00e1vaj\u00fa. Preto je najlep\u0161ou mo\u017enos\u0165ou integrova\u0165 spracovanie toku do ka\u017edej slu\u017eby-spotrebite\u013ea. Tak slu\u017eby bud\u00fa schopn\u00e9 spoji\u0165 s\u00fabory \u00fadajov z r\u00f4znych zdrojov a pracova\u0165 s nimi tak, ako potrebuj\u00fa.<\/p>\n<p>Jedn\u00fdm zo sp\u00f4sobov, ako dosiahnu\u0165 tak\u00fdto pr\u00edstup, je pou\u017eitie streamingovej platformy. Existuje mnoho mo\u017enost\u00ed, ale dnes sa zameriame pr\u00e1ve na Kafka, preto\u017ee vyu\u017eitie jej Stateful Stream Processing, umo\u017e\u0148uje efekt\u00edvne rie\u0161i\u0165 predstaven\u00fd probl\u00e9m.<\/p>\n<p><img decoding=\"async\" alt=\"Dichot\u00f3mia d\u00e1t: prehodnotenie vz\u0165ahu k d\u00e1tam a slu\u017eb\u00e1m\" src=\"\/wp-content\/uploads\/2020\/05\/353c7f12af87901e721abb7ea92d8196.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <br \/>\n Pou\u017eitie mechanizmu distribuovan\u00e9ho logovania n\u00e1m umo\u017e\u0148uje \u00eds\u0165 po vysk\u00fa\u0161anej ceste a vyu\u017e\u00edva\u0165 v\u00fdmenu spr\u00e1v, aby sme pracovali s <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Event-driven_architecture\">architekt\u00fara orientovan\u00e1 na udalosti<\/a><\/noindex>. Predpoklad\u00e1 sa, \u017ee tento pr\u00edstup zais\u0165uje lep\u0161ie \u0161k\u00e1lovanie a rozdelenie ako mechanizmus \u201epo\u017eiadavka-odpove\u010f\u201c, ke\u010f\u017ee d\u00e1va kontrolu nad tokom prij\u00edmate\u013eovi, nie odosielate\u013eovi. Ale za v\u0161etko v tomto \u017eivote sa mus\u00ed plati\u0165, a tu budete potrebova\u0165 broker. Pre ve\u013ek\u00e9 syst\u00e9my v\u0161ak tento kompromis stoj\u00ed za to (\u010do sa ned\u00e1 poveda\u0165 o va\u0161ich priemern\u00fdch webov\u00fdch aplik\u00e1ci\u00e1ch).<\/p>\n<p>Ak za distribuovan\u00e9 logovanie zodpoved\u00e1 broker, nie tradi\u010dn\u00fd syst\u00e9m v\u00fdmeny spr\u00e1v, m\u00f4\u017eete vyu\u017ei\u0165 \u010fal\u0161ie funkcie. Transport sa d\u00e1 line\u00e1rne \u0161k\u00e1lova\u0165 tak dobre, ako distribuovan\u00fd s\u00faborov\u00fd syst\u00e9m. D\u00e1ta m\u00f4\u017eu by\u0165 uchov\u00e1van\u00e9 v logoch dostato\u010dne dlho, tak\u017ee z\u00edskavame nielen v\u00fdmenu spr\u00e1v, ale aj \u00falo\u017eisko inform\u00e1ci\u00ed. \u0160k\u00e1lovate\u013en\u00e9 \u00falo\u017eisko bez ob\u00e1v o zmenite\u013en\u00fd spolo\u010dn\u00fd stav.<\/p>\n<p>N\u00e1sledne m\u00f4\u017eete vyu\u017ei\u0165 mechanizmus spracovania pr\u00fadu so zachovan\u00edm stavu (stateful stream processing) na pridanie deklarat\u00edvnych n\u00e1strojov datab\u00e1zy do spotrebite\u013esk\u00fdch slu\u017eieb. To je ve\u013emi d\u00f4le\u017eit\u00e1 my\u0161lienka. K\u00fdm s\u00fa d\u00e1ta uchov\u00e1van\u00e9 v spolo\u010dn\u00fdch pr\u00fadoch, ku ktor\u00fdm maj\u00fa pr\u00edstup v\u0161etky slu\u017eby, zlu\u010dovanie a spracovanie, ktor\u00e9 slu\u017eba vykon\u00e1va, s\u00fa s\u00fakromn\u00e9. Nach\u00e1dzaj\u00fa sa v izolovanom a jasne obmedzenom kontexte.<\/p>\n<p><img decoding=\"async\" alt=\"Dichot\u00f3mia d\u00e1t: prehodnotenie vz\u0165ahu k d\u00e1tam a slu\u017eb\u00e1m\" src=\"\/wp-content\/uploads\/2020\/05\/01c8beabb9a02e4c06dffb84f9161324.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <i>Zbavte sa dichot\u00f3mie d\u00e1t rozdelen\u00edm nemenn\u00e9ho pr\u00fadu stavov. Potom t\u00fato funkciu pridajte do ka\u017edej slu\u017eby pomocou spracovania pr\u00fadu so zachovan\u00edm stavu.<\/i><\/p>\n<p>Tak\u017ee ak va\u0161a slu\u017eba mus\u00ed pracova\u0165 s objedn\u00e1vkami, produktov\u00fdm katal\u00f3gom, skladom, bude ma\u0165 \u00fapln\u00fd pr\u00edstup: len vy rozhodujete, ak\u00e9 d\u00e1ta zl\u00fa\u010di\u0165, kde ich spracova\u0165 a ako by sa mali v priebehu \u010dasu meni\u0165. Napriek tomu, \u017ee s\u00fa d\u00e1ta spolo\u010dn\u00e9, pr\u00e1ca s nimi je \u00faplne decentralizovan\u00e1. Prebieha v r\u00e1mci ka\u017edej slu\u017eby, v svete, kde v\u0161etko ide pod\u013ea va\u0161ich pravidiel.<\/p>\n<p><img decoding=\"async\" alt=\"Dichot\u00f3mia d\u00e1t: prehodnotenie vz\u0165ahu k d\u00e1tam a slu\u017eb\u00e1m\" src=\"\/wp-content\/uploads\/2020\/05\/4b2635ad8ddd18f455eea654e472f85e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Zdie\u013eajte d\u00e1ta tak, aby sa neporu\u0161ila ich integrita. Inkapsulujte funkciu, nie zdroj, v ka\u017edej slu\u017ebe, ktorej je potrebn\u00e1.<\/i><\/p>\n<p>Niekedy nastane situ\u00e1cia, \u017ee je potrebn\u00e9 prenies\u0165 ve\u013ek\u00e9 mno\u017estvo d\u00e1t. Niekedy slu\u017eby potrebuj\u00fa lok\u00e1lny historick\u00fd s\u00fabor \u00fadajov vo zvolenom datab\u00e1zovom eng\u00edne. K\u013e\u00fa\u010dov\u00fdm je, \u017ee sa d\u00e1 zaru\u010di\u0165, \u017ee ak je to potrebn\u00e9, k\u00f3pia m\u00f4\u017ee by\u0165 obnoven\u00e1 zo zdroja prostredn\u00edctvom distribuovan\u00e9ho logovania. Konektory v Kafke v\u00fdborne zvl\u00e1daj\u00fa t\u00fato \u00falohu.<\/p>\n<p>Tak\u017ee uveden\u00fd pr\u00edstup m\u00e1 nieko\u013eko v\u00fdhod:<\/p>\n<ul>\n<li>\u00dadaje sa pou\u017e\u00edvaj\u00fa ako spolo\u010dn\u00e9 toky, ktor\u00e9 m\u00f4\u017eu by\u0165 dlhodobo uchov\u00e1van\u00e9 v logoch, pri\u010dom mechanizmus pr\u00e1ce so spolo\u010dn\u00fdmi \u00fadajmi je zak\u00f3dovan\u00fd v ka\u017edom jednotlivom kontexte, \u010do umo\u017e\u0148uje slu\u017eb\u00e1m fungova\u0165 jednoducho a r\u00fdchlo. Tak\u00fdmto sp\u00f4sobom m\u00f4\u017eeme vyv\u00e1\u017ei\u0165 dichot\u00f3miu \u00fadajov.<\/li>\n<li>\u00dadaje prich\u00e1dzaj\u00face z r\u00f4znych slu\u017eieb sa m\u00f4\u017eu \u013eahko kombinova\u0165 do s\u00faborov. T\u00fdmto sa zjednodu\u0161uje interakcia so spolo\u010dn\u00fdmi \u00fadajmi a mizne potreba udr\u017eiava\u0165 lok\u00e1lne s\u00fabory \u00fadajov v datab\u00e1ze.<\/li>\n<li>Stateful Stream Processing len ukladaj\u00fa \u00fadaje do cache, pri\u010dom zdrojom pravdy zost\u00e1vaj\u00fa spolo\u010dn\u00e9 logy, tak\u017ee probl\u00e9m po\u0161kodenia \u00fadajov \u010dasom nie je tak naliehav\u00fd.<\/li>\n<li>V podstate, slu\u017eby s\u00fa riaden\u00e9 \u00fadajmi, to znamen\u00e1, \u017ee napriek neust\u00e1lemu rastu objemov \u00fadajov m\u00f4\u017eu slu\u017eby st\u00e1le r\u00fdchlo reagova\u0165 na obchodn\u00e9 udalosti.<\/li>\n<li>Probl\u00e9my so \u0161k\u00e1lovan\u00edm le\u017eia na brokerovi, nie na slu\u017eb\u00e1ch. T\u00fdmto sa v\u00fdrazne zni\u017euje zlo\u017eitosti p\u00edsania slu\u017eieb, preto\u017ee nie je potrebn\u00e9 prem\u00fd\u0161\u013ea\u0165 o \u0161k\u00e1lovan\u00ed.<\/li>\n<li>Pridanie nov\u00fdch slu\u017eieb si nevy\u017eaduje zmeny star\u00fdch, tak\u017ee pripojenie nov\u00fdch slu\u017eieb sa st\u00e1va jednoduch\u0161\u00edm.<\/li>\n<\/ul>\n<p>\nAko vid\u00edte, je to viac ne\u017e len REST. Z\u00edskali sme s\u00fabor n\u00e1strojov, ktor\u00fd umo\u017e\u0148uje decentralizovan\u00fa pr\u00e1cu so spolo\u010dn\u00fdmi \u00fadajmi.<\/p>\n<p>Dne\u0161n\u00fd \u010dl\u00e1nok sa nevenuje v\u0161etk\u00fdm aspektom. E\u0161te sa mus\u00edme rozhodn\u00fa\u0165, ako vyv\u00e1\u017ei\u0165 medzi paradigmi \"po\u017eiadavka-odpove\u010f\" a udalos\u0165ou orientovanou paradigmat. Ale s t\u00fdm sa vyrovn\u00e1me nabud\u00face. Existuj\u00fa t\u00e9my, ktor\u00e9 si zasl\u00fa\u017eia lep\u0161ie porozumenie, napr\u00edklad, pre\u010do je Stateful Stream Processing tak\u00fd dobr\u00fd. O tomto budeme hovori\u0165 v tre\u0165om \u010dl\u00e1nku. A s\u00fa tu aj in\u00e9 mocn\u00e9 kon\u0161trukcie, ktor\u00e9 m\u00f4\u017eeme vyu\u017ei\u0165, ak sa na ne odvol\u00e1me, napr\u00edklad, <noindex><a rel=\"nofollow\" href=\"https:\/\/cwiki.apache.org\/confluence\/display\/KAFKA\/KIP-98+-+Exactly+Once+Delivery+and+Transactional+Messaging\">Presne raz spracovanie<\/a><\/noindex>. Jej prostredn\u00edctvom sa menia pravidl\u00e1 hry pre distribuovan\u00e9 obchodn\u00e9 syst\u00e9my, preto\u017ee tento koncept poskytuje transak\u010dn\u00e9 z\u00e1ruky pre <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/X\/Open_XA\">XA<\/a><\/noindex> \u0161k\u00e1lovate\u013en\u00fa formu. O tom bude re\u010d v \u0161tvrtom \u010dl\u00e1nku. A nakoniec, mus\u00edme sa pozrie\u0165 na detaily realiz\u00e1cie t\u00fdchto princ\u00edpov.<\/p>\n<p><img decoding=\"async\" alt=\"Dichot\u00f3mia d\u00e1t: prehodnotenie vz\u0165ahu k d\u00e1tam a slu\u017eb\u00e1m\" src=\"\/wp-content\/uploads\/2020\/05\/f66eadcc538cf3da74ccb120e1de2ae7.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAle zatia\u013e si zapam\u00e4tajte nasleduj\u00face: dichot\u00f3mia d\u00e1t \u2013 to je t\u00e1 sila, s ktorou sa stret\u00e1vame pri vytv\u00e1ran\u00ed obchodn\u00fdch slu\u017eieb. A mus\u00edme na to pam\u00e4ta\u0165. Zameranie spo\u010d\u00edva v tom, aby sme obr\u00e1tili v\u0161etko naruby a za\u010dali pova\u017eova\u0165 spolo\u010dn\u00e9 d\u00e1ta za prvotriedne objekty. Stateful Stream Processing poskytuje pre to jedine\u010dn\u00fd kompromis. Vyh\u00fdba sa centralizovan\u00fdm \"God Components\", ktor\u00e9 brzdia pokrok. Navy\u0161e zais\u0165uje operabilitu, \u0161k\u00e1lovate\u013enos\u0165 a odolnos\u0165 d\u00e1tov\u00fdch streamingov\u00fdch potrub\u00ed a prid\u00e1va ich do ka\u017edej slu\u017eby. Tak sa m\u00f4\u017eeme s\u00fastredi\u0165 na spolo\u010dn\u00fd tok vedomia, ku ktor\u00e9mu sa m\u00f4\u017ee pripoji\u0165 ak\u00e1ko\u013evek slu\u017eba a pracova\u0165 s jej d\u00e1tami. Tak s\u00fa slu\u017eby viac \u0161k\u00e1lovate\u013en\u00e9, zameni\u0165eln\u00e9 a auton\u00f3mne. Preto bud\u00fa nielen dobre vyzera\u0165 na markeroch a pri overovan\u00ed hypot\u00e9z, ale aj fungova\u0165 a rozv\u00edja\u0165 sa cel\u00e9 desa\u0165ro\u010dia. <\/p>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/rVZl\/\">Zisti\u0165 viac o kurze.<br \/>\n<\/a><\/noindex><\/p>\n<p>Zdroj: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/504310\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442! \u0423 \u043d\u0430\u0441 \u043e\u0442\u043b\u0438\u0447\u043d\u044b\u0435 \u043d\u043e\u0432\u043e\u0441\u0442\u0438, \u0432 \u0438\u044e\u043d\u0435 OTUS \u0441\u043d\u043e\u0432\u0430 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u043a\u0443\u0440\u0441 \u00ab\u0410\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u043e\u0440 \u041f\u041e\u00bb, \u0432 \u0441\u0432\u044f\u0437\u0438 \u0441 \u0447\u0435\u043c \u043c\u044b \u0442\u0440\u0430\u0434\u0438\u0446\u0438\u043e\u043d\u043d\u043e \u0434\u0435\u043b\u0438\u043c\u0441\u044f \u0441 \u0432\u0430\u043c\u0438 \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u043c \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u043e\u043c. \u0415\u0441\u043b\u0438 \u0432\u044b \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0438\u0441\u044c \u0441\u043e \u0432\u0441\u0435\u0439 \u044d\u0442\u043e\u0439 \u0438\u0441\u0442\u043e\u0440\u0438\u0435\u0439 \u0441 \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u0430\u043c\u0438 \u0431\u0435\u0437 \u043a\u0430\u043a\u043e\u0433\u043e-\u043b\u0438\u0431\u043e \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0430, \u0442\u043e \u0432\u0430\u043c \u043f\u0440\u043e\u0441\u0442\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0435\u0435 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0441\u0442\u0440\u0430\u043d\u043d\u043e\u0439. \u0420\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043d\u0430 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u044b, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0431\u043e\u0439 \u0441\u0435\u0442\u044c\u044e, \u043d\u0435\u043f\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":83249,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-83248","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\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442!\" \/>\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\/dihotomiya-dannyh-pereosmyslenie-otnosheniya-k-dannym-i-servisam\" \/>\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\u0414\u0438\u0445\u043e\u0442\u043e\u043c\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445: \u043f\u0435\u0440\u0435\u043e\u0441\u043c\u044b\u0441\u043b\u0435\u043d\u0438\u0435 \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u044f \u043a \u0434\u0430\u043d\u043d\u044b\u043c \u0438 \u0441\u0435\u0440\u0432\u0438\u0441\u0430\u043c | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442!\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sk\/blog\/administrirovanie\/dihotomiya-dannyh-pereosmyslenie-otnosheniya-k-dannym-i-servisam\" \/>\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-05-29T17:42:48+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-05-29T17:42:48+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\udd47Dichot\u00f3mia d\u00e1t: prehodnotenie vz\u0165ahu k d\u00e1tam a slu\u017eb\u00e1m | ProHoster","description":"Ahojte v\u0161etci!","canonical_url":"https:\/\/prohoster.info\/sk\/blog\/administrirovanie\/dihotomiya-dannyh-pereosmyslenie-otnosheniya-k-dannym-i-servisam","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\u0414\u0438\u0445\u043e\u0442\u043e\u043c\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445: \u043f\u0435\u0440\u0435\u043e\u0441\u043c\u044b\u0441\u043b\u0435\u043d\u0438\u0435 \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u044f \u043a \u0434\u0430\u043d\u043d\u044b\u043c \u0438 \u0441\u0435\u0440\u0432\u0438\u0441\u0430\u043c | ProHoster","og:description":"\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442!","og:url":"https:\/\/prohoster.info\/sk\/blog\/administrirovanie\/dihotomiya-dannyh-pereosmyslenie-otnosheniya-k-dannym-i-servisam","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-05-29T17:42:48+00:00","article:modified_time":"2020-05-29T17:42:48+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"83248","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 15:22:24","updated":"2022-09-30 09:53:41","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\/83248","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=83248"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts\/83248\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/media\/83249"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/media?parent=83248"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/categories?post=83248"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/tags?post=83248"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}