Id-dikotomija tad-dejta: naħsbu mill-ġdid tar-relazzjoni bejn id-dejta u s-servizzi

Hi kollha! Għandna aħbar kbira, OTUS qed terġa' tniedi l-kors f'Ġunju "Perit tas-Software", li b'rabta magħha tradizzjonalment naqsmu materjal utli miegħek.

Id-dikotomija tad-dejta: naħsbu mill-ġdid tar-relazzjoni bejn id-dejta u s-servizzi

Jekk iltqajt ma' din il-ħaġa sħiħa tal-mikroservizzi mingħajr ebda kuntest, tkun maħfur talli taħseb li hija ftit stramba. Il-qsim ta 'applikazzjoni fi frammenti konnessi minn netwerk neċessarjament ifisser li żżid modi kumplessi ta' tolleranza ta 'ħsara mas-sistema distribwita li tirriżulta.

Għalkemm dan l-approċċ jinvolvi t-tqassim f'ħafna servizzi indipendenti, l-għan aħħari huwa ħafna aktar milli sempliċiment li dawk is-servizzi jitħaddmu fuq magni differenti. Hawnhekk qed nitkellmu dwar l-interazzjoni mad-dinja ta 'barra, li hija wkoll imqassma fl-essenza tagħha. Mhux fis-sens tekniku, iżda pjuttost fis-sens ta’ ekosistema li tikkonsisti f’ħafna nies, timijiet, programmi, u kull waħda minn dawn il-partijiet b’xi mod trid tagħmel xogħolha.

Il-kumpaniji, pereżempju, huma ġabra ta 'sistemi distribwiti li kollettivament jikkontribwixxu għall-kisba ta' xi għan. Aħna injorajna dan il-fatt għal għexieren ta 'snin, nippruvaw niksbu unifikazzjoni permezz ta' fajls FTP jew nużaw għodod ta 'integrazzjoni ta' intrapriżi filwaqt li niffukaw fuq l-għanijiet iżolati tagħna stess. Iżda bil-miġja tas-servizzi, kollox inbidel. Is-servizzi għenuna nħarsu lil hinn mill-orizzont u naraw dinja ta’ programmi interdipendenti li jaħdmu flimkien. Madankollu, biex naħdmu b'suċċess, huwa meħtieġ li nirrikonoxxu u niddisinjaw żewġ dinjiet fundamentalment differenti: id-dinja esterna, fejn ngħixu f'ekosistema ta 'ħafna servizzi oħra, u d-dinja personali, interna tagħna, fejn aħna nirregolaw waħedhom.

Id-dikotomija tad-dejta: naħsbu mill-ġdid tar-relazzjoni bejn id-dejta u s-servizzi

Din id-dinja mqassma hija differenti minn dik li trabbna fiha u mdorrijin biha. Il-prinċipji tal-kostruzzjoni ta 'arkitettura monolitika tradizzjonali ma jifilħux għall-kritika. Allura jkollna dawn is-sistemi dritt hija dwar aktar minn ħolqien ta 'dijagramma ta' whiteboard jibred jew prova ta 'kunċett jibred. Il-punt huwa li jiġi żgurat li sistema bħal din topera b'suċċess fuq perjodu twil ta 'żmien. Fortunatament, is-servizzi ilhom żmien mhux ħażin, għalkemm jidhru differenti. Lezzjonijiet tas-SOA għadhom rilevanti, anke imħawwar ma 'Docker, Kubernetes u beards hipster kemmxejn shabby.

Allura llum ser inħarsu lejn kif inbidlu r-regoli, għaliex għandna bżonn naħsbu mill-ġdid il-mod kif noqorbu lejn is-servizzi u d-dejta li jgħaddu lil xulxin, u għaliex ikollna bżonn għodod kompletament differenti biex nagħmlu dan.

L-inkapsulament mhux dejjem ikun ħabib tiegħek

Il-mikroservizzi jistgħu joperaw indipendentement minn xulxin. Hija din il-proprjetà li tagħtihom l-akbar valur. Din l-istess proprjetà tippermetti li s-servizzi jiżdiedu u jikbru. Mhux daqshekk fis-sens ta 'skala għal kwadriljuni ta' utenti jew petabytes ta 'data (għalkemm dawk jistgħu jgħinu hemmhekk ukoll), iżda fis-sens ta' skalar f'termini ta 'nies hekk kif timijiet u organizzazzjonijiet jikbru kontinwament.

Id-dikotomija tad-dejta: naħsbu mill-ġdid tar-relazzjoni bejn id-dejta u s-servizzi

Madankollu, l-indipendenza hija xabla doppja. Jiġifieri, is-servizz innifsu jista’ jaħdem faċilment u b’mod naturali. Imma jekk funzjoni tiġi implimentata fi ħdan servizz li teħtieġ l-użu ta’ servizz ieħor, allura nispiċċaw ikollna nagħmlu bidliet fiż-żewġ servizzi kważi simultanjament. F'monolith dan huwa faċli li tagħmel, inti sempliċiment tagħmel bidla u tibgħatha għar-rilaxx, iżda fil-każ ta 'sinkronizzazzjoni tas-servizzi indipendenti se jkun hemm aktar problemi. Il-koordinazzjoni bejn it-timijiet u ċ-ċikli tar-rilaxx teqred l-aġilità.

Id-dikotomija tad-dejta: naħsbu mill-ġdid tar-relazzjoni bejn id-dejta u s-servizzi

Bħala parti mill-approċċ standard, huma sempliċement jippruvaw jevitaw bidliet tedjanti minn tarf sa tarf, jaqsmu b'mod ċar il-funzjonalità bejn is-servizzi. Is-servizz ta' single sign-on jista' jkun eżempju tajjeb hawnhekk. Għandu rwol definit b'mod ċar li jiddifferenzjah minn servizzi oħra. Din is-separazzjoni ċara tfisser li f'dinja ta' talbiet li qed jinbidlu malajr fuq is-servizzi ta' madwarha, is-servizz ta' single sign-on x'aktarx li ma jinbidelx. Jeżisti f'kuntest strettament limitat.

Id-dikotomija tad-dejta: naħsbu mill-ġdid tar-relazzjoni bejn id-dejta u s-servizzi

Il-problema hija li fid-dinja reali, is-servizzi tan-negozju ma jistgħux iżommu l-istess separazzjoni pura tar-rwoli l-ħin kollu. Pereżempju, l-istess servizzi tan-negozju jaħdmu aktar b'dejta li ġejja minn servizzi oħra simili. Jekk inti involut fil-bejgħ bl-imnut onlajn, allura l-ipproċessar tal-fluss tal-ordnijiet, il-katalgu tal-prodott jew l-informazzjoni tal-utent se jsiru rekwiżit għal ħafna mis-servizzi tiegħek. Kull wieħed mis-servizzi se jkollu bżonn aċċess għal din id-dejta biex jopera.

Id-dikotomija tad-dejta: naħsbu mill-ġdid tar-relazzjoni bejn id-dejta u s-servizzi
Il-biċċa l-kbira tas-servizzi tan-negozju jaqsmu l-istess fluss tad-dejta, u għalhekk ix-xogħol tagħhom huwa invarjabbilment marbut ma' xulxin.

Għalhekk naslu għal punt importanti ta’ min jitkellem dwaru. Filwaqt li s-servizzi jaħdmu tajjeb għall-komponenti tal-infrastruttura li joperaw fil-biċċa l-kbira b’mod iżolat, il-biċċa l-kbira tas-servizzi tan-negozju jispiċċaw marbuta ħafna aktar mill-qrib.

Dikotomija tad-data

Jista' jkun li diġà jeżistu approċċi orjentati lejn is-servizz, iżda għad m'għandhomx għarfien dwar kif jaqsmu ammonti kbar ta' dejta bejn is-servizzi.

Il-problema ewlenija hija li d-dejta u s-servizzi huma inseparabbli. Min-naħa waħda, l-inkapsulament iħeġġiġna biex naħbu d-dejta sabiex is-servizzi jkunu jistgħu jiġu separati minn xulxin u jiffaċilitaw it-tkabbir tagħhom u aktar bidliet. Min-naħa l-oħra, jeħtieġ li nkunu nistgħu naqsmu u nirbħu liberament id-data kondiviża, bħal kull data oħra. Il-punt huwa li tkun tista 'tibda taħdem immedjatament, liberament bħal fi kwalunkwe sistema ta' informazzjoni oħra.

Madankollu, is-sistemi tal-informazzjoni ftit għandhom x'jaqsmu mal-inkapsulament. Fil-fatt, huwa pjuttost l-oppost. Id-databases jagħmlu dak kollu li jistgħu biex jipprovdu aċċess għad-data li jaħżnu. Jiġu b'interface dikjarattiva qawwija li tippermettilek timmodifika d-dejta kif għandek bżonn. Tali funzjonalità hija importanti fl-istadju ta’ riċerka preliminari, iżda mhux għall-ġestjoni tal-kumplessità dejjem tikber ta’ servizz li qed jevolvi kontinwament.

Id-dikotomija tad-dejta: naħsbu mill-ġdid tar-relazzjoni bejn id-dejta u s-servizzi

U hawn tqum dilemma. Kontradizzjoni. Dikotomija. Wara kollox, is-sistemi tal-informazzjoni huma dwar il-provvista tad-dejta, u s-servizzi huma dwar il-ħabi.

Dawn iż-żewġ forzi huma fundamentali. Huma jsaħħu ħafna mix-xogħol tagħna, kontinwament jiġġieldu għall-eċċellenza fis-sistemi li nibnu.

Hekk kif is-sistemi tas-servizz jikbru u jevolvu, naraw il-konsegwenzi tad-dikotomija tad-dejta f'ħafna modi. Jew l-interface tas-servizz se tikber, li tipprovdi firxa dejjem tiżdied ta 'funzjonalità u tibda tidher qisha database homegrown ħafna fancy, jew aħna se nsiru frustrati u nimplimentaw xi mod biex niksbu jew nimxu en masse settijiet sħaħ ta' data minn servizz għal servizz.

Id-dikotomija tad-dejta: naħsbu mill-ġdid tar-relazzjoni bejn id-dejta u s-servizzi

Min-naħa tiegħu, il-ħolqien ta 'xi ħaġa li tidher qisha database fancy homegrown se jwassal għal għadd sħiħ ta' problemi. Mhux se nidħlu fid-dettalji dwar għaliex hija perikoluża database kondiviża, ejja ngħidu biss li tirrappreżenta inġinerija u operazzjonali għalja sinifikanti diffikultajiet għall-kumpanija li qed tipprova tużah.

L-agħar huwa li l-volumi tad-dejta jkabbru l-problemi tal-konfini tas-servizz. Iktar ma jkun hemm dejta kondiviża f'servizz, iktar issir kumplessa l-interface u aktar se jkun diffiċli li jiġu kkombinati settijiet ta' dejta li ġejjin minn servizzi differenti.

L-approċċ alternattiv ta 'estrazzjoni u ċaqliq ta' settijiet ta 'dejta sħaħ għandu wkoll il-problemi tiegħu. Approċċ komuni għal din il-mistoqsija qisu sempliċiment irkuprar u jaħżnu s-sett tad-dejta kollu, u mbagħad jaħżnu lokalment f'kull servizz li jikkunsma.

Id-dikotomija tad-dejta: naħsbu mill-ġdid tar-relazzjoni bejn id-dejta u s-servizzi

Il-problema hija li servizzi differenti jinterpretaw id-dejta li jikkunsmaw b'mod differenti. Din id-data hija dejjem fil-idejn. Huma modifikati u pproċessati lokalment. Pjuttost malajr ma jibqgħux ikollhom xi ħaġa komuni mad-dejta fis-sors.

Id-dikotomija tad-dejta: naħsbu mill-ġdid tar-relazzjoni bejn id-dejta u s-servizzi
Iktar ma jkunu jistgħu jinbidlu l-kopji, aktar id-dejta se tvarja maż-żmien.

Biex tgħaxxaq, data bħal din hija diffiċli biex tikkoreġi retrospettivament (MDM Dan huwa fejn tista 'verament tiġi għas-salvataġġ). Fil-fatt, xi wħud mill-problemi tat-teknoloġija intrattabbli li jiffaċċjaw in-negozji jirriżultaw mid-dejta differenti li timmultiplika minn applikazzjoni għal applikazzjoni.

Biex insibu soluzzjoni għal din il-problema, irridu naħsbu b'mod differenti dwar id-dejta kondiviża. Għandhom isiru oġġetti tal-ewwel klassi fl-arkitetturi li nibnu. Pat Helland isejjaħ tali data "esterna", u din hija karatteristika importanti ħafna. Neħtieġu inkapsulament sabiex ma nesponux il-ħidma interna ta 'servizz, iżda rridu nagħmluha faċli għas-servizzi biex jaċċessaw dejta kondiviża sabiex ikunu jistgħu jagħmlu xogħolhom b'mod korrett.

Id-dikotomija tad-dejta: naħsbu mill-ġdid tar-relazzjoni bejn id-dejta u s-servizzi

Il-problema hija li l-ebda approċċ mhu rilevanti llum, peress li la l-interfaces tas-servizz, la l-messaġġi, u lanqas id-Database Kondiviża ma joffru soluzzjoni tajba biex taħdem ma 'dejta esterna. L-interfaces tas-servizz mhumiex adattati ħażin għall-iskambju tad-dejta fi kwalunkwe skala. Il-messaġġi jċaqalqu d-dejta iżda ma jaħżnux l-istorja tagħha, u għalhekk id-dejta ssir korrotta maż-żmien. Databases Kondiviżi jiffokaw wisq fuq punt wieħed, li jżomm lura l-progress. Inevitabbilment nibqgħu mwaħħlin f'ċiklu ta' falliment tad-dejta:

Id-dikotomija tad-dejta: naħsbu mill-ġdid tar-relazzjoni bejn id-dejta u s-servizzi
Ċiklu ta' falliment tad-data

Streams: approċċ deċentralizzat għad-dejta u s-servizzi

Idealment, għandna bżonn nibdlu l-mod kif jaħdmu s-servizzi b'dejta kondiviża. F'dan il-punt, jew l-approċċi jiffaċċjaw id-dikotomija msemmija hawn fuq, peress li m'hemm l-ebda trab maġiku li jista 'jitbexxex fuqha biex tisparixxi. Madankollu, nistgħu naħsbu mill-ġdid il-problema u naslu għal kompromess.

Dan il-kompromess jinvolvi ċertu grad ta' ċentralizzazzjoni. Nistgħu nużaw il-mekkaniżmu ta 'log distribwit għaliex jipprovdi flussi affidabbli u skalabbli. Issa rridu li s-servizzi jkunu jistgħu jingħaqdu u joperaw fuq dawn il-fili kondiviżi, iżda rridu nevitaw Servizzi Alla kumplessi ċentralizzati li jagħmlu dan l-ipproċessar. Għalhekk, l-aħjar għażla hija li tinbena l-ipproċessar tal-flussi f'kull servizz tal-konsumatur. B'dan il-mod, is-servizzi jkunu jistgħu jgħaqqdu settijiet ta' data minn sorsi differenti u jaħdmu magħhom kif jeħtieġu.

Mod wieħed biex jinkiseb dan l-approċċ huwa permezz tal-użu ta 'pjattaforma ta' streaming. Hemm ħafna għażliet, iżda llum se nħarsu lejn Kafka, peress li l-użu tal-Ipproċessar Stateful Stream tiegħu jippermettilna nsolvu b'mod effettiv il-problema ppreżentata.

Id-dikotomija tad-dejta: naħsbu mill-ġdid tar-relazzjoni bejn id-dejta u s-servizzi

L-użu ta 'mekkaniżmu ta' qtugħ imqassam jippermettilna nsegwu l-mogħdija mifruxa sew u nużaw messaġġi biex naħdmu magħhom arkitettura mmexxija mill-avvenimenti. Dan l-approċċ huwa kkunsidrat li jipprovdi skalar u qsim aħjar mill-mekkaniżmu ta 'talba-rispons minħabba li jagħti kontroll tal-fluss lir-riċevitur aktar milli lill-mittent. Madankollu, għal kollox f'din il-ħajja trid tħallas, u hawn għandek bżonn sensar. Iżda għal sistemi kbar, il-kompromess huwa worth it (li jista 'ma jkunx il-każ għall-applikazzjoni web medja tiegħek).

Jekk sensar huwa responsabbli għal illoggjar distribwit aktar milli sistema ta 'messaġġi tradizzjonali, tista' tieħu vantaġġ minn karatteristiċi addizzjonali. It-trasport jista 'jiskala lineari kważi kif ukoll sistema ta' fajl distribwit. Id-dejta tista 'tinħażen fiz-zkuk għal żmien pjuttost twil, u għalhekk irridu mhux biss skambju ta' messaġġi, iżda wkoll ħażna ta 'informazzjoni. Ħażna skalabbli mingħajr il-biża 'ta' stat kondiviż mutabbli.

Imbagħad tista' tuża l-ipproċessar tal-flussi stateful biex iżżid għodod tad-database dikjarattivi mas-servizzi li jikkunsmaw. Din hija idea importanti ħafna. Filwaqt li d-dejta tinħażen fi flussi kondiviżi li s-servizzi kollha jistgħu jaċċessaw, l-aggregazzjoni u l-ipproċessar li jagħmel is-servizz huma privati. Huma jsibu ruħhom iżolati f'kuntest strettament limitat.

Id-dikotomija tad-dejta: naħsbu mill-ġdid tar-relazzjoni bejn id-dejta u s-servizzi
Elimina d-dikotomija tad-dejta billi tissepara l-fluss tal-istat immutabbli. Imbagħad żid din il-funzjonalità ma 'kull servizz billi tuża Stateful Stream Processing.

Għalhekk, jekk is-servizz tiegħek jeħtieġ li jaħdem ma 'ordnijiet, katalgu ta' prodotti, maħżen, se jkollu aċċess sħiħ: inti biss tiddeċiedi liema data tikkombina, fejn tipproċessaha u kif għandha tinbidel maż-żmien. Minkejja l-fatt li d-dejta hija kondiviża, ix-xogħol magħha huwa kompletament deċentralizzat. Jiġi prodott f'kull servizz, f'dinja fejn kollox imur skond ir-regoli tiegħek.

Id-dikotomija tad-dejta: naħsbu mill-ġdid tar-relazzjoni bejn id-dejta u s-servizzi
Aqsam id-dejta mingħajr ma tikkomprometti l-integrità tagħha. Inkapsula l-funzjoni, mhux is-sors, f'kull servizz li jeħtieġha.

Jiġri li d-dejta trid tiġi mċaqalqa b'mod massiv. Xi drabi servizz jeħtieġ dataset storiku lokali fil-magna tad-database magħżula. Il-trick huwa li tista 'tiggarantixxi li, jekk meħtieġ, kopja tista' tiġi restawrata mis-sors billi taċċessa l-mekkaniżmu ta 'logging distribwit. Konnetturi f'Kafka jagħmlu biċċa xogħol tajba minn dan.

Għalhekk, l-approċċ diskuss illum għandu diversi vantaġġi:

  • Id-dejta tintuża fil-forma ta 'flussi komuni, li jistgħu jinħażnu fi zkuk għal żmien twil, u l-mekkaniżmu biex taħdem b'dejta komuni huwa hardwired f'kull kuntest individwali, li jippermetti li s-servizzi jaħdmu faċilment u malajr. B'dan il-mod, id-dikotomija tad-dejta tista 'tiġi bilanċjata.
  • Id-dejta li ġejja minn servizzi differenti tista' tiġi kkombinata faċilment f'settijiet. Dan jissimplifika l-interazzjoni ma 'data kondiviża u jelimina l-ħtieġa li jinżammu settijiet ta' data lokali fid-database.
  • L-Ipproċessar ta 'Streamful Stateful biss jaħżen id-dejta, u s-sors tal-verità jibqa' r-reġistri ġenerali, għalhekk il-problema tal-korruzzjoni tad-dejta maż-żmien mhix daqshekk akuta.
  • Fil-qalba tagħhom, is-servizzi huma mmexxija mid-data, li jfisser li minkejja l-volumi dejjem jiżdiedu ta 'data, is-servizzi xorta jistgħu jirrispondu malajr għall-avvenimenti tan-negozju.
  • Kwistjonijiet ta 'skalabbiltà jaqgħu fuq is-sensar, mhux is-servizzi. Dan inaqqas b'mod sinifikanti l-kumplessità tas-servizzi tal-kitba, peress li m'hemmx bżonn li wieħed jaħseb dwar l-iskalabbiltà.
  • Iż-żieda ta’ servizzi ġodda ma teħtieġx li jinbidlu dawk qodma, għalhekk il-konnessjoni ta’ servizzi ġodda ssir aktar faċli.

Kif tistgħu taraw, dan huwa aktar minn sempliċi REST. Irċevejna sett ta 'għodod li jippermettulek taħdem b'dejta kondiviża b'mod deċentralizzat.

Mhux l-aspetti kollha ġew koperti fl-artiklu tal-lum. Għad għandna bżonn insemmu kif nibbilanċjaw bejn il-paradigma tat-talba-rispons u l-paradigma mmexxija mill-avvenimenti. Imma nittrattaw dan id-darba li jmiss. Hemm suġġetti li trid issir taf aħjar, pereżempju, għaliex Stateful Stream Processing huwa daqshekk tajjeb. Se nitkellmu dwar dan fit-tielet artiklu. U hemm kostruzzjonijiet qawwija oħra li nistgħu nieħdu vantaġġ minnhom jekk nirrikorru għalihom, pereżempju, Eżattament Darba Ipproċessar. Huwa game changer għal sistemi ta 'negozju distribwiti minħabba li jipprovdi garanziji transazzjonali għal XA f'forma skalabbli. Dan se jiġi diskuss fir-raba’ artiklu. Fl-aħħar nett, ser ikollna ngħaddu fuq id-dettalji tal-implimentazzjoni ta’ dawn il-prinċipji.

Id-dikotomija tad-dejta: naħsbu mill-ġdid tar-relazzjoni bejn id-dejta u s-servizzi

Imma għalissa, ftakar dan: id-dikotomija tad-dejta hija forza li niffaċċjaw meta nibnu servizzi tan-negozju. U rridu niftakru dan. Il-trick huwa li ddawwar kollox fuq rasha u tibda tittratta data kondiviża bħala oġġetti tal-ewwel klassi. Stateful Stream Processing jipprovdi kompromess uniku għal dan. Tevita "Komponenti ta 'Alla" ċentralizzati li jżommu lura l-progress. Barra minn hekk, jiżgura l-aġilità, l-iskalabbiltà u r-reżiljenza tal-pipelines tal-istreaming tad-dejta u jżidhom ma 'kull servizz. Għalhekk, nistgħu niffukaw fuq il-fluss ġenerali ta 'kuxjenza li kwalunkwe servizz jista' jgħaqqad u jaħdem bid-dejta tiegħu. Dan jagħmel is-servizzi aktar skalabbli, interkambjabbli u awtonomi. Għalhekk mhux biss se jidhru tajbin fuq whiteboards u testijiet tal-ipoteżi, iżda wkoll se jaħdmu u jevolvu għal għexieren ta 'snin.

Tgħallem aktar dwar il-kors.

Sors: www.habr.com

Żid kumment