{"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\/sl\/blog\/administrirovanie\/dihotomiya-dannyh-pereosmyslenie-otnosheniya-k-dannym-i-servisam","title":{"rendered":"Dikotomija podatkov: prenova odnosa do podatkov in storitev","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><i><b>Pozdravljeni! Imamo odli\u010dne novice, junija OTUS ponovno za\u010denja te\u010daj <noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/rVZl\/\">\u00bbArhitekt programske opreme\u00ab<\/a><\/noindex>, zato tradicionalno z vami delimo koristne materiale.<\/b><\/i><\/p>\n<p><img decoding=\"async\" alt=\"Dikotomija podatkov: prenova odnosa do podatkov in storitev\" src=\"\/wp-content\/uploads\/2020\/05\/6092ffb23e765239b4a8f27d4a0cb846.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n \u010ce ste se sre\u010dali s to zgodbo o mikroservisih brez kakr\u0161negakoli konteksta, vam je lahko opro\u0161\u010deno, da jo imate za nekoliko nenavadno. Razdelitev aplikacije na ko\u0161\u010dke, med seboj povezane v omre\u017eju, nujno pomeni dodajanje kompleksnih na\u010dinov odpornosti na napake v nastalo razdeljeno sistem. <\/p>\n<p>Kljub temu, da tak pristop vklju\u010duje razdelitev na \u0161tevilne neodvisne storitve, je kon\u010dni cilj veliko ve\u010d kot le delovanje teh storitev na razli\u010dnih napravah. Gre za interakcijo z okoljem, ki je po svoji naravi prav tako razdeljeno. Ne v tehni\u010dnem smislu, temve\u010d bolj v smislu ekosistema, ki ga sestavlja mnogo ljudi, ekip, programov, pri \u010demer mora vsak del nekako opravljati svoje delo.<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Podjetja na primer predstavljajo zbirko razdeljenih sistemov, ki skupaj prispevajo k doseganju dolo\u010denega cilja. Ta dejstvo smo zanemarjali desetletja, medtem ko smo se trudili dose\u010di integracijo, prena\u0161ali datoteke prek FTP ali uporabljali orodja za podjetni\u0161ko integracijo, pri \u010demer smo se osredoto\u010dali na svoje osebne cilje. A s prihodom storitev se je vse spremenilo. Storitve so nam pomagale pogledati \u010dez obzorje in videti svet medsebojno povezanih programov, ki delujejo skupaj. Vendar pa je za uspe\u0161no delovanje potrebno razumeti in zasnovati dva temeljno razli\u010dna sveta: zunanji svet, kjer \u017eivimo v ekosistemu \u0161tevilnih drugih storitev, in na\u0161 osebni, notranji svet, kjer vlada Solo.<\/p>\n<p><img decoding=\"async\" alt=\"Dikotomija podatkov: prenova odnosa do podatkov in storitev\" src=\"\/wp-content\/uploads\/2020\/05\/93f535f6f3319d7b2829d35c0fe1c48f.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <br \/>\n Ta razdeljen svet se razlikuje od tistega, v katerem smo odra\u0161\u010dali in na katerega smo navajeni. Na\u010dela oblikovanja tradicionalne monolitne arhitekture ne prenesejo nobene kritike. Zato je pravilno razumevanje takih sistemov nekaj ve\u010d kot le ustvarjanje super sheme na beli markerni tabli ali kul dokaz koncepta. Gre za to, da tak sistem uspe\u0161no deluje dolgotrajno. Na sre\u010do storitve obstajajo \u017ee kar dolgo, \u010deprav izgledajo razli\u010dno. <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Service-oriented_architecture\">Lekcije SOA<\/a><\/noindex> \u0161e vedno velja, kljub dodatkom Docker, Kubernetes in nekoliko zanemarjenim hipsterskim bradam. <\/p>\n<p>Torej danes bomo pogledali, kako so se pravila spremenila, zakaj moramo predelati na\u0161 pristop k storitvam in podatkom, ki si jih izmenjujejo, ter zakaj bomo potrebovali povsem druga\u010dna orodja.<\/p>\n<h3>Inkapzulacija vam ne bo vedno v pomo\u010d.<\/h3>\n<p>\n Mikrostoritve lahko delujejo neodvisno ena od druge. To lastnost jim daje najve\u010djo vrednost. Ta lastnost omogo\u010da storitvam, da se raz\u0161irijo in rastejo. Ne toliko v smislu raz\u0161irjanja na kvadrilijone uporabnikov ali petabajte podatkov (\u010deprav lahko tudi pri tem pomagajo), ampak v smislu raz\u0161irjanja z vidika ljudi, saj ekipe in organizacije nenehno rastejo.<\/p>\n<p><img decoding=\"async\" alt=\"Dikotomija podatkov: prenova odnosa do podatkov in storitev\" src=\"\/wp-content\/uploads\/2020\/05\/ec36218b6152c2b713f72689b4ea6916.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nVendar pa je neodvisnost dvorezni me\u010d. To pomeni, da se storitev sama lahko izvaja enostavno in brez te\u017eav. Toda, \u010de v storitvi izvedemo funkcijo, ki zahteva vklju\u010ditev druge storitve, bomo na koncu morali spremeniti obe storitvi skoraj hkrati. Pri monolitu je to enostavno, preprosto spremenite in po\u0161ljete v izdajo, medtem ko se pri usklajevanju neodvisnih storitev pojavlja ve\u010d te\u017eav. Koordinacija med ekipami in izdajnimi cikli ru\u0161i pro\u017enost.<\/p>\n<p><img decoding=\"async\" alt=\"Dikotomija podatkov: prenova odnosa do podatkov in storitev\" src=\"\/wp-content\/uploads\/2020\/05\/5fc993636f29e9eb9831d05cbc0bd7f8.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nV okviru standardnega pristopa se sku\u0161ajo nadle\u017enim pre\u010dnim spremembam preprosto izogniti, tako da jasno lo\u010dijo funkcionalnost med storitvami. Storitev enotne to\u010dke dostopa je lahko dober primer tega. Ima jasno opredeljeno vlogo, ki jo lo\u010duje od drugih storitev. Tak\u0161na jasna razdelitev pomeni, da v svetu hitro spreminjajo\u010dih se zahtev do okoli\u0161kih storitev storitev enotne to\u010dke dostopa verjetno ne bo veliko spreminjala. Deluje v strogo omejenem kontekstu.<\/p>\n<p><img decoding=\"async\" alt=\"Dikotomija podatkov: prenova odnosa do podatkov in storitev\" src=\"\/wp-content\/uploads\/2020\/05\/095fd7a6e02ead4924abf180e3b1d26b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <br \/>\n Te\u017eava je v tem, da v resni\u010dnem svetu poslovne storitve ne morejo nenehno vzdr\u017eevati popolne lo\u010denosti vlog. Na primer, te iste poslovne storitve v ve\u010dji meri delujejo z podatki, ki jih prejmejo od drugih takih storitev. \u010ce se ukvarjate z elektronsko trgovino, bo obdelava toka naro\u010dil, kataloga izdelkov ali informacij o uporabnikih postala zahteva za mnoge va\u0161e storitve. Vsaki od storitev bo za delovanje potreboval dostop do teh podatkov. <\/p>\n<p><img decoding=\"async\" alt=\"Dikotomija podatkov: prenova odnosa do podatkov in storitev\" src=\"\/wp-content\/uploads\/2020\/05\/2a3d23850c88d574c990dfdc6015072c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Ve\u010dina poslovnih storitev uporablja isti tok podatkov, zato se njihovo delovanje neizogibno prepleta.<\/i><\/p>\n<p>Tako smo pri\u0161li do pomembne to\u010dke, o kateri je vredno govoriti. Medtem ko storitve dobro delujejo za komponente infrastrukture, ki delujejo v veliki meri lo\u010deno, se ve\u010dina poslovnih storitev izka\u017ee za tesno prepleteno.<\/p>\n<h3>Dikotomija podatkov<\/h3>\n<p>\n Pristopi, usmerjeni v storitve, morda \u017ee obstajajo, vendar \u0161e vedno ni veliko informacij o tem, kako izmenjavati velike koli\u010dine podatkov med storitvami.<\/p>\n<p>Glavna te\u017eava je, da sta podatka in storitve nedeljiva. Po eni strani nas inkapsulacija poziva, naj skrijemo podatke, da lahko storitve lo\u010dimo druga od druge in olaj\u0161amo njihovo rast in nadaljnje spremembe. Po drugi strani pa moramo imeti mo\u017enost svobodno deliti in imeti oblast nad skupnimi podatki, tako kot nad katerimikoli drugimi. Gre za to, da imamo mo\u017enost takoj za\u010deti delati, tako svobodno, kot v kateri koli drugi informacijski sistem.<\/p>\n<p>Vendar pa imajo informacijski sistemi malo skupnega z inkapsulacijo. Dejansko v nasprotju. Podatkovne baze naredijo vse, kar lahko, da omogo\u010dijo dostop do podatkov, ki jih hranijo. Na voljo so z mo\u010dnim deklarativnim vmesnikom, ki omogo\u010da, da oblikujete podatke, kot \u017eelite. Ta funkcionalnost je pomembna v fazi predhodnih raziskav, ne pa za upravljanje nara\u0161\u010dajo\u010de zapletenosti stalno razvijajo\u010de se storitve.<\/p>\n<p><img decoding=\"async\" alt=\"Dikotomija podatkov: prenova odnosa do podatkov in storitev\" src=\"\/wp-content\/uploads\/2020\/05\/830465d4aa3bd2e6c02772a982f170bd.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <br \/>\n In tukaj se pojavi dilema. Proti govor. Dikotomija. Kajti informacijski sistemi so o zagotavljanju podatkov, storitve pa o skrivanju.<\/p>\n<p>Ti dve sile sta osnovne. Le\u017eijo v temelju ve\u010dine na\u0161ega dela, nenehno se borita za prevlado v sistemih, ki jih ustvarjamo.<\/p>\n<p>Ko se sistemi storitev \u0161irijo in razvijajo, opa\u017eamo razli\u010dne manifestacije posledic dihotomije podatkov. Ali bo vmesnik storitve rasel, ponujal vedno \u0161ir\u0161i nabor funkcij in za\u010denjal izgledati kot zelo \u010dudna doma\u010da baza podatkov, ali pa nas bo doletelo razo\u010daranje in razvili bomo kak\u0161en na\u010din za mno\u017ei\u010dno ekstrakcijo ali premikanje celih nizov podatkov iz storitve v storitev.<\/p>\n<p><img decoding=\"async\" alt=\"Dikotomija podatkov: prenova odnosa do podatkov in storitev\" src=\"\/wp-content\/uploads\/2020\/05\/da718c87570a4eb20b18f9c880ae8a1b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <br \/>\n V samo ustvarjanje \u010desarkoli, kar izgleda kot \u010dudna doma\u010da baza podatkov, privede do vrsto te\u017eav. Ne bomo se poglabljali v podrobnosti tega, kako je nevarna <i>shared database<\/i>, ampak re\u010demo, da prina\u0161a znatne drage in\u017eenirske ter operativne <noindex><a rel=\"nofollow\" href=\"http:\/\/microservices.io\/patterns\/data\/shared-database.html\">te\u017eave<\/a><\/noindex> za podjetje, ki se trudi z njo.<\/p>\n<p>\u0160e slab\u0161e je, da se volumni podatkov pomno\u017eijo te\u017eave z mejami storitev. \u010cim ve\u010d skupnih podatkov le\u017ei znotraj storitve, te\u017eji postane vmesnik in te\u017eje je zdru\u017eiti niz podatkov, ki prihajajo iz razli\u010dnih storitev.<\/p>\n<p>Alternativni pristop z ekstrakcijo in premikanjem celih nizov podatkov prav tako ima svoje te\u017eave. Raz\u0161irjen pristop k temu vpra\u0161anju se zdi preprosta ekstrakcija in hranjenje niza podatkov v celoti, nato pa shranjevanje lokalno v vsakem storitvenem uporabniku.<\/p>\n<p><img decoding=\"async\" alt=\"Dikotomija podatkov: prenova odnosa do podatkov in storitev\" src=\"\/wp-content\/uploads\/2020\/05\/63934c6876cb89e87155d4c097657617.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <br \/>\n Te\u017eava je v tem, da razli\u010dne storitve razli\u010dno interpretirajo podatke, ki jih porabijo. Ti podatki so vedno pri roki. Spremenijo se in obdelajo lokalno. Zelo hitro prenehajo imeti kaj skupnega s podatki v viru.<\/p>\n<p><img decoding=\"async\" alt=\"Dikotomija podatkov: prenova odnosa do podatkov in storitev\" src=\"\/wp-content\/uploads\/2020\/05\/616e390ad3df3317ac34ac8d861ce804.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <i>\u010cim bolj so kopije mutabilne, tem bolj se bodo podatki razlikovali s \u010dasom.<\/i><\/p>\n<p>\u0160e huje, tak\u0161ne podatke je te\u017eko popraviti retrospektivno (<noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Master_data_management\">MDM<\/a><\/noindex> tukaj resni\u010dno lahko pride v pomo\u010d). V resnici nekatere od te\u017eko re\u0161ljivih tehnolo\u0161kih te\u017eav, s katerimi se podjetja soo\u010dajo, izhajajo iz heterogenih podatkov, ki se mno\u017eijo od aplikacije do aplikacije.<\/p>\n<p>Da bi na\u0161li re\u0161itev tega problema o skupnih podatkih, je treba razmi\u0161ljati druga\u010de. Postati morajo objekti prvega razreda v arhitekturah, ki jih gradimo. <noindex><a rel=\"nofollow\" href=\"http:\/\/cidrdb.org\/cidr2005\/papers\/P12.pdf\">Pat Helland<\/a><\/noindex> imenuje takie dane 'zewn\u0119trznymi', co jest bardzo istotn\u0105 cech\u0105. Potrzebujemy enkapsulacji, aby nie ujawnia\u0107 wewn\u0119trznej struktury us\u0142ugi, ale musimy u\u0142atwi\u0107 us\u0142ugom dost\u0119p do wsp\u00f3lnych danych, aby mog\u0142y prawid\u0142owo wykonywa\u0107 swoj\u0105 prac\u0119.<\/p>\n<p><img decoding=\"async\" alt=\"Dikotomija podatkov: prenova odnosa do podatkov in storitev\" src=\"\/wp-content\/uploads\/2020\/05\/9703ffdbb528320edc62ee7a680a3258.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <br \/>\n Problem polega na tym, \u017ce \u017cadne z podej\u015b\u0107 dzisiaj nie jest ju\u017c aktualne, poniewa\u017c ani interfejsy us\u0142ug, ani wymiana wiadomo\u015bci, ani wsp\u00f3lna baza danych nie oferuj\u0105 dobrego rozwi\u0105zania do pracy z danymi zewn\u0119trznymi. Interfejsy us\u0142ug s\u0105 s\u0142abo przystosowane do wymiany danych w jakiejkolwiek skali. Wymiana wiadomo\u015bci przenosi dane, ale nie przechowuje ich historii, przez co z biegiem czasu dane ulegaj\u0105 zniekszta\u0142ceniu. Wsp\u00f3lne bazy danych zbytnio koncentruj\u0105 si\u0119 w jednym punkcie, co ogranicza rozw\u00f3j post\u0119pu. Nieuchronnie utkn\u0119li\u015bmy w cyklu niemo\u017cno\u015bci danych:<\/p>\n<p><img decoding=\"async\" alt=\"Dikotomija podatkov: prenova odnosa do podatkov in storitev\" src=\"\/wp-content\/uploads\/2020\/05\/f17ac7063a813cb76bad71ae8622912c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <i>Cykl niemo\u017cno\u015bci danych<\/i><\/p>\n<h3>Strumienie: zdecentralizowane podej\u015bcie do danych i us\u0142ug<\/h3>\n<p>\n W idealnym \u015bwiecie musimy zmieni\u0107 podej\u015bcie do tego, jak us\u0142ugi pracuj\u0105 z wsp\u00f3lnymi danymi. Na chwil\u0119 obecn\u0105 ka\u017cde podej\u015bcie napotyka wspomnian\u0105 powy\u017cej dychotomi\u0119, poniewa\u017c nie ma \u017cadnego magicznego proszku, kt\u00f3rym mo\u017cna by to obficie posypa\u0107, aby to znikn\u0119\u0142o. Mo\u017cemy jednak przemy\u015ble\u0107 problem i doj\u015b\u0107 do kompromisu.<\/p>\n<p>Ten kompromis zak\u0142ada pewien stopie\u0144 centralizacji. Mo\u017cemy skorzysta\u0107 z mechanizmu rozproszonych log\u00f3w, poniewa\u017c zapewnia on niezawodne, skalowalne strumienie. Teraz us\u0142ugi musz\u0105 m\u00f3c do\u0142\u0105cza\u0107 i pracowa\u0107 z tymi wsp\u00f3lnymi strumieniami, jednak chcemy unikn\u0105\u0107 skomplikowanych, scentralizowanych us\u0142ug God Service, kt\u00f3re wykonuj\u0105 takie przetwarzanie. Dlatego najlepsz\u0105 opcj\u0105 jest wbudowanie przetwarzania strumieniowego w ka\u017cd\u0105 us\u0142ug\u0119-konsumenta. W ten spos\u00f3b us\u0142ugi b\u0119d\u0105 mog\u0142y \u0142\u0105czy\u0107 zbiory danych z r\u00f3\u017cnych \u017ar\u00f3de\u0142 i pracowa\u0107 z nimi w spos\u00f3b, kt\u00f3ry jest im potrzebny.<\/p>\n<p>Jednym ze sposob\u00f3w dotarcia do takiego podej\u015bcia jest wykorzystanie platformy strumieniowej. Istnieje wiele opcji, ale dzisiaj przyjrzymy si\u0119 dok\u0142adnie Kafka, poniewa\u017c jej Stateful Stream Processing skutecznie rozwi\u0105zuje przedstawiony problem.<\/p>\n<p><img decoding=\"async\" alt=\"Dikotomija podatkov: prenova odnosa do podatkov in storitev\" src=\"\/wp-content\/uploads\/2020\/05\/353c7f12af87901e721abb7ea92d8196.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <br \/>\n Wykorzystanie mechanizmu rozproszonego logowania pozwala nam pod\u0105\u017ca\u0107 wytyczon\u0105 \u015bcie\u017ck\u0105 i korzysta\u0107 z wymiany wiadomo\u015bci, aby pracowa\u0107 z <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Event-driven_architecture\">dogodkovno usmerjene arhitekture<\/a><\/noindex>. Verjame se, da ta pristop zagotavlja bolj\u0161o skalabilnost in razdelitev kot mehanizem \"vpra\u0161anje-odgovor\", saj nadzor nad tokom preda prejemniku, namesto po\u0161iljatelju. Vendar pa je potrebno za vse v tem \u017eivljenju pla\u010dati, zato boste potrebovali posrednika. Toda za velike sisteme je ta kompromis vreden (kar ne moremo re\u010di za va\u0161a povpre\u010dna spletna aplikacija).<\/p>\n<p>\u010ce za porazdeljeno bele\u017eenje poskrbi posrednik in ne tradicionalni sistem za izmenjavo sporo\u010dil, lahko izkoristimo dodatne funkcionalnosti. Transport je mogo\u010de linearno skalirati skoraj tako dobro kot porazdeljeni sistem datotek. Podatki se lahko hranijo v dnevnikih dovolj dolgo, zato dobimo ne le izmenjavo sporo\u010dil, temve\u010d tudi skladi\u0161\u010de informacij. Skalabilno skladi\u0161\u010de brez strahu pred spreminjanjem skupnega stanja.<\/p>\n<p>Nato lahko uporabimo mehanizem obdelave toka s shranjevanjem stanja za dodajanje deklarativnih orodij baze podatkov v storitve-prejemnike. To je zelo pomembna misel. Dokler so podatki shranjeni v skupnih tokovih, do katerih imajo dostop vse storitve, je zdru\u017eevanje in obdelava, ki jo izvaja storitev, zasebna. So izolirane v strogo omejenem kontekstu.<\/p>\n<p><img decoding=\"async\" alt=\"Dikotomija podatkov: prenova odnosa do podatkov in storitev\" src=\"\/wp-content\/uploads\/2020\/05\/01c8beabb9a02e4c06dffb84f9161324.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <i>Znebite se dihotomije podatkov z delitvijo neomejenega toka stanj. Nato to funkcijo dodajte v vsako storitev s pomo\u010djo obdelave toka s shranjevanjem stanja.<\/i><\/p>\n<p>Tako, \u010de va\u0161a storitev mora delovati s naro\u010dili, katalogom izdelkov, skladi\u0161\u010dem, bo imela popoln dostop: samo vi boste odlo\u010dali, katere podatke zdru\u017eiti, kje jih obdelati in kako se morajo spreminjati s \u010dasom. Kljub temu, da so podatki skupni, je delo z njimi popolnoma decentralizirano. Poteka znotraj vsake storitve, v svetu, kjer vse poteka po va\u0161ih pravilih.<\/p>\n<p><img decoding=\"async\" alt=\"Dikotomija podatkov: prenova odnosa do podatkov in storitev\" src=\"\/wp-content\/uploads\/2020\/05\/4b2635ad8ddd18f455eea654e472f85e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Delite podatke tako, da ne kr\u0161ite njihove celovitosti. Inkapsulirajte funkcijo, ne vira, v vsaki storitvi, ki jo potrebuje.<\/i><\/p>\n<p>Ponekad je potrebno masovno premestiti podatke. Ponekad servisu treba lokalni istorijski skup podataka u odabranom sistemu baze podataka. Klju\u010dna ta\u010dka je da se mo\u017ee garantovati da se, kada je potrebno, kopija mo\u017ee obnoviti iz izvora putem obra\u0107anja mehanizmu distribuiranog logiranja. Poveziva\u010di u Kafki odli\u010dno obavljaju ovaj zadatak.<\/p>\n<p>Dakle, pristup o kojem smo danas razgovarali ima nekoliko prednosti:<\/p>\n<ul>\n<li>Podaci se koriste kao zajedni\u010dki tokovi, koji se mogu dugo \u010duvati u logovima, a sam mehanizam rada sa zajedni\u010dkim podacima je ugra\u0111en u svaki pojedina\u010dni kontekst, \u0161to omogu\u0107ava servisima da funkcioni\u0161u lako i brzo. Na ovaj na\u010din se mo\u017ee izbalansirati dijalog podatka.<\/li>\n<li>Podaci koji dolaze iz razli\u010ditih servisa se lako mogu spojiti u skupove. Ovo pojednostavljuje interakciju sa zajedni\u010dkim podacima i ukida potrebu za odr\u017eavanjem lokalnih skupova podataka u bazi podataka.<\/li>\n<li>Stateful Stream Processing samo ke\u0161ira podatke, a izvor istine ostaju zajedni\u010dki logovi, tako da problem o\u0161te\u0107enja podataka vremenom nije tako nagla\u0161en.<\/li>\n<li>U su\u0161tini, servisi su vo\u0111eni podacima, \u0161to zna\u010di da, uprkos stalnom rastu obima podataka, servisi i dalje mogu brzo reagovati na poslovne doga\u0111aje.<\/li>\n<li>Problemi skalabilnosti padaju na brokera, a ne na servise. Tako da se znatno smanjuje slo\u017eenost pisanja servisa, jer nije potrebno razmi\u0161ljati o skalabilnosti.<\/li>\n<li>Dodavanje novih servisa ne zahteva promenu starih, tako da je povezivanje novih servisa olak\u0161ano.<\/li>\n<\/ul>\n<p>\nKao \u0161to vidite, ovo je vi\u0161e od samo REST-a. Dobili smo skup alata koji omogu\u0107avaju rad sa zajedni\u010dkim podacima decentralizovano.<\/p>\n<p>U dana\u0161njem \u010dlanku nisu istra\u017eeni svi aspekti. Jo\u0161 uvek moramo da se osvrnemo na to kako izbalansirati izme\u0111u paradigme \"zahtev-odgovor\" i paradigme orijentisane na doga\u0111aje. O tome \u0107emo se baviti slede\u0107i put. Ima tema sa kojima treba bolje da se upoznamo, na primer, za\u0161to je Stateful Stream Processing tako dobar. O tome \u0107emo razgovarati u tre\u0107em \u010dlanku. A postoje i druge mo\u0107ne konstrukcije koje mo\u017eemo iskoristiti, ako se odlu\u010dimo za njih, na primer, <noindex><a rel=\"nofollow\" href=\"https:\/\/cwiki.apache.org\/confluence\/display\/KAFKA\/KIP-98+-+Exactly+Once+Delivery+and+Transactional+Messaging\">Ta\u010dno Jednom Obrada<\/a><\/noindex>. Z njeno pomo\u010djo se spreminjajo pravila igre za porazdeljene poslovne sisteme, saj ta konstrukcija zagotavlja transakcijske garancije za <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/X\/Open_XA\">XA<\/a><\/noindex> v skalabilni obliki. O tem bo govora v \u010detrtem \u010dlanku. In kon\u010dno, morali bomo preleteti podrobnosti izvedbe teh na\u010del.<\/p>\n<p><img decoding=\"async\" alt=\"Dikotomija podatkov: prenova odnosa do podatkov in storitev\" src=\"\/wp-content\/uploads\/2020\/05\/f66eadcc538cf3da74ccb120e1de2ae7.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAmpak za zdaj si zapomnite naslednje: dihotomija podatkov je tista mo\u010d, s katero se soo\u010damo pri ustvarjanju poslovnih storitev. In to moramo imeti v mislih. Fokus je v tem, da obrnemo vse na glavo in za\u010dnemo obravnavati skupne podatke kot prvoosebne objekte. Stateful Stream Processing ponuja edinstven kompromis za to. Izogiba se centraliziranim \u201cBo\u017ejim komponentam\u201d, ki ovirajo napredek. Poleg tega zagotavlja odzivnost, skalabilnost in odpornost podatkovnih tokov ter jih vklju\u010duje v vsako storitev. Tako se lahko osredoto\u010dimo na skupni tok zavesti, na katerega se lahko pove\u017ee katerakoli storitev in dela z njenimi podatki. Tako postanejo storitve bolj skalabilne, zamenljive in avtonomne. Zato bodo ne le dobro izgledale na ozna\u010devalnih tablah in pri preverjanju hipotez, temve\u010d tudi delovale in se razvijale desetletja. <\/p>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/rVZl\/\">Izvedite ve\u010d o te\u010daju.<br \/>\n<\/a><\/noindex><\/p>\n<p>Izvor: <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\/sl\/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=\"sl_SI\" \/>\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\/sl\/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\udd47Dihotomija podatkov: ponovno razmi\u0161ljanje o odnosu do podatkov in storitev | ProHoster","description":"Zdravo svima!","canonical_url":"https:\/\/prohoster.info\/sl\/blog\/administrirovanie\/dihotomiya-dannyh-pereosmyslenie-otnosheniya-k-dannym-i-servisam","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sl_SI","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\/sl\/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\/sl\/wp-json\/wp\/v2\/posts\/83248","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/comments?post=83248"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/posts\/83248\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/media\/83249"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/media?parent=83248"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/categories?post=83248"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/tags?post=83248"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}