MÀluarkitektuur veebi teenustele: tehnoloogia pÔhialused ja pÔhimÔtted

In-Memory — andmete salvestamise kontseptsioonide kogum, kus need salvestatakse rakenduse mĂ€llu ning ketas kasutatakse varukoopiate jaoks. Traditsioonilistes lĂ€henemisviisides hoitakse andmeid kettal, samas kui mĂ€lu töötab vahemĂ€luna. NĂ€iteks veebirakendus, millel on andmete töötlemise taust, pĂ€rib neid salvestusest: saab, transformeerib ning edastab palju andmeid ĂŒle vĂ”rgu. In-Memory puhul saadetakse arvutusandmed otse andmetele — salvestusse, kus nad töödeldakse, vĂ€hendades vĂ”rgu koormust.

Vaata videot
Graafika arhitektuuri tĂ”ttu on In-Memory ligipÀÀs andmetele mitu korda, mĂ”nikord isegi kordades kiirem. NĂ€iteks soovivad panga analĂŒĂŒtikud vaadata analĂŒĂŒsirakenduses vĂ€lja antud laenude aruandeid pĂ€evade kaupa eelmisel aastal. See protsess traditsioonilises andmebaasis vĂ”tab minuteid, samas kui In-Memory lahenduse puhul kuvatakse see peaaegu koheselt. Seda seetĂ”ttu, et lĂ€henemine vĂ”imaldab salvestada palju rohkem teavet, mis on kergesti ligipÀÀsetav mĂ€lus. Rakendus ei pea kĂŒsima andmeid kĂ”vakettalt, mille ligipÀÀs on piiratud vĂ”rgu ja ketta kiirusest.

Millised muud vĂ”imalused on In-Memory lahendusega saadaval ja mis see lĂ€henemine endast kujutab, rÀÀgib Vladimir Pligin — GridGaini insener. See ĂŒlevaatlik artikkel on kasulik veebirakenduste tagaplaanide arendajatele, kes pole töötanud In-Memory tehnoloogiaga ja soovivad proovida, vĂ”i huvituvad kaasaegsetest tarkvaraarenduse suundumustest ja arhitektuuri projekteerimisest.

MĂ€rkus. Artikkel pĂ”hineb Vladimiri ettekande tĂ”lgendamises #GetIT Conf konverentsil. Enne isoleerimise algust korraldasime regulaarselt kohtumisi ja konverentse arendajatele Moskvas ja Peterburis, kus arutasime suundumusi, aktuaalseid arenduskĂŒsimusi, probleeme ja nende lahendusi. Praegu ei saa me konverentse korraldada, kuid on ideaalne aeg jagada kasulikke materjale minevikust.

Kes ja kuidas kasutab In-Memory

In-Memory kasutatakse kÔige sagedamini seal, kus on vajalik kiire kasutajakogemus vÔi suurte andmemahtude töötlemine.

  • Banka kasutavad In-Memory tehnoloogiat, nĂ€iteks klientide rakenduste kasutamise viivituste vĂ€hendamiseks vĂ”i kliendi analĂŒĂŒsimiseks enne laenu andmist.
  • FinTech kasutavad In-Memoryt, et parandada pankade teenuste ja rakenduste jĂ”udlust, kes viivad andmete töötlemise ja analĂŒĂŒsi vĂ€lja. 
  • ĐĄŃ‚Ń€Đ°Ń…ĐŸĐČыД ĐșĐŸĐŒĐżĐ°ĐœĐžĐž: riskihindamiseks, nĂ€iteks, analĂŒĂŒsides kliendi andmeid mitme aasta jooksul.
  • LogistikaettevĂ”tted. Need töötlevad palju andmeid, nĂ€iteks ĂŒldiselt, et arvutada vĂ€lja parimaid marsruute kaubaveo ja reisijate vedude jaoks, arvestades tuhandeid parameetreid, ja jĂ€lgida saadetiste staatust.
  • Jaotusturg. In-Memory lahendused aitavad kiiremini teenindada kliente ja töödelda suuri andmemahtusid: saadetised, arved, tehingud, tuhandete toodete olemasolu laos, koostada analĂŒĂŒtilisi aruandeid.
  • V IoT In-Memory asendab traditsioonilisi andmebaase.
  • Ravimitootmis- ettevĂ”tted kasutavad In-Memory lahendusi nĂ€iteks ravimite koostisosade kombinatsioonide lĂ€biproovimiseks. 

RÀÀgin mÔned nÀited, kuidas meie kliendid kasutavad In-Memory lahendusi ja kuidas vÔite neid enda juures rakendada.

In-Memory kui pÔhilaod

Üks meie klientidest on suur meditsiinilise teadustehnika tarnija USA-st. Nad kasutavad In-Memory lahendust kui pĂ”hilaod. KĂ”ik andmed salvestatakse kettale, samas kui aktiivselt kasutatav andmestik hoitakse seadme mĂ€lus. JuurdepÀÀsuloogika on standardne — GDBC (Generic Database Connector) ja SQL pĂ€ringukeel.

MÀluarkitektuur veebi teenustele: tehnoloogia pÔhialused ja pÔhimÔtted

KokkuvÔttes nimetatakse seda In-Memory Database (IMDB) vÔi Memory-Centric Storage. Sellel lahenduste klassil on palju nimetusi, need ei ole ainsad. 

IMDB omadused:

  • Andmed, mis on salvestatud In-Memory ja on SQL kaudu kergesti kĂ€ttesaadavad, on samad, mis muudes lĂ€henemisviisides. Need on sĂŒnkroonitud, erinev vaid esitamise viis ja sellele juurdepÀÀsu meetod. Andmete vahel on tehingute toimetamine.

  • IMDB on kiiremad kui relatsioonilised andmebaasid, kuna teabe saamine juhuslikust mĂ€lust on kiirem kui kettalt. 
  • Sisemistel optimeerimisalgoritmidel on vĂ€hem kĂ€sklusi.
  • IMDB sobivad andmete, sĂŒndmuste ja tehingute haldamiseks rakendustes.

IMDB toetavad osaliselt ACID-i: aatomilisust, jĂ€rjepidevust ja isoleeritust. Kuid nad ei toeta 'pĂŒsivust' – voolukatkestuse korral kaovad kĂ”ik andmed. Probleemi lahendamiseks saab kasutada sĂ€mpleid – andmebaasi 'snapshot', mis on analoog bÀÀkapile kĂ”vakettale, vĂ”i salvestada tehingud (logid), et andmeid pĂ€rast taaskĂ€ivitamist taastada.

Viksemise tagamiseks loodud rakenduste jaoks

Tutvustame klassikalist veebi rakenduse tĂ”rke taluvuse arhitektuuri. See töötab nii, et kĂ”ik pĂ€ringud jagatakse veebitasakaalustaja vahel serverite vahel. See sĂŒsteem on vastupidav, sest serverid dubleerivad ĂŒksteist ja katavad ĂŒksteist Ă”nnetuste korral.

MÀluarkitektuur veebi teenustele: tehnoloogia pÔhialused ja pÔhimÔtted

Tasakaalustaja suunab kĂ”ik pĂ€ringud ĂŒhe seansiga rangelt ĂŒhele serverile. See on stick-sessiooni mehhanism: iga seanss on seotud serverile, kus seda kohalikult salvestatakse ja töödeldakse. 

Mis juhtub, kui ĂŒks serverite?

MÀluarkitektuur veebi teenustele: tehnoloogia pÔhialused ja pÔhimÔtted

teenus ei kannata, sest arhitektuur on dubleeritud. Kuid me kaotame osa surnud serveriga seotud seanssidest. Ja ĂŒhtlasi ka need kasutajad, kes on nende seanssidega seotud. NĂ€iteks, kui klient esitab tellimuse ja jĂ€rsku visatakse ta kabinetist vĂ€lja. Ta jÀÀb rahule, kui peab uuesti sisse logima ja avastab, et peab kĂ”ik uuesti vormistama.

Veebirakendusele on vajalik toetada suurt kasutajate arvu ilma viivitusteta, et nad saaksid mugavalt töötada. Kui aga sĂŒsteem ebaĂ”nnestub, suureneb iga jĂ€rgmise pĂ€ringu puhul suhtlemisaeg sessioonide hoidmisega. See tĂ”stab keskmist latentsusaega teistele kasutajatele. Nad ei soovi oodata kauem kui harjunud.

Seda probleemi saab lahendada nagu meie teise kliendi puhul — suure USA PASS-teenuse pakkuja. Ta kasutab In-Memory tehnoloogiat, et klasterdada veebisessioonid. Selleks hoiab ta neid mitte kohalikult, vaid keskeltlĂ€bi — In-Memory klastris. Sel juhul on sessioonid mĂ€rksa kiiremini kĂ€ttesaadavad, sest need asuvad juba RAM-is.

MÀluarkitektuur veebi teenustele: tehnoloogia pÔhialused ja pÔhimÔtted

Kui server langeb, suunab koormuse tasakaalustaja langevatelt serveritelt pÀringud teistele serveritele, nagu klassikalises arhitektuuris. Kuid oluline erinevus on: sessioonid on hoitud In-Memory klastris ja serveritel on juurdepÀÀs langeva serveri sessioonidele.

Selline arhitektuur suurendab kogu sĂŒsteemi tĂ”rkekindlust. Veelgi enam, on vĂ”imalik tĂ€ielikult loobuda sticky-sessioonide mehhanismist.

HĂŒbriidne tehingu- ja analĂŒĂŒsitöötlus (HTAP)

Tavaliselt hoitakse tehingu- ja analĂŒĂŒsisĂŒsteeme eraldi. Kui need on eraldatud, koormatakse pĂ”hiteavet. AnalĂŒĂŒtilise töötlemise jaoks kopeeritakse andmed koopiasse, et analĂŒĂŒtiline töötlemine ei segaks tehingu protsesse. Kuid kopeerimine toimub viivitusega — ilma viivituseta on replikeerimine vĂ”imatu. Kui teeme seda sĂŒnkroonselt, aeglustab see ka pĂ”hiteavet, millega me ei vĂ”ida.

HTAPis töötab kĂ”ik teisiti — sama andmesalvestust kasutatakse rakenduste tehingukoormuse ja analĂŒĂŒtiliste pĂ€ringute jaoks, mis vĂ”ivad kaua aega vĂ”tta. Kui andmed on RAMis, tĂ€idetakse analĂŒĂŒtilised pĂ€ringud kiiremini ja andmebaasiserver koormatakse vĂ€hem (keskmiselt).

MÀluarkitektuur veebi teenustele: tehnoloogia pÔhialused ja pÔhimÔtted

HĂŒbriidne lĂ€henemine „murdub sein“ tehingute töötlemise ja analĂŒĂŒsi vahel. Kui me teeme analĂŒĂŒsides samas salvestuses, siis kĂ€ivitatakse analĂŒĂŒtilised pĂ€ringud andmetele, mis on operatiivmĂ€lu. Need on palju tĂ€psemad, paremini tĂ”lgendatavad ja adekvaatsed.

In-Memory lahenduste integreerimine

Lihtne (suhteliselt) viis — arendada kĂ”ik nullist. Me hoiame andmeid kettal, kuumad andmed aga mĂ€lus. See aitab ellu jÀÀda serveri taaskĂ€ivitustest vĂ”i probleemidest.

Siin kehtivad kaks pĂ”histsenaariumi, kus andmeid hoitakse kettal. Esimeses soovime ellu jÀÀda klastrite vĂ”i komponentide kokkuvarisemise vĂ”i regulaarsete taaskĂ€ivituste ajal — soovime kasutada seda nagu lihtsat andmebaasi. Teises stsenaariumis, kui andmeid on liiga palju, jÀÀb osa neist mĂ€lus.

Kui pole vĂ”imalik kĂ”ike nullist ĂŒles ehitada, vĂ”ib integreerida In-Memory juba olemasolevasse arhitektuuri. Kuid mitte kĂ”ik In-Memory lahendused ei sobi selleks. On kolm kohustuslikku tingimust. In-Memory lahendus peab toetama:

  • standardsed ĂŒhendusmeetod andmebaasiga, mis asub selle all (nĂ€iteks MySQL);
  • standardsed pĂ€ringute keeled, et mitte kirjutada ĂŒle ja muuta vastastikuse toimimise loogikat;
  • transaktsionaalsus — sĂ€ilitades interaktsiooni semantika.

Kui kĂ”ik kolm tingimust on tĂ€idetud, on integreerimine vĂ”imalik. Paigutame In-Memory Data Grid rakenduse ja andmebaasi vahele. NĂŒĂŒd suunatakse kirjutuspĂ€ringud alumisse andmebaasi ja lugemisjĂ€rjekorrad andmebaasi, kui andmeid pole vahemikus.

MÀluarkitektuur veebi teenustele: tehnoloogia pÔhialused ja pÔhimÔtted

Kui kiire andmete juurde pÀÀsemine ja nende töötlemine, nĂ€iteks Ă€rianalĂŒĂŒtika jaoks, on teile oluline, siis tasub kaaluda In-Memory rakendamist. Uue arhitektuuri projekteerimisel vĂ”ite rakendada mĂ”lemat meetodit.

Allikas: habr.com

Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster