Iyo data dichotomy: kufunga zvakare hukama pakati pe data nemasevhisi

Mhoroi mose! Tine nhau dzakanaka, OTUS iri kutangisa kosi zvakare muna Chikumi "Software Architect", maererano netsika yatinogovana nemi zvinhu zvinobatsira.

Iyo data dichotomy: kufunga zvakare hukama pakati pe data nemasevhisi

Kana iwe wakasangana nechinhu ichi chese microservices pasina chero mamiriro ezvinhu, unoregererwa nekufunga kuti zvinoshamisa. Kupatsanura application kuita zvidimbu zvakabatana netiweki zvinoreva kuwedzera maitiro akaomarara ekushivirira kune inobuda system yakagoverwa.

Kunyangwe iyi nzira inosanganisira kuiputsa kuita akawanda akazvimirira masevhisi, chinangwa chekupedzisira chinopfuura kungoita kuti masevhisi ashande pamakina akasiyana. Tiri kutaura pano pamusoro pekudyidzana nenyika yekunze, iyo inogoverwawo muhunhu hwayo. Kwete mupfungwa yehunyanzvi, asi mupfungwa ye ecosystem ine vanhu vazhinji, zvikwata, zvirongwa, uye chimwe nechimwe chezvikamu izvi neimwe nzira inoda kuita basa rayo.

Makambani, semuenzaniso, muunganidzwa wemasisitimu akagoverwa ayo pamwe chete anobatsira mukuzadzikiswa kwechimwe chinangwa. Isu takafuratira chokwadi ichi kwemakumi emakore, tichiedza kuwana kubatana nekuendesa mafaera pamusoro peFTP kana kushandisa mabhizinesi ekubatanidza maturusi, tichitarisa pane zvedu pachedu zvinangwa. Asi nekuuya kwesevhisi, zvese zvakachinja. Masevhisi akatibatsira kuti titarise seri kwedenga uye kuona nyika yezvirongwa zvinodyidzana zvinoshanda pamwechete. Nekudaro, kuti ushande zvinobudirira, zvinodikanwa kuziva nekugadzira nyika mbiri dzakasiyana zvakasiyana: nyika yekunze, kwatinogara mune ecosystem yemamwe akawanda masevhisi, uye yedu pachedu, nyika yemukati, yatinotonga tega.

Iyo data dichotomy: kufunga zvakare hukama pakati pe data nemasevhisi

Iyi nyika yakagoverwa yakasiyana neyatakakurira uye yatakajaira. Misimboti yekuvaka yechinyakare monolithic architecture haimiri pakushoropodzwa. Saka kuwana aya masisitimu chaiwo kunopfuura kugadzira inotonhorera chena dhiyagiramu kana inotonhorera humbowo hwepfungwa. Pfungwa ndeyekuona kuti hurongwa hwakadaro hunoshanda zvinobudirira kwenguva yakareba. Sezvineiwo, masevhisi anga aripo kwenguva yakati rebei, kunyangwe achitaridzika zvakasiyana. Zvidzidzo zveSOA zvichiri zvakakosha, kunyange zvakarungwa neDocker, Kubernetes uye ndebvu shoma shoma.

Saka nhasi tichatarisa kuti mitemo yakachinja sei, nei tichifanira kufunga zvakare nzira yatinosvika nayo masevhisi uye data yavanopfuudza kune mumwe nemumwe, uye nei tichizoda maturusi akasiyana zvachose kuzviita.

Encapsulation haizogara iri shamwari yako

Microservices inogona kushanda yakazvimirira kubva kune mumwe nemumwe. Ndiyo pfuma iyi inovapa kukosha kukuru. Ichi chivakwa chimwe chete chinobvumira masevhisi kukura uye kukura. Kwete zvakanyanya mupfungwa yekukwira kune quadrillions yevashandisi kana petabytes yedata (kunyangwe izvo zvinogona kubatsira ipapo), asi mupfungwa yekuyera maererano nevanhu sezvo zvikwata nemasangano zvinokura zvichiramba.

Iyo data dichotomy: kufunga zvakare hukama pakati pe data nemasevhisi

Zvisinei, kuzvimirira bakatwa rinocheka nekwose. Kureva, sevhisi pachayo inogona kumhanya nyore uye zvakasikwa. Asi kana basa rikaitwa mukati mesevhisi inoda kushandiswa kweimwe sevhisi, saka tinopedzisira tava kuita shanduko kumasevhisi ese ari maviri panguva imwe chete. Mune monolith izvi zviri nyore kuita, iwe unongoita shanduko uye kutumira kuti isunungurwe, asi munyaya yekufananidza masevhisi akazvimiririra pachava nemamwe matambudziko. Kurongeka pakati pezvikwata uye kuburitswa kutenderera kunoparadza agility.

Iyo data dichotomy: kufunga zvakare hukama pakati pe data nemasevhisi

Sechikamu chemaitiro akajairwa, ivo vanongoyedza kudzivirira kutsamwisa kwekupedzisira-kusvika-kumagumo shanduko, kugovera zvakajeka kushanda pakati pemasevhisi. Single-sign-on service inogona kuva muenzaniso wakanaka pano. Iine basa rinonyatsotsanangurwa rinoisiyanisa kubva kune mamwe mabasa. Uku kupatsanurwa kwakajeka kunoreva kuti munyika yekukurumidza kuchinja zvinodiwa pamasevhisi akaitenderedza, sevhisi imwe chete yekusaina haigone kuchinja. Iripo mukati memamiriro akaganhurirwa.

Iyo data dichotomy: kufunga zvakare hukama pakati pe data nemasevhisi

Dambudziko nderekuti munyika chaiyo, masevhisi ebhizinesi haakwanise kuchengetedza kwakafanana kuparadzaniswa kwemabasa nguva dzese. Semuenzaniso, iwo masevhisi ebhizinesi mamwe anoshanda kusvika pamwero mukuru nedata rinobva kune mamwe masevhisi akafanana. Kana iwe uchibatanidzwa mukutengesa kwepamhepo, ipapo kugadzirisa kuyerera kuyerera, chigadzirwa catalog kana ruzivo rwemushandisi chinozove chinodiwa kune akawanda masevhisi ako. Imwe neimwe yemasevhisi inoda kuwana iyi data kuti ishande.

Iyo data dichotomy: kufunga zvakare hukama pakati pe data nemasevhisi
Mazhinji masevhisi ebhizinesi anogovera yakafanana data rwizi, saka basa ravo rinogara rakapindirana.

Nokudaro tinosvika pachinhu chakakosha chakakodzera kutaura nezvacho. Nepo masevhisi achishanda nemazvo kune zvikamu zvezvivakwa zvinoshanda zvakanyanya mukuzvimiririra, mazhinji masevhisi ebhizinesi anopedzisira apindirana zvakanyanya.

Data dichotomy

Masevhisi-anotungamirwa maitiro anogona kunge atovepo, asi ivo vachiri kushaya ruzivo rwekugovana huwandu hukuru hwe data pakati pemasevhisi.

Dambudziko guru nderekuti data nemasevhisi hazviparadzaniswe. Kune rimwe divi, encapsulation inotikurudzira kuvanza data kuitira kuti masevhisi apatsanurwe kubva kune mumwe uye kufambisa kukura kwavo uye kumwe shanduko. Kune rimwe divi, isu tinofanirwa kukwanisa kugovera zvakasununguka uye kukunda data yakagovaniswa, senge chero imwe data. Pfungwa yacho ndeyekukwanisa kutanga kushanda nekukasira, zvakasununguka senge mune chero imwe ruzivo system.

Nekudaro, masisitimu eruzivo ane zvishoma zvekuita ne encapsulation. Kutaura zvazviri, zvakasiyana chaizvo. Databases vanoita zvese zvavanogona kupa mukana kune data ravanochengeta. Ivo vanouya neine simba rekuzivisa interface iyo inokutendera iwe kuti uchinje iyo data sezvaunoda. Kushanda kwakadaro kwakakosha padanho rekutanga rekutsvagisa, asi kwete kutonga kuoma kuri kukura kwesevhisi inogara ichishanduka.

Iyo data dichotomy: kufunga zvakare hukama pakati pe data nemasevhisi

Zvino panomuka dambudziko. Contradiction. Dichotomy. Mushure mezvose, masisitimu eruzivo ari nezvekupa data, uye masevhisi ari pamusoro pekuhwanda.

Masimba maviri aya akakosha. Ivo vanosimbisa rakawanda rebasa redu, vachigara vachirwira kugona muhurongwa hwatinovaka.

Sezvo masisitimu ebasa achikura uye nekushanduka, tinoona mhedzisiro yedata dichotomy munzira dzakawanda. Pamwe iyo sevhisi interface ichakura, ichipa huwandu hunoramba huchiwedzera hwekushanda uye kutanga kuita senge yakasarudzika dhatabhesi rekumba, kana isu tinozovhiringidzika uye toshandisa imwe nzira yekudzosa kana kufambisa en masse yese seti yedata kubva kune rimwe basa kuenda kune rimwe basa.

Iyo data dichotomy: kufunga zvakare hukama pakati pe data nemasevhisi

Nekudaro, kugadzira chimwe chinhu chinoita senge dhizaini yemusha dhatabhesi kunotungamira kune azere matambudziko. Hatisi kuzotaura zvakadzama nezvekuti nei zvine ngozi yakagovaniswa database, ngatitii inomiririra kukosha kweinjiniya uye kushanda matambudziko kune kambani iri kuyedza kuishandisa.

Chakatonyanya kuipa ndechekuti mavhoriyamu edata anowedzera matambudziko emuganho webasa. Iyo yakawanda yakagovaniswa data iri mukati mesevhisi, iyo yakanyanya kuomarara iyo interface ichave uye zvakanyanya kuoma kusanganisa seti yedata inobva kune akasiyana masevhisi.

Iyo imwe nzira yekubvisa uye kufambisa yese data seti inewo matambudziko ayo. Maitiro akajairwa kumubvunzo uyu anoita sekungotora nekuchengetedza dhata rese rese, uye nekurichengeta munharaunda mune yega yega sevhisi.

Iyo data dichotomy: kufunga zvakare hukama pakati pe data nemasevhisi

Dambudziko nderekuti masevhisi akasiyana anodudzira data ravanodya zvakasiyana. Iyi data inogara iripo. Izvo zvinogadziriswa uye zvinogadziriswa munharaunda. Nekukurumidza ivo vanomira kuita chero chinhu chakafanana neiyo data mune sosi.

Iyo data dichotomy: kufunga zvakare hukama pakati pe data nemasevhisi
Iyo yakanyanya kuchinjika makopi, iyo yakawanda data ichasiyana nekufamba kwenguva.

Kuita kuti zvinhu zvinyanye kuoma, data rakadaro rakaoma kugadzirisa mukutarisa zvakare (MDM Apa ndipo panogona kunyatsouya kuzonunura). Muchokwadi, mamwe ematambudziko etekinoroji asingagoneki ayo mabhizinesi anotarisana nawo anomuka kubva kune akasiyana data inowanda kubva kune application kuenda kune application.

Kuti tiwane mhinduro kudambudziko iri, tinofanira kufunga zvakasiyana nezve data yakagovaniswa. Izvo zvinofanirwa kuve zvinhu zvekirasi yekutanga mune zvivakwa zvatinovaka. Pat Helland inodana data yakadaro "yekunze", uye ichi chinhu chakakosha zvikuru. Tinoda encapsulation kuti tisafumure mashandire emukati mesevhisi, asi tinofanirwa kuita kuti zvive nyore kuti masevhisi awane data rakagovaniswa kuti vagoita mabasa avo nemazvo.

Iyo data dichotomy: kufunga zvakare hukama pakati pe data nemasevhisi

Dambudziko nderekuti hapana nzira ine basa nhasi, sezvo isiri iyo sevhisi yekubatanidza, kana meseji, kana iyo Yakagoverwa Database inopa mhinduro yakanaka yekushanda nedata rekunze. Sevhisi interfaces haina kukodzera kuchinjisa data pane chero chiyero. Messaging inofambisa data asi haichengete nhoroondo yayo, saka data inoshatiswa nekufamba kwenguva. Shared Databases inotarisa zvakanyanya pane imwe pfungwa, iyo inodzosera kumashure kufambira mberi. Isu tinonamira mukutenderera kwekutadza kwedata:

Iyo data dichotomy: kufunga zvakare hukama pakati pe data nemasevhisi
Kutenderera kwekutadza kwedata

Nzizi: nzira yakasarudzika kune data nemasevhisi

Zvakanakisa, isu tinofanirwa kushandura nzira iyo masevhisi anoshanda neakagovaniswa data. Panguva ino, chero nzira yakatarisana neyambotaurwa dichotomy, sezvo pasina guruva remashiripiti rinogona kusaswa pariri kuti riparare. Zvisinei, tinogona kufunga patsva dambudziko racho tosvika pakubvumirana.

Uku kuwirirana kunosanganisira imwe nhanho yepakati. Isu tinogona kushandisa yakagoverwa yegiyo meshini nekuti inopa yakavimbika, scalable hova. Isu ikozvino tinoda kuti masevhisi akwanise kujoinha uye kushanda pane idzi tambo dzakagovaniswa, asi isu tinoda kudzivirira yakaoma yepakati Mwari masevhisi anoita izvi kugadzirisa. Naizvozvo, yakanakisa sarudzo ndeyekuvaka rwizi kugadzirisa mune yega yega sevhisi yevatengi. Nenzira iyi, masevhisi anozokwanisa kusanganisa seti yedata kubva kwakasiyana masosi uye kushanda navo nenzira yavanoda.

Imwe nzira yekuzadzisa iyi nzira ndeyekushandisa yekushambadzira chikuva. Pane zvakawanda zvingasarudzwa, asi nhasi tichatarisa kuKafka, sezvo kushandiswa kweStateful Stream Processing kunotibvumira kunyatsogadzirisa dambudziko rakaratidzwa.

Iyo data dichotomy: kufunga zvakare hukama pakati pe data nemasevhisi

Kushandisa nzira yekutema matanda yakagoverwa kunotibvumira kutevera nzira yakatsikwa-tsikwa uye kushandisa meseji kushanda nayo chivakwa chinofambiswa nechiitiko. Iyi nzira inoonekwa seyo kupa zvirinani kuyera uye kupatsanura pane yekukumbira-mhinduro nzira nekuti inopa kutonga kwekuyerera kune anogamuchira kwete iye anotumira. Zvisinei, kune zvose zvehupenyu huno iwe unofanirwa kubhadhara, uye pano iwe unoda mutengesi. Asi kune mahombe masisitimu, iko kutengeserana kwakakosha (izvo zvingave zvisiri izvo kune yako avhareji yewebhu application).

Kana bhuroka iine basa rekugovera matanda kwete yechinyakare mameseji system, unogona kutora mukana wemamwe maficha. Iyo yekufambisa inogona kuyera mutsara ingangoita pamwe neyakagoverwa faira system. Dhata inogona kuchengetwa mumatanda kwenguva yakati rebei, saka isu tinowana kwete chete meseji kuchinjana, asiwo kuchengetedza ruzivo. Scalable chengetedzo pasina kutya kweinoshanduka yakagovaniswa mamiriro.

Iwe unogona ipapo kushandisa stateful rukova kugadzirisa kuwedzera declarative dhatabhesi maturusi kumasevhisi ekushandisa. Iyi ipfungwa yakakosha zvikuru. Nepo iyo data yakachengetwa muhova dzakagovaniswa dzinogona kuwana masevhisi ese, kuunganidzwa uye kugadzirisa kunoitwa nesevhisi kwakavanzika. Vanozviwana vazviparadzanisa mukati memamiriro ezvinhu akaganhurirwa zvikuru.

Iyo data dichotomy: kufunga zvakare hukama pakati pe data nemasevhisi
Bvisa data dichotomy nekuparadzanisa iyo isingachinji yenyika rwizi. Wobva wawedzera mashandiro aya kune ese masevhisi uchishandisa Stateful Stream Processing.

Saka, kana sevhisi yako ichida kushanda nemaodha, kabhuraki yechigadzirwa, imba yekuchengetera zvinhu, ichave iine mukana wakazara: iwe chete ndiwe uchasarudza kuti ndeipi data yekubatanidza, kupi kuti igadzirise uye kuti inofanira kuchinja sei nekufamba kwenguva. Kunyangwe iyo iyo data yakagovaniswa, shanda nayo inogadzwa zvachose. Inogadzirwa mukati mesevhisi yega yega, munyika umo zvinhu zvese zvinoenda zvinoenderana nemitemo yako.

Iyo data dichotomy: kufunga zvakare hukama pakati pe data nemasevhisi
Govera data pasina kukanganisa kutendeseka kwayo. Encapsulate basa, kwete kunobva, musevhisi yese inoida.

Zvinoitika kuti data inoda kufambiswa muzhinji. Dzimwe nguva sevhisi inoda yemuno nhoroondo dataset mune yakasarudzwa dhatabhesi injini. Hunyengeri ndehwekuti iwe unogona kuvimbisa kuti, kana zvichidikanwa, kopi inogona kudzoserwa kubva kunobva nekuwana yakagoverwa yekutema michina. Vanobatanidza muKafka vanoita basa guru reizvi.

Saka, nzira inokurukurwa nhasi ine zvakawanda zvakanakira:

  • Dhata inoshandiswa nenzira yezvikova zvakajairika, izvo zvinogona kuchengetwa mumatanda kwenguva yakareba, uye nzira yekushanda ne data yakajairwa yakaomeswa mune yega yega mamiriro, ayo anobvumira masevhisi kushanda nyore uye nekukurumidza. Nenzira iyi, dichotomy ye data inogona kuenzana.
  • Dhata rinouya kubva kune akasiyana masevhisi rinogona kusanganiswa nyore kuita seti. Izvi zvinorerutsa kudyidzana nedata rakagovaniswa uye zvinobvisa kukosha kwekuchengeta dhatabheti dzemunharaunda mudhatabhesi.
  • Stateful Stream Processing chete caches data, uye kwainobva chokwadi kunoramba kuri matanda akajairwa, saka dambudziko rehuori hwe data nekufamba kwenguva harina kunyanyo nyanya.
  • Mukati mavo, masevhisi anofambiswa nedata, zvichireva kuti kunyangwe inoramba ichiwedzera mavhoriyamu edata, masevhisi anogona kuramba achipindura nekukurumidza kune zviitiko zvebhizinesi.
  • Scalability nyaya dzinowira pane broker, kwete masevhisi. Izvi zvinoderedza zvakanyanya kuoma kwekunyora masevhisi, sezvo pasina chikonzero chekufunga nezve scalability.
  • Kuwedzera masevhisi matsva hakudi kuchinja ekare, saka kubatanidza masevhisi matsva kunova nyore.

Sezvauri kuona, izvi zvinopfuura REST chete. Takagamuchira seti yezvishandiso zvinokutendera kuti ushande nedata rakagovaniswa nenzira yakasarudzika.

Haasi ese akafukidzwa muchinyorwa chanhasi. Isu tichiri kuda kuona kuti tingaenzanisa sei pakati pechikumbiro-mhinduro paradigm uye paradigm inofambiswa nechiitiko. Asi tichabata nazvo nguva inotevera. Pane misoro yaunofanirwa kuziva zvirinani, semuenzaniso, nei Stateful Stream Processing yakanaka kudaro. Tichataura nezvazvo munyaya yechitatu. Uye kune zvimwe zvivakwa zvine simba zvatingatore mukana nazvo kana tikatendeukira kwavari, semuenzaniso, Exactly Once Processing. Iyo inoshandura mutambo kune yakagoverwa bhizinesi masisitimu nekuti inopa transactional vimbiso ye XA mune scalable fomu. Izvi zvichakurukurwa munyaya yechina. Chekupedzisira, isu tichafanirwa kuenda pamusoro pemashandisirwo emisimboti iyi.

Iyo data dichotomy: kufunga zvakare hukama pakati pe data nemasevhisi

Asi ikozvino, ingorangarira izvi: iyo data dichotomy isimba ratinosangana naro pakuvaka bhizinesi masevhisi. Uye tinofanira kurangarira izvi. Iyo yehunyengeri ndeyekushandura zvese mumusoro wayo uye kutanga kubata yakagovaniswa data seyekutanga-kirasi zvinhu. Stateful Stream Processing inopa yakasarudzika kubvumirana pane izvi. Inodzivirira pakati pe "Mwari Zvikamu" izvo zvinodzosera kumashure kufambira mberi. Zvakare, inova nechokwadi chekugona, scalability uye kusimba kwemapaipi ekutepfenyura data uye inovawedzera kune ese masevhisi. Naizvozvo, isu tinogona kutarisa kune yakajairika rwizi rwekuziva uko chero sevhisi inogona kubatana nekushanda nedata rayo. Izvi zvinoita kuti masevhisi awedzere scalable, anogona kuchinjika uye anozvimiririra. Saka ivo havangotaridzike vakanaka pamabhodhi machena uye bvunzo dzekufungidzira, asi ivo vachashanda uye nekushanduka kwemakumi emakore.

Dzidza zvakawanda nezvekosi.

Source: www.habr.com

Voeg