MÀlu arhitektuur veebiteenustele: tehnoloogia ja pÔhiprintsiibid

In-Memory — andmete salvestamise kontseptsioonide kogum, kus andmed salvestatakse rakenduse mĂ€llu, samas kui ketast kasutatakse varukohana. Klassikalistes lĂ€henemistes salvestatakse andmed kettale ja mĂ€lu kasutatakse vahemĂ€luna. NĂ€iteks veebirakendus, millel on andmete töötlemiseks tagapĂŒlg, kĂŒsib andmeid salvestuspunktist: saab, muundab ja edastab palju andmeid vĂ”rgus. In-Memory korral saadetakse arvutused andmetele — salvestuses, kus need töödeldakse ja vĂ”rgu koormus vĂ€heneb.

MĂ€ngi videot
TĂ€nu oma arhitektuurile on In-Memory andmete juurde pÀÀsemise kiirus kordades, mĂ”nikord isegi kordades kiirem. NĂ€iteks tahavad panga analĂŒĂŒtikud vaadata analĂŒĂŒtilisest rakendusest eelmise aasta pĂ€eva kaupa vĂ€ljastatud laenude aruannet. See protsess klassikalises andmebaasis vĂ”tab minuteid, samas kui In-Memory puhul ilmub see peaaegu kohe. See on tingitud sellest, et lĂ€henemine vĂ”imaldab vahemĂ€luda palju rohkem teavet ja see hoitakse mĂ€lus 'kĂ€epĂ€rast'. Rakendusel ei ole vaja kĂŒsida andmeid kĂ”vakettalt, mille kĂ€tte saamine on piiratud vĂ”rgu ja ketta kiirusest.

Millised veel vĂ”imalused on saadaval In-Memoryga ja mis see lĂ€henemine endast kujutab, rÀÀgib Vladimir Pligin — GridGain'i insener. See ĂŒlevaateosa on kasulik veebirakenduste tagapinna arendajatele, kes ei ole In-Memoryga töötanud ja tahavad proovida, vĂ”i huvituvad kaasaegsetest tarkvaraarenduse ja arhitektuuri projekteerimise trendidest.

MÀrkus. Artikkel pÔhineb Vladimiri ettekande tÔlgendusel #GetIT Conf. Enne isoleerimise kehtestamist korraldasime regulaarselt koosolekuid ja konverentse arendajatele Moskvas ja Peterburis: arutasime trende, aktuaalseid arendusprobleeme ja nende lahendusi. Praegu ei saa konverentse pidada, kuid on ideaalne aeg jagada varasemaid vÀÀrtuslikke materjale.

Kes ja kuidas kasutab In-Memory'd

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

  • Pangad kasutavad In-Memory't nĂ€iteks, et vĂ€hendada kliendi rakenduste kasutamisel tekkivaid viivitusi vĂ”i klientide analĂŒĂŒsimiseks laenu vĂ€ljastamise eel.
  • Fintech kasutab In-Memory't, et parandada pankade teenuste ja rakenduste jĂ”udlust, mis usaldavad andmete töötlemise ja analĂŒĂŒsi outsource'imisele. 
  • KindlustusettevĂ”tted: risk calculation, for example, by analyzing customer data over several years.
  • Logistics companies. They process a lot of data, for instance, to calculate optimal routes for cargo and passenger transport with thousands of parameters, tracking the status of shipments.
  • Retail. In-Memory solutions help serve customers faster and process large volumes of information: shipments, invoices, transactions, availability of thousands of products in warehouses, preparing analytical reports.
  • Uues IoT In-Memory replaces traditional databases.
  • Pharmaceutical companies use In-Memory, for example, to test combinations of drug formulations. 

I will share several examples of how our clients use In-Memory solutions and how you can implement them yourself.

In-Memory as a primary storage

One of our clients is a large supplier of medical scientific equipment from the USA. They use an In-Memory solution as their primary data storage. All data is stored on disk, while the subset of data that is actively used is kept in RAM. The methods of accessing the storage are standard - GDBC (Generic Database Connector) and SQL query language.

MÀlu arhitektuur veebiteenustele: tehnoloogia ja pÔhiprintsiibid

All together this is called In-Memory Database (IMDB) or Memory-Centric Storage. This class of solutions has many names, and these are not the only ones. 

Features of IMDB:

  • The data stored in In-Memory and accessed via SQL is the same as in other approaches. They are synchronized, differing only in the method of representation and access. Transactionality operates between the data.

  • IMDB is faster than relational databases because retrieving information from RAM is faster than from disk. 
  • Internal optimization algorithms have fewer instructions.
  • IMDB is suitable for managing data, events, and transactions in applications.

IMDB partially supports ACID: atomicity, consistency, and isolation. But they do not support 'durability' - all data is lost when power is turned off. To solve this issue, snapshots can be used - a 'snapshot' of the database, similar to a database backup to a hard drive, or transactions (logs) can be recorded to restore data after a reboot.

For creating fault-tolerant applications

Kujutame ette klassikalise talitluspĂŒsiva veebirakenduse arhitektuuri. See töötab niimoodi: kĂ”ik pĂ€ringud jaotab veebibalancer serverite vahel. See sĂŒsteem on vastupidav, sest serverid dubleerivad ĂŒksteist ja kaitsevad ĂŒksteist intsidentide korral.

MÀlu arhitektuur veebiteenustele: tehnoloogia ja pÔhiprintsiibid

Balansseerija suunab kĂ”ik pĂ€ringud ĂŒhe seansi kohta rangelt ĂŒhele serverile. See on kleebilise seanssi mehhanism: iga seanss on seotud serveri, kus seda salvestatakse ja töödeldakse kohapealselt. 

Mis juhtub, kui ĂŒks neist serveritest tĂ”rkub? serverid?

MÀlu arhitektuur veebiteenustele: tehnoloogia ja pÔhiprintsiibid

Teenusele see ei mÔju, sest arhitektuur on dubleeritud. Kuid me kaotame osa surnud serveri seanssidest. Ja koos nendega ka kasutajad, kes on nende seanssidega seotud. NÀiteks, kui klient tellib ja jÀrsku visatakse ta vÀljas. Ta on pettunud, kui peab uuesti logima ja avastab, et peab kogu protsessi uuesti lÀbima.

Veebirakenduse peab suutma toetada suurt hulka kasutajaid ja mitte „lasksu” töödelda, et neil oleks mugav töötada. Kuid juhul, kui server tĂ”rkub, siis iga jĂ€rgmise pĂ€ringu puhul suureneb aeg seansi salvestuspaigaga suhtlemiseks. See suurendab keskmist latentsust ĂŒlejÀÀnud kasutajate seas. Kuid nad ei soovi oodata kauem, kui nad on harjunud.

Seda probleemi saab lahendada, nagu teised meie kliendid — suur PASS-teenuse pakkuja USA-st. Nad kasutavad In-Memory rakendust, et klastriffida veebiseansse. Selleks ei salvestata neid kohapeal, vaid keskelt — In-Memory klastris. Sel juhul on seansid oluliselt kiiremini kĂ€ttesaadavad, kuna need on juba mĂ€lus.

MÀlu arhitektuur veebiteenustele: tehnoloogia ja pÔhiprintsiibid

Kui server kukub, suunab balanseerija kukkunud pÀringud teistele serveritele, nagu klassikalises arhitektuuris. Kuid siin on oluline erinevus: seansid on salvestatud In-Memory klastrisse ja serveritel on juurdepÀÀs kukkunud serveri seanssidele.

Selline arhitektuur suurendab kogu sĂŒsteemi talitlusvĂ”imet. Veelgi enam, on vĂ”imalik ĂŒldse loobuda kleebis seanssi mehhanismist.

HĂŒbriidne tehingu- ja analĂŒĂŒtiline töötlemine (HTAP)

Tavaliselt hoitakse tehingu- ja analĂŒĂŒsisĂŒsteeme eraldi. Kui need eraldatakse, koormatakse peamine andmebaas. AnalĂŒĂŒtilise töötlemise jaoks kopeeritakse andmed koopia, et analĂŒĂŒtiline töötlus ei segaks tehinguprotsesse. Kuid kopeerimine toimub viivitusega — ilma viivitusteta ei ole replikatsioon vĂ”imalik. Kui teeme seda sĂŒnkroonselt, aeglustaks see samuti peamist andmebaasi ja kasu ei saavuta.

HTAP-s töötab kĂ”ik teisiti — sama andmete ladustamise sĂŒsteemi kasutatakse rakenduste tehingukoormuseks ja analĂŒĂŒtilisteks pĂ€ringuteks, mis vĂ”ivad kaua aega vĂ”tta. Kui andmed asuvad mĂ€lus, tĂ€idetakse analĂŒĂŒtilised pĂ€ringud kiiremini ja andmebaasiserver koormatakse vĂ€hem (keskmiselt).

MÀlu arhitektuur veebiteenustele: tehnoloogia ja pÔhiprintsiibid

HĂŒbriidne lĂ€henemine 'murdab seina' tehingute töötlemise ja analĂŒĂŒtika vahel. Kui teeme analĂŒĂŒsi samas andmehoidlas, siis kĂ€ivitatakse analĂŒĂŒtilised pĂ€ringud otse mĂ€lus olevate andmete pĂ”hjal. Need on palju tĂ€psemad, paremini tĂ”lgendatavad ja adekvaatsemad.

In-Memory lahenduste integreerimine

Lihtne (suhteliselt) viis — arendada kĂ”ik nullist. Me hoiame andmed kettal, samas kui kuumad hoiame mĂ€lus. See aitab taluda serverite taaskĂ€ivitusi vĂ”i vĂ€ljalĂŒlitamisi.

Siin on kaks peamist stsenaariumi, kui andmed on kettal. Esimeses soovime taluda tĂ”use vĂ”i regulaarseid serveri taaskĂ€ivitusi — soovime kasutada seda nagu lihtsat andmebaasi. Teises stsenaariumis, kui andmeid on liiga palju, on osa neist mĂ€lus.

Kui ei ole vÔimalik kÔike nullist ehitada, on vÔimalik integreerida In-Memory juba olevasse arhitektuuri. Kuid mitte kÔik In-Memory lahendused ei sobi selleks. On kolm kohustuslikku tingimust. In-Memory lahendus peab toetama:

  • standardset ĂŒhendusviisi andmebaasiga, mis asub selle all (nĂ€iteks MySQL);
  • standardkeelt pĂ€ringute tegemiseks, et mitte ĂŒmber kirjutada ja muuta ladustamisega suhtlemise loogikat;
  • tehinguandmeid — sĂ€ilitama interaktsiooni semantika.

Kui kĂ”ik kolm tingimust on tĂ€idetud, siis on integreerimine vĂ”imalik. Paneme In-Memory Data Grid'i rakenduse ja andmebaasi vahele. NĂŒĂŒd kirjutamisjĂ€rgud delegatakse alumisse andmebaasi, ja lugemispĂ€ringud lĂ€hevad andmebaasi, kui andmeid pole vahemĂ€lus.

MÀlu arhitektuur veebiteenustele: tehnoloogia ja pÔhiprintsiibid

Kui kiire andmete juurdepÀÀs ja töötlemine, nĂ€iteks Ă€rianalĂŒĂŒsiks, on teile oluline, vĂ”iks mĂ”elda In-Memory rakendamisele. Uue arhitektuuri projekteerimisel vĂ”ite kasutada mĂ”lemat meetodit.

Allikas: habr.com

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster