Y ddeuoliaeth data: ailfeddwl y berthynas rhwng data a gwasanaethau

Helo pawb! Mae gennym newyddion gwych, mae OTUS yn lansio'r cwrs eto ym mis Mehefin "Pensaer Meddalwedd", yr ydym yn draddodiadol yn rhannu deunydd defnyddiol gyda chi mewn cysylltiad ag ef.

Y ddeuoliaeth data: ailfeddwl y berthynas rhwng data a gwasanaethau

Os ydych chi wedi dod ar draws y peth microservices cyfan hwn heb unrhyw gyd-destun, byddech chi'n cael maddeuant am feddwl ei fod ychydig yn rhyfedd. Mae rhannu cymhwysiad yn ddarnau sydd wedi'u cysylltu gan rwydwaith o reidrwydd yn golygu ychwanegu moddau goddef diffygion cymhleth i'r system ddosbarthedig sy'n deillio o hynny.

Er bod y dull hwn yn golygu ei rannu'n nifer o wasanaethau annibynnol, mae'r nod yn y pen draw yn llawer mwy na dim ond rhedeg y gwasanaethau hynny ar wahanol beiriannau. Yr ydym yn sôn yma am ryngweithio â'r byd y tu allan, sydd hefyd yn cael ei ddosbarthu yn ei hanfod. Nid yn yr ystyr dechnegol, ond yn hytrach yn yr ystyr o ecosystem sy'n cynnwys llawer o bobl, timau, rhaglenni, ac mae angen i bob un o'r rhannau hyn wneud ei waith rywsut.

Mae cwmnïau, er enghraifft, yn gasgliad o systemau gwasgaredig sydd ar y cyd yn cyfrannu at gyflawni rhyw nod. Rydym wedi anwybyddu'r ffaith hon ers degawdau, gan geisio uno trwy FTPing ffeiliau neu ddefnyddio offer integreiddio menter tra'n canolbwyntio ar ein nodau ynysig ein hunain. Ond gyda dyfodiad gwasanaethau, newidiodd popeth. Mae gwasanaethau wedi ein helpu i edrych y tu hwnt i’r gorwel a gweld byd o raglenni rhyngddibynnol sy’n cydweithio. Fodd bynnag, er mwyn gweithio'n llwyddiannus, mae angen cydnabod a dylunio dau fyd sy'n sylfaenol wahanol: y byd allanol, lle rydym yn byw mewn ecosystem o lawer o wasanaethau eraill, a'n byd personol, mewnol, lle rydym yn llywodraethu ar ein pennau ein hunain.

Y ddeuoliaeth data: ailfeddwl y berthynas rhwng data a gwasanaethau

Mae'r byd gwasgaredig hwn yn wahanol i'r un y cawsom ein magu ynddo ac yr ydym yn gyfarwydd ag ef. Nid yw egwyddorion adeiladu pensaernïaeth monolithig draddodiadol yn gwrthsefyll beirniadaeth. Felly mae cael y systemau hyn yn gywir yn ymwneud â mwy na chreu diagram bwrdd gwyn cŵl neu brawf cŵl o gysyniad. Y pwynt yw sicrhau bod system o'r fath yn gweithredu'n llwyddiannus dros gyfnod hir o amser. Yn ffodus, mae'r gwasanaethau wedi bod o gwmpas ers cryn amser, er eu bod yn edrych yn wahanol. Gwersi SOA yn dal yn berthnasol, hyd yn oed wedi'u profi gyda Docker, Kubernetes a barfau hipster ychydig yn ddi-raen.

Felly heddiw byddwn yn edrych ar sut mae'r rheolau wedi newid, pam mae angen i ni ailfeddwl y ffordd yr ydym yn mynd at wasanaethau a'r data y maent yn ei drosglwyddo i'n gilydd, a pham y bydd angen offer cwbl wahanol arnom i wneud hynny.

Nid eich ffrind fydd amgáu bob amser

Gall microwasanaethau weithredu'n annibynnol ar ei gilydd. Yr eiddo hwn sy'n rhoi'r gwerth mwyaf iddynt. Mae'r un eiddo hwn yn caniatáu i wasanaethau raddfa a thyfu. Nid yn gymaint yn yr ystyr o raddio i bedwarbiliynau o ddefnyddwyr neu petabytes o ddata (er y gall y rheini helpu yno hefyd), ond yn yr ystyr o raddio o ran pobl wrth i dimau a sefydliadau dyfu'n barhaus.

Y ddeuoliaeth data: ailfeddwl y berthynas rhwng data a gwasanaethau

Fodd bynnag, cleddyf deufin yw annibyniaeth. Hynny yw, gall y gwasanaeth ei hun redeg yn hawdd ac yn naturiol. Ond os gweithredir swyddogaeth o fewn gwasanaeth sy'n gofyn am ddefnyddio gwasanaeth arall, yna yn y pen draw bydd yn rhaid i ni wneud newidiadau i'r ddau wasanaeth bron ar yr un pryd. Mewn monolith mae hyn yn hawdd i'w wneud, rydych chi'n gwneud newid ac yn ei anfon i'w ryddhau, ond yn achos cydamseru gwasanaethau annibynnol bydd mwy o broblemau. Mae cydlynu rhwng timau a chylchoedd rhyddhau yn dinistrio ystwythder.

Y ddeuoliaeth data: ailfeddwl y berthynas rhwng data a gwasanaethau

Fel rhan o'r dull safonol, y cyfan y maent yn ei wneud yw ceisio osgoi newidiadau annifyr o un pen i'r llall, gan rannu ymarferoldeb yn amlwg rhwng gwasanaethau. Gall gwasanaeth mewngofnodi sengl fod yn enghraifft dda yma. Mae ganddi rôl wedi'i diffinio'n glir sy'n ei gwahaniaethu oddi wrth wasanaethau eraill. Mae'r gwahaniad clir hwn yn golygu, mewn byd o alwadau sy'n newid yn gyflym ar y gwasanaethau o'i gwmpas, mae'r gwasanaeth mewngofnodi sengl yn annhebygol o newid. Mae'n bodoli o fewn cyd-destun cwbl gyfyngedig.

Y ddeuoliaeth data: ailfeddwl y berthynas rhwng data a gwasanaethau

Y broblem yw, yn y byd go iawn, na all gwasanaethau busnes gynnal yr un gwahaniad pur o rolau drwy'r amser. Er enghraifft, mae'r un gwasanaethau busnes yn gweithio i raddau helaethach gyda data'n dod o wasanaethau tebyg eraill. Os ydych chi'n ymwneud â manwerthu ar-lein, yna bydd prosesu llif archeb, catalog cynnyrch neu wybodaeth defnyddiwr yn dod yn ofyniad ar gyfer llawer o'ch gwasanaethau. Bydd angen i bob un o'r gwasanaethau gael mynediad at y data hwn i weithredu.

Y ddeuoliaeth data: ailfeddwl y berthynas rhwng data a gwasanaethau
Mae'r rhan fwyaf o wasanaethau busnes yn rhannu'r un ffrwd ddata, felly mae eu gwaith yn ddieithriad yn cydblethu.

Felly rydym yn dod at bwynt pwysig sy'n werth siarad amdano. Er bod gwasanaethau'n gweithio'n dda ar gyfer cydrannau seilwaith sy'n gweithredu ar wahân i raddau helaeth, mae'r rhan fwyaf o wasanaethau busnes yn cael eu cydblethu'n llawer agosach yn y pen draw.

Deuoliaeth data

Mae’n bosibl bod dulliau sy’n canolbwyntio ar wasanaethau eisoes yn bodoli, ond maent yn dal i fod yn brin o fewnwelediad i sut i rannu symiau mawr o ddata rhwng gwasanaethau.

Y brif broblem yw bod data a gwasanaethau yn anwahanadwy. Ar y naill law, mae amgáu yn ein hannog i guddio data fel y gellir gwahanu gwasanaethau oddi wrth ei gilydd a hwyluso eu twf a newidiadau pellach. Ar y llaw arall, mae angen inni allu rhannu a goresgyn data a rennir yn rhydd, yn union fel unrhyw ddata arall. Y pwynt yw gallu dechrau gweithio ar unwaith, mor rhydd ag mewn unrhyw system wybodaeth arall.

Fodd bynnag, nid oes gan systemau gwybodaeth fawr ddim i'w wneud ag amgįu. Mewn gwirionedd, mae'n hollol i'r gwrthwyneb. Mae cronfeydd data yn gwneud popeth o fewn eu gallu i ddarparu mynediad i'r data y maent yn ei storio. Maent yn dod gyda rhyngwyneb datganiadol pwerus sy'n eich galluogi i addasu'r data yn ôl yr angen. Mae ymarferoldeb o'r fath yn bwysig yn y cam ymchwil rhagarweiniol, ond nid ar gyfer rheoli cymhlethdod cynyddol gwasanaeth sy'n esblygu'n gyson.

Y ddeuoliaeth data: ailfeddwl y berthynas rhwng data a gwasanaethau

Ac yma mae penbleth yn codi. Gwrthddywediad. Deuoliaeth. Wedi'r cyfan, mae systemau gwybodaeth yn ymwneud â darparu data, ac mae gwasanaethau'n ymwneud â chuddio.

Mae'r ddau rym hyn yn sylfaenol. Maent yn sail i lawer o'n gwaith, gan frwydro'n barhaus am ragoriaeth yn y systemau yr ydym yn eu hadeiladu.

Wrth i systemau gwasanaeth dyfu ac esblygu, rydym yn gweld canlyniadau deuoliaeth data mewn sawl ffordd. Naill ai bydd y rhyngwyneb gwasanaeth yn tyfu, gan ddarparu ystod gynyddol o ymarferoldeb a dechrau edrych fel cronfa ddata ffansi iawn wedi'i tyfu gartref, neu byddwn yn mynd yn rhwystredig ac yn gweithredu rhyw ffordd i adfer neu symud setiau cyfan o ddata o wasanaeth i wasanaeth.

Y ddeuoliaeth data: ailfeddwl y berthynas rhwng data a gwasanaethau

Yn ei dro, bydd creu rhywbeth sy'n edrych fel cronfa ddata ffansi wedi'i thyfu gartref yn arwain at lu o broblemau. Ni awn i fanylion pam ei fod yn beryglus cronfa ddata a rennir, gadewch i ni ddweud ei fod yn cynrychioli peirianneg a gweithredol costus sylweddol anawsterau ar gyfer y cwmni sy'n ceisio ei ddefnyddio.

Yr hyn sy'n waeth yw bod meintiau data yn chwyddo problemau ffiniau gwasanaethau. Po fwyaf o ddata a rennir sy'n gorwedd o fewn gwasanaeth, y mwyaf cymhleth fydd y rhyngwyneb a'r anoddaf fydd hi i gyfuno setiau data sy'n dod o wahanol wasanaethau.

Mae gan y dull amgen o echdynnu a symud setiau data cyfan ei broblemau hefyd. Mae ymagwedd gyffredin at y cwestiwn hwn yn edrych fel adfer a storio'r set ddata gyfan, ac yna ei storio'n lleol ym mhob gwasanaeth sy'n defnyddio.

Y ddeuoliaeth data: ailfeddwl y berthynas rhwng data a gwasanaethau

Y broblem yw bod gwasanaethau gwahanol yn dehongli'r data y maent yn ei ddefnyddio yn wahanol. Mae'r data hwn wrth law bob amser. Maent yn cael eu haddasu a'u prosesu'n lleol. Yn weddol gyflym maent yn peidio â bod ag unrhyw beth yn gyffredin â'r data yn y ffynhonnell.

Y ddeuoliaeth data: ailfeddwl y berthynas rhwng data a gwasanaethau
Po fwyaf cyfnewidiol yw'r copïau, y mwyaf y bydd y data'n amrywio dros amser.

I wneud pethau'n waeth, mae'n anodd cywiro data o'r fath wrth edrych yn ôl (MDM Dyma lle gall wir ddod i'r adwy). Mewn gwirionedd, mae rhai o'r problemau technoleg anhydrin y mae busnesau'n eu hwynebu yn deillio o'r data gwahanol sy'n lluosi o'r cais i'r cymhwysiad.

I ddod o hyd i ateb i'r broblem hon, mae angen inni feddwl yn wahanol am ddata a rennir. Rhaid iddynt ddod yn wrthrychau o'r radd flaenaf yn y pensaernïaeth a adeiladwn. Pat Helland yn galw data o’r fath yn “allanol”, ac mae hon yn nodwedd bwysig iawn. Mae angen amgáu fel nad ydym yn datgelu sut mae gwasanaeth yn gweithio'n fewnol, ond mae angen i ni ei gwneud hi'n hawdd i wasanaethau gael mynediad at ddata a rennir fel y gallant wneud eu gwaith yn gywir.

Y ddeuoliaeth data: ailfeddwl y berthynas rhwng data a gwasanaethau

Y broblem yw nad yw'r naill ddull na'r llall yn berthnasol heddiw, gan nad yw'r rhyngwynebau gwasanaeth, na'r negeseuon, na'r Gronfa Ddata a Rennir yn cynnig ateb da ar gyfer gweithio gyda data allanol. Mae rhyngwynebau gwasanaeth yn addas iawn ar gyfer cyfnewid data ar unrhyw raddfa. Mae negeseuon yn symud data ond nid yw'n storio ei hanes, felly mae data'n cael ei lygru dros amser. Mae Cronfeydd Data a Rennir yn canolbwyntio gormod ar un pwynt, sy'n atal cynnydd. Rydym yn anochel yn mynd yn sownd mewn cylch o fethiant data:

Y ddeuoliaeth data: ailfeddwl y berthynas rhwng data a gwasanaethau
Cylch o fethiant data

Ffrydiau: ymagwedd ddatganoledig at ddata a gwasanaethau

Yn ddelfrydol, mae angen i ni newid y ffordd y mae gwasanaethau'n gweithio gyda data a rennir. Ar y pwynt hwn, mae'r naill ddull neu'r llall yn wynebu'r ddeuoliaeth a grybwyllwyd uchod, gan nad oes llwch hud y gellir ei daenellu arno i wneud iddo ddiflannu. Fodd bynnag, gallwn ailfeddwl y broblem a dod i gyfaddawd.

Mae'r cyfaddawd hwn yn golygu rhywfaint o ganoli. Gallwn ddefnyddio'r mecanwaith log dosbarthedig oherwydd ei fod yn darparu ffrydiau dibynadwy, graddadwy. Rydyn ni nawr eisiau i wasanaethau allu ymuno a gweithredu ar yr edafedd cyffredin hyn, ond rydyn ni am osgoi Gwasanaethau Duw canolog cymhleth sy'n gwneud y prosesu hwn. Felly, yr opsiwn gorau yw cynnwys prosesu ffrwd ym mhob gwasanaeth defnyddwyr. Fel hyn, bydd gwasanaethau'n gallu cyfuno setiau data o wahanol ffynonellau a gweithio gyda nhw yn y ffordd sydd ei angen arnynt.

Un ffordd o gyflawni'r dull hwn yw trwy ddefnyddio llwyfan ffrydio. Mae yna lawer o opsiynau, ond heddiw byddwn yn edrych ar Kafka, gan fod y defnydd o'i Brosesu Ffrwd Wladwriaethol yn caniatáu inni ddatrys y broblem a gyflwynir yn effeithiol.

Y ddeuoliaeth data: ailfeddwl y berthynas rhwng data a gwasanaethau

Mae defnyddio mecanwaith logio gwasgaredig yn ein galluogi i ddilyn y llwybr sathredig a defnyddio negeseuon i weithio gyda nhw pensaernïaeth a yrrir gan ddigwyddiadau. Ystyrir bod y dull hwn yn darparu gwell graddio a rhaniad na'r mecanwaith ymateb cais oherwydd ei fod yn rhoi rheolaeth ar y llif i'r derbynnydd yn hytrach na'r anfonwr. Fodd bynnag, am bopeth yn y bywyd hwn mae'n rhaid i chi dalu, ac yma mae angen brocer arnoch chi. Ond ar gyfer systemau mawr, mae'r cyfaddawd yn werth chweil (ac efallai nad yw hyn yn wir ar gyfer eich cymhwysiad gwe cyffredin).

Os yw brocer yn gyfrifol am logio dosranedig yn hytrach na system negeseuon traddodiadol, gallwch fanteisio ar nodweddion ychwanegol. Gall y cludiant raddfa'n llinol bron yn ogystal â system ffeiliau ddosbarthedig. Gellir storio data mewn logiau am amser eithaf hir, felly rydym yn cael nid yn unig cyfnewid negeseuon, ond hefyd storio gwybodaeth. Storfa scalable heb ofni cyflwr a rennir mutable.

Yna gallwch ddefnyddio prosesu ffrwd wladwriaethol i ychwanegu offer cronfa ddata datganiadol at wasanaethau sy'n defnyddio. Mae hwn yn syniad pwysig iawn. Tra bod y data’n cael ei storio mewn ffrydiau a rennir y gall pob gwasanaeth gael mynediad iddynt, mae’r cydgrynhoi a’r prosesu y mae’r gwasanaeth yn ei wneud yn breifat. Maent yn cael eu hunain yn ynysig o fewn cyd-destun cwbl gyfyngedig.

Y ddeuoliaeth data: ailfeddwl y berthynas rhwng data a gwasanaethau
Dileu deuoliaeth data trwy wahanu'r ffrwd cyflwr digyfnewid. Yna ychwanegwch y swyddogaeth hon at bob gwasanaeth gan ddefnyddio Stateful Stream Processing.

Felly, os oes angen i'ch gwasanaeth weithio gydag archebion, catalog cynnyrch, warws, bydd ganddo fynediad llawn: dim ond chi fydd yn penderfynu pa ddata i'w gyfuno, ble i'w brosesu a sut y dylai newid dros amser. Er gwaethaf y ffaith bod y data yn cael ei rannu, mae gwaith gydag ef wedi'i ddatganoli'n llwyr. Fe'i cynhyrchir o fewn pob gwasanaeth, mewn byd lle mae popeth yn mynd yn unol â'ch rheolau.

Y ddeuoliaeth data: ailfeddwl y berthynas rhwng data a gwasanaethau
Rhannu data heb beryglu ei gyfanrwydd. Crynhowch y swyddogaeth, nid y ffynhonnell, ym mhob gwasanaeth sydd ei angen.

Mae'n digwydd bod angen symud data yn llu. Weithiau mae angen set ddata hanesyddol leol ar wasanaeth yn y peiriant cronfa ddata a ddewiswyd. Y tric yw y gallwch warantu, os oes angen, y gellir adfer copi o'r ffynhonnell trwy gyrchu'r mecanwaith logio dosbarthedig. Mae cysylltwyr yn Kafka yn gwneud gwaith gwych o hyn.

Felly, mae gan y dull a drafodir heddiw nifer o fanteision:

  • Defnyddir data ar ffurf ffrydiau cyffredin, y gellir eu storio mewn logiau am amser hir, ac mae'r mecanwaith ar gyfer gweithio gyda data cyffredin wedi'i wifro'n galed ym mhob cyd-destun unigol, sy'n caniatáu i wasanaethau weithio'n hawdd ac yn gyflym. Yn y modd hwn, gellir cydbwyso deuoliaeth y data.
  • Gellir cyfuno data sy'n dod o wahanol wasanaethau yn setiau'n hawdd. Mae hyn yn symleiddio'r rhyngweithio â data a rennir ac yn dileu'r angen i gynnal setiau data lleol yn y gronfa ddata.
  • Mae Stateful Stream Processing yn storio data yn unig, a ffynhonnell y gwirionedd yw'r logiau cyffredinol o hyd, felly nid yw problem llygredd data dros amser mor ddifrifol.
  • Yn greiddiol iddynt, mae gwasanaethau’n cael eu gyrru gan ddata, sy’n golygu, er gwaethaf y symiau cynyddol o ddata, y gall gwasanaethau barhau i ymateb yn gyflym i ddigwyddiadau busnes.
  • Y brocer, nid y gwasanaethau, sy'n gyfrifol am faterion yn ymwneud ag scalability. Mae hyn yn lleihau cymhlethdod gwasanaethau ysgrifennu yn sylweddol, gan nad oes angen meddwl am scalability.
  • Nid oes angen newid hen rai er mwyn ychwanegu gwasanaethau newydd, felly mae cysylltu gwasanaethau newydd yn dod yn haws.

Fel y gwelwch, mae hyn yn fwy na REST yn unig. Rydym wedi derbyn set o offer sy'n eich galluogi i weithio gyda data a rennir mewn modd datganoledig.

Nid ymdriniwyd â phob agwedd yn yr erthygl heddiw. Mae angen inni ddarganfod o hyd sut i gydbwyso'r patrwm ymateb i gais a'r patrwm a yrrir gan ddigwyddiadau. Ond byddwn yn delio â hyn y tro nesaf. Mae yna bynciau y mae angen i chi ddod i'w hadnabod yn well, er enghraifft, pam mae Prosesu Ffrwd Wladwriaethol mor dda. Byddwn yn siarad am hyn yn y drydedd erthygl. Ac mae yna strwythurau pwerus eraill y gallwn fanteisio arnynt os byddwn yn troi atynt, er enghraifft, Yn union Unwaith Prosesu. Mae'n newidiwr gêm ar gyfer systemau busnes dosbarthedig oherwydd ei fod yn darparu gwarantau trafodion ar gyfer XA ar ffurf graddadwy. Bydd hyn yn cael ei drafod yn y bedwaredd erthygl. Yn olaf, bydd angen inni fynd dros fanylion gweithredu'r egwyddorion hyn.

Y ddeuoliaeth data: ailfeddwl y berthynas rhwng data a gwasanaethau

Ond am y tro, cofiwch hyn: mae'r ddeuoliaeth data yn rym sy'n ein hwynebu wrth adeiladu gwasanaethau busnes. A rhaid inni gofio hyn. Y tric yw troi popeth ar ei ben a dechrau trin data a rennir fel gwrthrychau o'r radd flaenaf. Mae Stateful Stream Processing yn darparu cyfaddawd unigryw ar gyfer hyn. Mae'n osgoi “Cydrannau Duw” canolog sy'n atal cynnydd. Ar ben hynny, mae'n sicrhau ystwythder, scalability a gwydnwch piblinellau ffrydio data ac yn eu hychwanegu at bob gwasanaeth. Felly, gallwn ganolbwyntio ar y llif cyffredinol o ymwybyddiaeth y gall unrhyw wasanaeth gysylltu a gweithio gyda'i ddata. Mae hyn yn gwneud gwasanaethau'n fwy graddadwy, cyfnewidiol ac ymreolaethol. Felly byddant nid yn unig yn edrych yn dda ar fyrddau gwyn a phrofion rhagdybiaeth, ond byddant hefyd yn gweithio ac yn esblygu am ddegawdau.

Dysgwch fwy am y cwrs.

Ffynhonnell: hab.com

Ychwanegu sylw