Dichotomy ya data: kulingaliranso za ubale pakati pa data ndi ntchito

Moni nonse! Tili ndi nkhani zabwino, OTUS ikuyambitsanso maphunzirowa mu June "Software Architect", zomwe timagawana nanu nkhani zothandiza.

Dichotomy ya data: kulingaliranso za ubale pakati pa data ndi ntchito

Ngati mwapeza chinthu chonsechi cha microservices popanda nkhani iliyonse, mungakhululukidwe poganiza kuti ndizodabwitsa. Kugawaniza pulogalamu kukhala zidutswa zolumikizidwa ndi netiweki kumatanthauza kuwonjezera njira zovuta zololera kuzinthu zomwe zimafalitsidwa.

Ngakhale kuti njira iyi imaphatikizapo kuziphwanya mu mautumiki ambiri odziimira okha, cholinga chomaliza chimakhala choposa kungokhala ndi mautumikiwa pa makina osiyanasiyana. Tikulankhula pano za kuyanjana ndi dziko lakunja, lomwe limagawidwanso mu chikhalidwe chake. Osati mwaukadaulo, koma m'lingaliro la chilengedwe chomwe chimakhala ndi anthu ambiri, magulu, mapulogalamu, ndipo chilichonse mwa zigawozi chiyenera kugwira ntchito yake.

Makampani, mwachitsanzo, ndi mndandanda wa machitidwe omwe amagawidwa omwe amathandizira kuti akwaniritse cholinga china. Tanyalanyaza mfundo imeneyi kwa zaka zambiri, kuyesera kuti tigwirizane ndi mafayilo a FTPing kapena kugwiritsa ntchito zida zophatikizira mabizinesi kwinaku tikungoyang'ana zolinga zathu zokha. Koma ndikubwera kwa mautumiki, zonse zinasintha. Ntchito zatithandiza kuyang'ana kupyola m'chizimezime ndikuwona dziko la mapulogalamu odalirana omwe amagwira ntchito limodzi. Komabe, kuti tigwire ntchito bwino, ndikofunikira kuzindikira ndikupanga maiko awiri osiyana: dziko lakunja, komwe tikukhala mu chilengedwe cha mautumiki ena ambiri, komanso dziko lathu lamkati, komwe timalamulira tokha.

Dichotomy ya data: kulingaliranso za ubale pakati pa data ndi ntchito

Dziko logawidwali ndi losiyana ndi dziko lomwe tinakuliramo ndipo tidazolowera. Mfundo zomanga zomangamanga zachikhalidwe za monolithic sizimatsutsidwa. Chifukwa chake kukonza makinawa ndikokwanira kuposa kupanga chojambula choyera kapena umboni wabwino wamalingaliro. Cholinga chake ndikuwonetsetsa kuti dongosolo lotereli likugwira ntchito bwino kwa nthawi yayitali. Mwamwayi, mautumikiwa akhalapo kwa nthawi ndithu, ngakhale akuwoneka mosiyana. Maphunziro a SOA zidakali zofunikira, ngakhale zokongoletsedwa ndi Docker, Kubernetes ndi ndevu zazing'ono za hipster.

Kotero lero tiwona momwe malamulo asinthira, chifukwa chake tiyenera kuganiziranso momwe timayendera mautumiki ndi deta yomwe amapatsirana wina ndi mzake, ndi chifukwa chake tidzafunika zida zosiyana kwambiri kuti tichite.

Encapsulation sadzakhala bwenzi lanu nthawi zonse

Microservices imatha kugwira ntchito paokha. Ndi katundu uyu amene amawapatsa mtengo waukulu. Katundu yemweyu amalola kuti mautumikiwo azikula komanso kukula. Osati kwambiri m'lingaliro la kukwera kwa ma quadrillions a ogwiritsa ntchito kapena ma petabytes a deta (ngakhale izo zingathandizenso pamenepo), koma m'lingaliro la kukula kwa anthu monga magulu ndi mabungwe akukula mosalekeza.

Dichotomy ya data: kulingaliranso za ubale pakati pa data ndi ntchito

Komabe, ufulu ndi lupanga lakuthwa konsekonse. Ndiko kuti, ntchito yokhayo imatha kuyenda mosavuta komanso mwachibadwa. Koma ngati ntchito yakhazikitsidwa mkati mwa ntchito yomwe imafuna kugwiritsa ntchito ntchito ina, ndiye kuti timafunikira kusintha mautumiki onse awiri nthawi imodzi. Mu monolith izi ndizosavuta kuchita, mumangosintha ndikuzitumiza kuti zimasulidwe, koma pankhani ya kulunzanitsa mautumiki odziyimira pawokha padzakhala zovuta zambiri. Kugwirizana pakati pa magulu ndi maulendo omasulidwa kumawononga mphamvu.

Dichotomy ya data: kulingaliranso za ubale pakati pa data ndi ntchito

Monga gawo la njira yokhazikika, amangoyesa kupeΕ΅a kusintha kokhumudwitsa kumapeto, kugawa bwino magwiridwe antchito pakati pa mautumiki. Utumiki wolowa m'modzi ukhoza kukhala chitsanzo chabwino apa. Ili ndi gawo lodziwika bwino lomwe limasiyanitsa ndi mautumiki ena. Kulekanitsa momveka bwino kumeneku kumatanthauza kuti m'dziko lofuna kusintha mofulumira pa mautumiki ozungulira, ntchito imodzi yokha yolembera sikutheka kusintha. Zilipo m'mawu ochepa chabe.

Dichotomy ya data: kulingaliranso za ubale pakati pa data ndi ntchito

Vuto ndilakuti m'dziko lenileni, ntchito zamabizinesi sizingasungire kulekanitsa koyera kwa maudindo nthawi zonse. Mwachitsanzo, mabizinesi omwewo amagwira ntchito mokulirapo ndi data yochokera kuzinthu zina zofananira. Ngati mukuchita nawo malonda apaintaneti, ndiye kuti kusintha kwadongosolo, kalozera wazogulitsa kapena zambiri za ogwiritsa ntchito kumakhala kofunika pazantchito zanu zambiri. Utumiki uliwonse udzafunika kupeza deta iyi kuti igwire ntchito.

Dichotomy ya data: kulingaliranso za ubale pakati pa data ndi ntchito
Ntchito zambiri zamabizinesi zimagawana ma data omwewo, chifukwa chake ntchito yawo imakhala yolumikizana nthawi zonse.

Motero timafika pa mfundo yofunika kuikambirana. Ngakhale ntchito zimagwira ntchito bwino pazomangamanga zomwe zimagwira ntchito padera, ntchito zambiri zamabizinesi zimatha kulumikizidwa kwambiri.

Dichotomy ya data

Njira zoyendetsera ntchito zitha kukhalapo kale, komabe alibe chidziwitso cha momwe angagawire kuchuluka kwa data pakati pa mautumiki.

Vuto lalikulu ndilakuti deta ndi ntchito sizingalekanitsidwe. Kumbali imodzi, encapsulation imatilimbikitsa kubisa deta kuti mautumiki athe kupatukana wina ndi mzake ndikuthandizira kukula kwawo ndi kusintha kwina. Kumbali inayi, tifunika kugawanitsa mwaufulu ndikugonjetsa deta yogawana, monga deta ina iliyonse. Mfundo ndi yoti muyambe kugwira ntchito nthawi yomweyo, momasuka monga momwe zilili muzinthu zina.

Komabe, machitidwe azidziwitso alibe chochita ndi encapsulation. Ndipotu, ndi zosiyana kwambiri. Ma database amachita zonse zomwe angathe kuti apereke mwayi wopeza zomwe amasunga. Amabwera ndi mawonekedwe amphamvu olengeza omwe amakulolani kuti musinthe zomwe mukufuna. Kuchita koteroko ndikofunikira pakufufuza koyambirira, koma osati pakuwongolera zovuta zomwe zikukula mosalekeza.

Dichotomy ya data: kulingaliranso za ubale pakati pa data ndi ntchito

Ndipo apa pabuka vuto. Zotsutsana. Dichotomy. Kupatula apo, machitidwe azidziwitso ndi okhudza kupereka deta, ndipo ntchito ndi za kubisala.

Mphamvu ziwirizi ndi zofunika kwambiri. Amathandizira ntchito yathu yambiri, kumenyera nthawi zonse kuti tichite bwino pamakina omwe timapanga.

Pamene machitidwe a ntchito akukula ndikusintha, timawona zotsatira za dichotomy ya deta m'njira zambiri. Kaya mawonekedwe a mautumiki adzakula, ndikupereka magwiridwe antchito ochulukirachulukira ndikuyamba kuwoneka ngati nkhokwe yapanyumba yabwino kwambiri, kapena tidzakhumudwitsidwa ndikugwiritsa ntchito njira ina yopezera kapena kusuntha ma seti onse a data kuchokera ku ntchito kupita ku ntchito.

Dichotomy ya data: kulingaliranso za ubale pakati pa data ndi ntchito

Kuphatikiza apo, kupanga china chake chomwe chikuwoneka ngati chosungirako kunyumba kumabweretsa mavuto ambiri. Sitidzafotokoza mwatsatanetsatane chifukwa chake ndi zoopsa adagawana database, tingonena kuti ikuyimira uinjiniya wokwera mtengo komanso wogwirira ntchito zovuta kwa kampani yomwe ikuyesera kuigwiritsa ntchito.

Choyipa chachikulu ndichakuti kuchuluka kwa data kumakulitsa mavuto amalire a ntchito. Zomwe zimagawidwa kwambiri zimakhala mkati mwautumiki, momwe mawonekedwewo amakhalira ovuta kwambiri ndipo zimakhala zovuta kwambiri kuphatikiza ma data omwe amachokera ku mautumiki osiyanasiyana.

Njira ina yopezera ndikusuntha ma seti onse a data ilinso ndi zovuta zake. Njira yodziwika bwino pafunsoli ikuwoneka ngati kungotenga ndikusunga deta yonse, kenako ndikuyisunga kwanuko pakugwiritsa ntchito kulikonse.

Dichotomy ya data: kulingaliranso za ubale pakati pa data ndi ntchito

Vuto ndiloti mautumiki osiyanasiyana amatanthauzira deta yomwe amadya mosiyana. Deta iyi imakhala pafupi nthawi zonse. Amasinthidwa ndikusinthidwa kwanuko. Mwamsanga amasiya kukhala ndi chilichonse chofanana ndi zomwe zili mugwero.

Dichotomy ya data: kulingaliranso za ubale pakati pa data ndi ntchito
Makope osinthika kwambiri, m'pamenenso deta imasiyanasiyana pakapita nthawi.

Kuti zinthu ziipireipire, deta yotereyi ndi yovuta kuwongolera m'mbuyo (MDM Apa ndipamene ingathedi kudzapulumutsa). M'malo mwake, zovuta zina zaukadaulo zomwe mabizinesi amakumana nazo zimachokera ku data yosiyana yomwe imachulukirachulukira kuchokera kukugwiritsa ntchito kupita ku ntchito.

Kuti tipeze yankho la vutoli, tiyenera kulingalira mosiyana za deta yogawana. Ayenera kukhala zinthu zapamwamba muzomanga zomwe timamanga. Pat Helland imatcha deta yotereyi "yakunja", ndipo ichi ndi chinthu chofunikira kwambiri. Timafunikira encapsulation kuti tisawonetse momwe ntchito ikugwiritsidwira ntchito, koma tiyenera kupangitsa kuti zikhale zosavuta kuti mautumiki apeze deta yogawana nawo kuti athe kugwira ntchito zawo molondola.

Dichotomy ya data: kulingaliranso za ubale pakati pa data ndi ntchito

Vuto ndilakuti palibe njira yomwe ili yoyenera masiku ano, popeza palibe njira zolumikizirana, kapena kutumizirana mameseji, kapena Shared Database yomwe imapereka njira yabwino yogwirira ntchito ndi deta yakunja. Malo olumikizirana ndi mautumiki sali oyenera kusinthana kwa data pamlingo uliwonse. Kutumiza mauthenga kumasuntha deta koma sikusunga mbiri yake, motero deta imawonongeka pakapita nthawi. Shared Databases imayang'ana kwambiri pa mfundo imodzi, zomwe zimalepheretsa kupita patsogolo. Mosakayika timakakamira mkombero wakulephera kwa data:

Dichotomy ya data: kulingaliranso za ubale pakati pa data ndi ntchito
Mkombero wa kulephera kwa data

Mitsinje: njira yogawa deta ndi ntchito

Moyenera, tifunika kusintha momwe mautumiki amagwirira ntchito ndi data yogawana. Panthawiyi, njira iliyonse imayang'anizana ndi dichotomy yomwe tatchulayi, chifukwa palibe fumbi lamatsenga lomwe lingakhoze kuwazapo kuti liwonongeke. Komabe, tikhoza kuganiziranso vutolo n’kufika pogwirizana.

Kugwirizana uku kumaphatikizapo kukhazikika kwapakati. Titha kugwiritsa ntchito makina owerengera omwe amagawidwa chifukwa amapereka mitsinje yodalirika, yowongoka. Tsopano tikufuna kuti mautumiki azitha kujowina ndikugwiritsa ntchito ulusi womwe ukugawidwa, koma tikufuna kupewa zovuta zapakatikati za Mulungu zomwe zimakonza izi. Chifukwa chake, njira yabwino kwambiri ndikumanga ma stream processing muntchito iliyonse ya ogula. Mwanjira iyi, mautumiki azitha kuphatikiza ma data kuchokera kumadera osiyanasiyana ndikugwira nawo ntchito momwe akufunira.

Njira imodzi yokwaniritsira njirayi ndiyo kugwiritsa ntchito nsanja yotsatsira. Pali zosankha zambiri, koma lero tiwona Kafka, popeza kugwiritsa ntchito kwake Stateful Stream Processing kumatilola kuthana ndi vutoli.

Dichotomy ya data: kulingaliranso za ubale pakati pa data ndi ntchito

Kugwiritsa ntchito njira yogawira mitengo kumapangitsa kuti tizitsatira njira yopondedwa bwino ndikugwiritsa ntchito mauthenga kuti tigwire nawo ntchito zomangamanga zoyendetsedwa ndi zochitika. Njirayi imaganiziridwa kuti ikupereka makulitsidwe abwinoko ndi kugawa kusiyana ndi njira yoyankhira pempho chifukwa imapereka ulamuliro wa kayendedwe ka wolandira osati wotumiza. Komabe, pa chilichonse m'moyo uno muyenera kulipira, ndipo apa mukufunikira broker. Koma pamakina akuluakulu, kusinthanitsa ndikoyenera (zomwe sizingakhale choncho pakugwiritsa ntchito kwanu pa intaneti).

Ngati broker ali ndi udindo wodula mitengo m'malo motumizirana mauthenga achikhalidwe, mutha kugwiritsa ntchito mwayi wowonjezera. Mayendedwe amatha kukula mozungulira pafupifupi komanso mawonekedwe amafayilo ogawidwa. Deta imatha kusungidwa m'zipika kwa nthawi yayitali, kotero kuti sitingopeza kusinthanitsa mauthenga, komanso kusungirako zambiri. Kusungirako scalable popanda kuopa kusintha kugawana dziko.

Mutha kugwiritsanso ntchito mayendedwe odziwika bwino kuti muwonjezere zida zodziwitsira zogwiritsa ntchito. Ili ndi lingaliro lofunika kwambiri. Ngakhale kuti deta imasungidwa m'mitsinje yogawidwa yomwe mautumiki onse angathe kufika, kusonkhanitsa ndi kukonza zomwe ntchitoyo imachita ndizobisika. Amadzipeza kukhala odzilekanitsa mkati mwa zochitika zochepa kwambiri.

Dichotomy ya data: kulingaliranso za ubale pakati pa data ndi ntchito
Chotsani dichotomy ya data polekanitsa mayendedwe osasinthika. Kenako onjezani izi ku ntchito iliyonse pogwiritsa ntchito Stateful Stream Processing.

Chifukwa chake, ngati ntchito yanu ikufunika kugwira ntchito ndi malamulo, kabukhu lazinthu, malo osungiramo zinthu, idzakhala ndi mwayi wokwanira: ndi inu nokha mudzasankha zomwe mungaphatikizire, komwe mungaikonze komanso momwe iyenera kusintha pakapita nthawi. Ngakhale kuti deta imagawidwa, ntchito nayo imagawidwa kwathunthu. Zimapangidwa mkati mwa msonkhano uliwonse, m'dziko limene chirichonse chimayenda motsatira malamulo anu.

Dichotomy ya data: kulingaliranso za ubale pakati pa data ndi ntchito
Gawani deta popanda kusokoneza kukhulupirika kwake. Gwirizanitsani ntchitoyo, osati gwero, mu ntchito iliyonse yomwe ikufunika.

Zimachitika kuti deta iyenera kusunthidwa mochuluka. Nthawi zina ntchito imafuna chidziwitso cha mbiri yakale mu injini yosankhidwa. Chinyengo ndi chakuti mutha kutsimikizira kuti, ngati kuli kofunikira, kopi ikhoza kubwezeretsedwa kuchokera ku gwero mwa kupeza njira yogawa mitengo. Zolumikizira ku Kafka zimagwira ntchito bwino pa izi.

Chifukwa chake, njira yomwe takambirana lero ili ndi zabwino zingapo:

  • Deta imagwiritsidwa ntchito ngati mitsinje wamba, yomwe imatha kusungidwa muzolemba kwa nthawi yayitali, ndipo njira yogwirira ntchito ndi deta wamba imakhala yovuta pamutu uliwonse, zomwe zimapangitsa kuti ntchito zizigwira ntchito mosavuta komanso mwachangu. Mwanjira iyi, dichotomy ya data ikhoza kukhala yolinganiza.
  • Deta yochokera ku mautumiki osiyanasiyana imatha kuphatikizidwa mosavuta kukhala ma seti. Izi zimathandizira kuyanjana ndi data yomwe amagawana ndikuchotsa kufunika kosunga ma data am'deralo munkhokwe.
  • Stateful Stream Processing imangosunga zidziwitso, ndipo gwero la chowonadi limakhalabe zipika, kotero vuto lachiwopsezo cha data pakapita nthawi silili lovuta kwambiri.
  • Pachimake, mautumiki amayendetsedwa ndi deta, kutanthauza kuti ngakhale kuchuluka kwa deta kumachulukirachulukira, mautumiki amatha kuyankha mofulumira kuzochitika zamalonda.
  • Mavuto a scalability amagwera pa broker, osati ntchito. Izi zimachepetsa kwambiri zovuta zolemba ntchito, popeza palibe chifukwa choganizira za scalability.
  • Kuwonjezera mautumiki atsopano sikufuna kusintha akale, kotero kulumikiza mautumiki atsopano kumakhala kosavuta.

Monga mukuwonera, izi ndizoposa REST. Talandira zida zomwe zimakulolani kuti mugwiritse ntchito ndi data yogawana m'njira zogawidwa.

Sizinthu zonse zomwe zidafotokozedwa m'nkhani yamasiku ano. Tiyenerabe kudziwa momwe tingagwirizanitse pakati pa paradigm-yankho la pempho ndi paradigm yoyendetsedwa ndi zochitika. Koma tidzathana nazo nthawi ina. Pali mitu yomwe muyenera kuidziwa bwino, mwachitsanzo, chifukwa chiyani Stateful Stream Processing ndiyabwino kwambiri. Tikambirana zimenezi m’nkhani yachitatu. Ndipo palinso zomanga zina zamphamvu zomwe titha kutengerapo mwayi ngati tigwiritsa ntchito, mwachitsanzo, Ndendende Kamodzi Processing. Ndiwosintha masewera pamabizinesi omwe amagawidwa chifukwa amapereka zitsimikiziro zamabizinesi XA mu mawonekedwe owopsa. Izi zidzakambidwa m’nkhani yachinayi. Pomaliza, tiyenera kupenda tsatanetsatane wa kukhazikitsidwa kwa mfundozi.

Dichotomy ya data: kulingaliranso za ubale pakati pa data ndi ntchito

Koma pakadali pano, ingokumbukirani izi: dichotomy ya data ndi mphamvu yomwe timakumana nayo pomanga ntchito zamabizinesi. Ndipo tiyenera kukumbukira izi. Chinyengo ndikutembenuzira chilichonse pamutu pake ndikuyamba kuchitira zinthu zogawana nawo ngati zinthu zapamwamba. Stateful Stream Processing imapereka kusagwirizana kwapadera pa izi. Imapewa "Zigawo za Mulungu" zomwe zimalepheretsa kupita patsogolo. Kuphatikiza apo, imawonetsetsa mphamvu, scalability ndi kulimba kwa mapaipi akutsatsira deta ndikuwonjezera pa ntchito iliyonse. Chifukwa chake, titha kuyang'ana pagulu lachidziwitso chomwe ntchito iliyonse ingalumikizane ndikugwira ntchito ndi deta yake. Izi zimapangitsa kuti mautumikiwo akhale osinthika, osinthika komanso odziyimira pawokha. Chifukwa chake sangangowoneka bwino pama board oyera ndi mayeso amalingaliro, komanso adzagwira ntchito ndikusinthika kwazaka zambiri.

Dziwani zambiri za maphunzirowa.

Source: www.habr.com

Kuwonjezera ndemanga