Gagnatvískiptingin: endurhugsa sambandið milli gagna og þjónustu

Hæ allir! Við höfum frábærar fréttir, OTUS er að hefja námskeiðið aftur í júní "hugbúnaðararkitekt", í tengslum við sem við deilum jafnan gagnlegu efni með þér.

Gagnatvískiptingin: endurhugsa sambandið milli gagna og þjónustu

Ef þú hefur rekist á allt þetta örþjónustumál án nokkurs samhengis, þá væri þér fyrirgefið að halda að það væri svolítið skrítið. Að skipta forriti í brot sem er tengt með neti þýðir endilega að bæta flóknum bilanaþolsstillingum við dreifða kerfið sem myndast.

Þrátt fyrir að þessi nálgun feli í sér að skipta henni niður í margar sjálfstæðar þjónustur, þá er lokamarkmiðið miklu meira en bara að láta þessa þjónustu keyra á mismunandi vélum. Hér er verið að tala um samskipti við umheiminn, sem er líka dreift í kjarna sínum. Ekki í tæknilegum skilningi, heldur frekar í skilningi vistkerfis sem samanstendur af mörgu fólki, teymum, forritum og hver þessara hluta þarf einhvern veginn að vinna vinnuna sína.

Fyrirtæki eru til dæmis safn dreifðra kerfa sem sameiginlega stuðla að því að einhverju markmiði verði náð. Við höfum hunsað þessa staðreynd í áratugi, reynt að ná sameiningu með FTP-skrám eða með samþættingartækjum fyrirtækja á meðan við einbeitum okkur að okkar eigin einangruðu markmiðum. En með tilkomu þjónustunnar breyttist allt. Þjónusta hefur hjálpað okkur að horfa út fyrir sjóndeildarhringinn og sjá heim gagnháðra forrita sem vinna saman. Hins vegar, til að vinna farsællega, er nauðsynlegt að viðurkenna og hanna tvo í grundvallaratriðum ólíka heima: ytri heiminn, þar sem við búum í vistkerfi margra annarra þjónustu, og persónulega, innri heiminn okkar, þar sem við stjórnum ein.

Gagnatvískiptingin: endurhugsa sambandið milli gagna og þjónustu

Þessi dreifði heimur er ólíkur þeim sem við ólumst upp í og ​​eigum að venjast. Meginreglur þess að smíða hefðbundinn einhæfan arkitektúr standast ekki gagnrýni. Þannig að það að koma þessum kerfum á réttan kjöl snýst um meira en að búa til flott töfluskýringarmynd eða flott sönnun fyrir hugmyndinni. Aðalatriðið er að tryggja að slíkt kerfi virki vel yfir langan tíma. Sem betur fer hefur þjónustan verið til í nokkuð langan tíma, þó hún líti öðruvísi út. SOA kennslustundir eiga enn við, jafnvel kryddaðar með Docker, Kubernetes og örlítið subbulegt hipsterskegg.

Svo í dag munum við skoða hvernig reglurnar hafa breyst, hvers vegna við þurfum að endurskoða hvernig við nálgumst þjónustu og gögnin sem þau miðla hvert til annars og hvers vegna við þurfum allt önnur tæki til að gera það.

Encapsulation mun ekki alltaf vera vinur þinn

Örþjónustur geta starfað óháð hver annarri. Það er þessi eign sem gefur þeim mest verðmæti. Þessi sama eign gerir þjónustu kleift að stækka og stækka. Ekki svo mikið í þeim skilningi að stækka niður í fjórmilljónir notenda eða petabæta af gögnum (þó að þau geti hjálpað þar líka), heldur í þeim skilningi að stækka með tilliti til fólks þar sem teymi og stofnanir stækka stöðugt.

Gagnatvískiptingin: endurhugsa sambandið milli gagna og þjónustu

Hins vegar er sjálfstæði tvíeggjað sverð. Það er, þjónustan sjálf getur keyrt auðveldlega og eðlilega. En ef aðgerð er innleidd innan þjónustu sem krefst notkunar á annarri þjónustu, þá endum við á því að við þurfum að gera breytingar á báðum þjónustunum nánast samtímis. Í monolith er þetta auðvelt að gera, þú gerir bara breytingu og sendir hana til útgáfu, en ef um er að ræða samstillingu sjálfstæðrar þjónustu verða fleiri vandamál. Samhæfing milli liða og losunarlota eyðileggur snerpu.

Gagnatvískiptingin: endurhugsa sambandið milli gagna og þjónustu

Sem hluti af stöðluðu nálguninni, reyna þeir einfaldlega að forðast pirrandi breytingar frá enda til enda, og skipta virkni greinilega á milli þjónustu. Einskráningarþjónusta getur verið gott dæmi hér. Það hefur skýrt afmarkað hlutverk sem aðgreinir það frá annarri þjónustu. Þessi skýri aðskilnaður gerir það að verkum að í heimi ört breyttra krafna til þjónustunnar í kringum hana er ólíklegt að einskráningarþjónustan breytist. Það er til innan stranglega takmarkaðs samhengis.

Gagnatvískiptingin: endurhugsa sambandið milli gagna og þjónustu

Vandamálið er að í hinum raunverulega heimi getur viðskiptaþjónusta ekki haldið sama hreina aðskilnaði hlutverka allan tímann. Sem dæmi má nefna að sama fyrirtækjaþjónusta vinnur í meira mæli með gögnum sem koma frá annarri sambærilegri þjónustu. Ef þú tekur þátt í smásölu á netinu, þá verður vinnsla pöntunarflæðis, vörulista eða notendaupplýsinga nauðsynleg fyrir marga þjónustu þína. Hver þjónusta mun þurfa aðgang að þessum gögnum til að starfa.

Gagnatvískiptingin: endurhugsa sambandið milli gagna og þjónustu
Flestar viðskiptaþjónustur deila sama gagnastraumi, svo starf þeirra er undantekningarlaust samtvinnuð.

Þannig komum við að mikilvægu atriði sem vert er að tala um. Þó að þjónusta virki vel fyrir íhluti innviða sem starfa að mestu leyti í einangrun, endar flest viðskiptaþjónusta með því að vera samtvinnuð mun nánar.

Tvískipting gagna

Þjónustumiðaðar aðferðir gætu þegar verið til, en þær skortir enn innsýn í hvernig á að deila miklu magni gagna á milli þjónustu.

Helsta vandamálið er að gögn og þjónusta eru óaðskiljanleg. Annars vegar hvetur hjúpun okkur til að fela gögn svo hægt sé að aðskilja þjónustu hver frá annarri og auðvelda vöxt þeirra og frekari breytingar. Á hinn bóginn þurfum við að geta frjálslega skipt og sigrað sameiginleg gögn, rétt eins og önnur gögn. Aðalatriðið er að geta hafið störf strax, eins frjálslega og í hverju öðru upplýsingakerfi.

Hins vegar hafa upplýsingakerfi lítið með hjúpun að gera. Í raun er það alveg öfugt. Gagnasöfn gera allt sem þeir geta til að veita aðgang að gögnunum sem þeir geyma. Þeir koma með öflugt yfirlýsingarviðmót sem gerir þér kleift að breyta gögnunum eins og þú þarft. Slík virkni er mikilvæg á frumrannsóknarstigi, en ekki til að stjórna vaxandi flóknu þjónustu sem er í stöðugri þróun.

Gagnatvískiptingin: endurhugsa sambandið milli gagna og þjónustu

Og hér kemur upp vandamál. Mótsögn. Tvískipting. Enda snúast upplýsingakerfi um að útvega gögn og þjónusta snýst um að fela sig.

Þessir tveir kraftar eru grundvallaratriði. Þeir standa undir miklu af starfi okkar og berjast stöðugt fyrir framúrskarandi kerfum sem við byggjum upp.

Eftir því sem þjónustukerfi stækka og þróast sjáum við afleiðingar tvískiptingar gagna á margan hátt. Annaðhvort mun þjónustuviðmótið stækka, bjóða upp á sívaxandi úrval af virkni og byrja að líta út eins og mjög flottur heimaræktaður gagnagrunnur, eða við verðum svekkt og innleiðum einhverja leið til að sækja eða færa í fjöldann allan af gögnum frá þjónustu til þjónustu.

Gagnatvískiptingin: endurhugsa sambandið milli gagna og þjónustu

Aftur á móti mun það að búa til eitthvað sem lítur út eins og flottur heimaræktaður gagnagrunnur leiða til fjölda vandamála. Við munum ekki fara nánar út í hvers vegna það er hættulegt sameiginlegum gagnagrunni, við skulum bara segja að það táknar verulega kostnaðarsama verkfræði og rekstrarlega erfiðleikum fyrir fyrirtækið sem er að reyna að nota það.

Það sem verra er er að gagnamagn stækkar þjónustumörk vandamál. Því fleiri samnýtt gögn sem liggja innan þjónustu, því flóknara verður viðmótið og því erfiðara verður að sameina gagnasöfn sem koma frá mismunandi þjónustu.

Önnur nálgun að draga út og færa heil gagnasöfn hefur einnig sín vandamál. Algeng nálgun á þessa spurningu lítur út eins og að sækja og geyma allt gagnasafnið og geyma það síðan á staðnum í hverri neysluþjónustu.

Gagnatvískiptingin: endurhugsa sambandið milli gagna og þjónustu

Vandamálið er að mismunandi þjónustur túlka gögnin sem þeir neyta á mismunandi hátt. Þessi gögn eru alltaf við höndina. Þeim er breytt og unnið á staðnum. Nokkuð fljótt hætta þeir að eiga eitthvað sameiginlegt með gögnunum í upprunanum.

Gagnatvískiptingin: endurhugsa sambandið milli gagna og þjónustu
Því breytilegri sem afritin eru, því meira breytast gögnin með tímanum.

Til að gera illt verra er erfitt að leiðrétta slík gögn þegar litið er til baka (MDM Þetta er þar sem það getur raunverulega komið til bjargar). Reyndar stafa sum af þeim óleysanlegu tæknivandamálum sem fyrirtæki standa frammi fyrir vegna ólíkra gagna sem margfaldast frá forriti til forrits.

Til að finna lausn á þessu vandamáli þurfum við að hugsa öðruvísi um sameiginleg gögn. Þeir verða að verða fyrsta flokks hlutir í arkitektúrnum sem við byggjum. Pat Helland kallar slík gögn „ytri“ og þetta er mjög mikilvægur eiginleiki. Við þurfum hjúpun svo við afhjúpum ekki innri starfsemi þjónustu, en við þurfum að auðvelda þjónustum að fá aðgang að sameiginlegum gögnum svo þeir geti sinnt starfi sínu rétt.

Gagnatvískiptingin: endurhugsa sambandið milli gagna og þjónustu

Vandamálið er að hvorug aðferðin á við í dag, þar sem hvorki þjónustuviðmótin, skilaboðin, né sameiginlegi gagnagrunnurinn bjóða upp á góða lausn til að vinna með ytri gögn. Þjónustuviðmót henta illa fyrir gagnaskipti á hvaða mælikvarða sem er. Skilaboð flytja gögn en geyma ekki feril þeirra, þannig að gögn skemmast með tímanum. Sameiginlegir gagnagrunnar einblína of mikið á eitt atriði, sem heldur aftur af framförum. Við festumst óhjákvæmilega í hringrás gagnabilunar:

Gagnatvískiptingin: endurhugsa sambandið milli gagna og þjónustu
Hringrás gagnabilunar

Straumar: dreifð nálgun á gögn og þjónustu

Helst þurfum við að breyta því hvernig þjónustur vinna með sameiginleg gögn. Á þessum tímapunkti blasir hvor nálgunin við áðurnefndri tvískiptingu, þar sem ekkert töfraryk er hægt að strá á hana til að láta hana hverfa. Hins vegar getum við endurskoðað vandamálið og náð málamiðlun.

Þessi málamiðlun felur í sér ákveðna miðstýringu. Við getum notað dreifða skráningarbúnaðinn vegna þess að hann veitir áreiðanlega, stigstærða strauma. Við viljum nú að þjónusta geti sameinast og starfað á þessum sameiginlegu þráðum, en við viljum forðast flókna miðstýrða Guðþjónustu sem sinnir þessari vinnslu. Þess vegna er besti kosturinn að byggja straumvinnslu inn í hverja neytendaþjónustu. Þannig mun þjónusta geta sameinað gagnasöfn frá mismunandi aðilum og unnið með þau eins og þær þurfa.

Ein leið til að ná þessari nálgun er með því að nota streymisvettvang. Það eru margir möguleikar, en í dag munum við skoða Kafka, þar sem notkun Stateful Stream Processing þess gerir okkur kleift að leysa vandamálið sem kynnt er á skilvirkan hátt.

Gagnatvískiptingin: endurhugsa sambandið milli gagna og þjónustu

Notkun dreifðs skógarhöggskerfis gerir okkur kleift að fylgja vel troðinni slóð og nota skilaboð til að vinna með atburðadrifinn arkitektúr. Þessi nálgun er talin veita betri mælikvarða og skiptingu en beiðni-svar vélbúnaðurinn vegna þess að það gefur stjórn á flæði til móttakanda frekar en sendanda. Hins vegar, fyrir allt í þessu lífi þarftu að borga, og hér þarftu miðlara. En fyrir stór kerfi er skiptingin þess virði (sem er kannski ekki raunin fyrir meðalvefforritið þitt).

Ef miðlari er ábyrgur fyrir dreifðri skráningu frekar en hefðbundnu skilaboðakerfi geturðu nýtt þér viðbótareiginleika. Flutningurinn getur skalast línulega næstum jafn vel og dreifð skráarkerfi. Gögn geta verið geymd í annálum í nokkuð langan tíma, þannig að við fáum ekki aðeins skilaboðaskipti heldur einnig upplýsingageymslu. Stærðanleg geymsla án ótta við breytilegt samnýtt ástand.

Þú getur síðan notað staðbundna straumvinnslu til að bæta yfirlýsandi gagnagrunnsverkfærum við neysluþjónustu. Þetta er mjög mikilvæg hugmynd. Þó að gögnin séu geymd í sameiginlegum straumum sem öll þjónusta hefur aðgang að, er samansöfnunin og vinnslan sem þjónustan gerir einkarekin. Þeir finna sig einangraða innan stranglega takmarkaðs samhengis.

Gagnatvískiptingin: endurhugsa sambandið milli gagna og þjónustu
Útrýmdu tvískiptingu gagna með því að aðskilja óbreytanlega ástandsstrauminn. Bættu síðan þessari virkni við hverja þjónustu með Stateful Stream Processing.

Þannig, ef þjónustan þín þarf að vinna með pantanir, vörulista, vöruhús, mun hún hafa fullan aðgang: aðeins þú ákveður hvaða gögn á að sameina, hvar á að vinna þau og hvernig þau ættu að breytast með tímanum. Þrátt fyrir að gögnunum sé deilt er vinnan með þau algjörlega dreifð. Það er framleitt innan hverrar þjónustu, í heimi þar sem allt fer eftir þínum reglum.

Gagnatvískiptingin: endurhugsa sambandið milli gagna og þjónustu
Deildu gögnum án þess að skerða heilleika þeirra. Pakkið aðgerðinni, ekki upprunanum, í hverja þjónustu sem þarfnast hennar.

Það kemur fyrir að gögn þurfi að flytja í fjöldann. Stundum krefst þjónusta staðbundins sögulegt gagnasafn í völdu gagnagrunnsvélinni. The bragð er að þú getur tryggt að, ef nauðsyn krefur, er hægt að endurheimta afrit frá upprunanum með því að fá aðgang að dreifðu skógarhöggskerfi. Tengi í Kafka standa sig vel í þessu.

Svo, nálgunin sem fjallað er um í dag hefur nokkra kosti:

  • Gögn eru notuð í formi sameiginlegra strauma, sem hægt er að geyma í annálum í langan tíma, og vélbúnaðurinn til að vinna með sameiginleg gögn er tengdur í hverju samhengi fyrir sig, sem gerir þjónustu kleift að vinna auðveldlega og hratt. Þannig er hægt að jafna tvískiptingu gagnanna.
  • Auðvelt er að sameina gögn sem koma frá mismunandi þjónustu í sett. Þetta einfaldar samskipti við sameiginleg gögn og útilokar þörfina á að viðhalda staðbundnum gagnasöfnum í gagnagrunninum.
  • Stateful Stream Processing geymir aðeins gögn í skyndiminni og uppspretta sannleikans er áfram almennir annálar, þannig að vandamálið við gagnaspillingu með tímanum er ekki svo bráð.
  • Í kjarna þeirra er þjónusta gagnadrifin, sem þýðir að þrátt fyrir sívaxandi gagnamagn getur þjónusta samt brugðist hratt við viðskiptaatburðum.
  • Vandamál með sveigjanleika falla á miðlara, ekki þjónustu. Þetta dregur verulega úr margbreytileika ritunarþjónustu þar sem engin þörf er á að hugsa um sveigjanleika.
  • Til að bæta við nýjum þjónustum þarf ekki að breyta gömlum, þannig að það verður auðveldara að tengja nýja þjónustu.

Eins og þú sérð er þetta meira en bara Hvíld. Við höfum fengið sett af verkfærum sem gerir þér kleift að vinna með sameiginleg gögn á dreifðan hátt.

Ekki var farið yfir alla þætti í greininni í dag. Við þurfum enn að finna út hvernig á að halda jafnvægi á milli beiðni-viðbragðs hugmyndafræðinnar og atburðadrifna hugmyndafræðinnar. En við tökum á þessu næst. Það eru efni sem þú þarft að kynna þér betur, til dæmis hvers vegna Stateful Stream Processing er svona góð. Við munum tala um þetta í þriðju greininni. Og það eru aðrar öflugar byggingar sem við getum nýtt okkur ef við grípum til þeirra, td. Nákvæmlega Einu sinni Vinnsla. Það er leikjaskipti fyrir dreifð viðskiptakerfi vegna þess að það veitir viðskiptatryggingar fyrir XA í skalanlegu formi. Um þetta verður fjallað í fjórðu greininni. Að lokum verðum við að fara yfir útfærsluupplýsingar þessara meginreglna.

Gagnatvískiptingin: endurhugsa sambandið milli gagna og þjónustu

En í bili, mundu bara þetta: gagnatvískiptingin er afl sem við stöndum frammi fyrir þegar við byggjum upp viðskiptaþjónustu. Og þetta verðum við að muna. Galdurinn er að snúa öllu á hausinn og byrja að meðhöndla sameiginleg gögn sem fyrsta flokks hluti. Stateful Stream Processing veitir einstaka málamiðlun fyrir þetta. Það forðast miðstýrða „guðshluta“ sem halda aftur af framförum. Þar að auki tryggir það lipurð, sveigjanleika og seiglu gagnastreymisleiðslu og bætir þeim við hverja þjónustu. Þess vegna getum við einbeitt okkur að almennum meðvitundarstraumi sem sérhver þjónusta getur tengst og unnið með gögn sín. Þetta gerir þjónustuna skalanlegri, skiptanlegri og sjálfstæðari. Þannig að þeir munu ekki aðeins líta vel út á töflum og tilgátuprófum, heldur munu þeir einnig virka og þróast í áratugi.

Frekari upplýsingar um námskeiðið.

Heimild: www.habr.com

Bæta við athugasemd