Korištenje Redis Enterprisea u Azureu

NoSQL pohrana dolazi u mnogim vrstama. Neke su baze podataka dokumenata, druge spremaju parove ključ / vrijednost, a sve podržavaju mnogo različitih vrsta indeksa i upita. Postoje diskovni sustavi i oni dizajnirani za rad u memoriji. Neki učinkovito rukuju velikim količinama podataka; drugi se usredotočuju na postizanje brzine. S toliko različitih proizvoda ponekad je teško odabrati jedan.

Jedan od popularnijih sustava u memoriji je Redis, Remote Dictionary Server. Izgrađen je na otvorenom izvornom poslužitelju Redis, koji sponzorira RedisLabs, s nizom komercijalnih poslovnih mogućnosti. Microsoft već neko vrijeme nudi vlastitu implementaciju otvorenog koda Redis na Azureu, gdje se uglavnom koristi kao predmemorija visokih performansi. Međutim, nedavno je najavio partnerstvo s RedisLabsom, donoseći potpuno upravljani Redis Enterprise stog u Microsoftov oblak.

Dodavanje Redis Enterprisea na Azure

O novoj se usluzi možda najbolje misli kao o dodavanju dvije nove razine postojećim osnovnim, standardnim i premium uslugama: Enterprise i Enterprise SSD. Microsoftova implementacija Redis-a bila je usmjerena na isporuku predmemorije visokih performansi za vaše podatke u velikim aplikacijama u izvornom oblaku, gdje predmemorija pomaže u upravljanju porukama za kôd ili stanje sesije na temelju događaja kada gradite sustave u spremniku ili bez poslužitelja.

Predmemorije nisu samo za upravljanje dolaznim podacima. Suvremene aplikacije mogu ih koristiti kao način za prethodno učitavanje sadržaja kojem korisnici redovito pristupaju. Azureov Redis možete unaprijed učitati svojim zajedničkim sredstvima, poput zaglavlja i logotipa, koji se ne mijenjaju često. Ako ih smjestite u memoriju, mogu se isporučiti mnogo brže, umjesto da ih izvlače s diska svaki put kad se stranica učita.

Korištenje Redisa odnosi se samo na performanse. Stavljanje podataka iz predmemorije u sustav memorije može značajno smanjiti kašnjenje aplikacije, posebno kada gradite i pokrećete raspodijeljene programe u velikoj mjeri. Sadržaj u trgovinama Redis može se replicirati između Azure regija, smanjujući rizik da korisnici u jednoj regiji moraju pristupiti sadržaju pohranjenom na pola svijeta.

Počevši od Azure predmemorije za Redis

Microsoftova implementacija otvorenog koda, Azure Cache za Redis, dolazi u osnovnom, standardnom i premium, s maksimalnom veličinom od 1,2 TB za Premium baze podataka. Basic je relativno jednostavna implementacija s jednim čvorom, bez SLA, ali s izborom veličina memorije. Standard vam pruža veću pouzdanost primjenom sustava s dva čvora i dodavanjem SLA-a. Ako su vam potrebne bolje performanse i niža latencija, opcija Premium koristi drugačiji stupanj Azure hardvera, što daje veću propusnost od standardne za ono što bi inače bila ista konfiguracija.

Dovoljno je jednostavno postaviti Redis predmemoriju u Azureu. Započnite s DNS imenom, a zatim dodajte predmemoriju u grupu resursa i odaberite mjesto. Ovo postavlja osnovne virtualne strojeve i pokreće vašu predmemoriju; nakon što Azure prijavi da je pokrenut, možete ga koristiti u kodu. Vjerodajnice potrebne za povezivanje s Redisom nalaze se na vašem Azure portalu s pristupnim ključevima i nizovima veza. Portal prikazuje adresu vaše instance plus priključak na koji se vaš kôd mora povezati. Prema zadanim postavkama to će biti putem SSL-a.

Postoje razni NuGet paketi za upotrebu Redisa s vašim .NET aplikacijama, s pozivima za preuzimanje i postavljanje stavki u predmemoriji Redisa, kao i za provjeru je li vaš program povezan s Redisom. Sve što trebate je postaviti niz veze predmemorije, a zatim upotrijebiti to za izradu objekta predmemorije iz vaše baze podataka Redis. Ako koristite Visual Studio, s Redisom možete raditi pomoću poznatih .NET alata baze podataka, poput Entity Framework-a.

Aplikacije temeljene na Redisu lako je implementirati pomoću uzoraka MVC (model, prikaz i kontroler), koristeći kontrolere za upisivanje serializiranih podataka u predmemoriju i njihovo čitanje po potrebi. Microsoft preporučuje upotrebu JSON formata za pisanje i čitanje podataka, s vraćenim JSON podacima koji se lako oblikuju i prikazuju pomoću uobičajenih JavaScript i .NET biblioteka.

Azure predmemorija za Redis više je od baze podataka i skupa API-ja jer sadrži cjelovit set alata za upravljanje, uključujući nadzor. Oni vam mogu pomoći da po potrebi prilagodite Redis instancu. Možete samo povećavati razine, prelazeći s osnovnog na standardni na premium.

Bilo kakve promjene veličine zasebna su operacija, a veličinu možete mijenjati prema gore ili prema dolje unutar iste razine (s tim da ne možete smanjiti na najmanju ponudu standardne veličine). Ako se želite spustiti na niži nivo, stvorite novu instancu Redisa, a zatim kopirajte sve podatke ili strukture u novu bazu podataka prije brisanja starije verzije. Ako trebate automatizirati skaliranje, možete upotrijebiti PowerShell ili Azure CLI ili s kodom pomoću Azure Management Libraries.

Skaliranje do značajki baze podataka u memoriji Redis Enterprisea

Azureova implementacija Redisa je dobra, ali to nije cijela priča. Temelji se na otvorenom kodu Redis, tako da nema sve značajke komercijalnog Redis Enterprisea. Zbog toga su Microsoft i Redis surađivali na isporuci dva dodatna stupnja kojima je upravljao Microsoft, a podržavale obje tvrtke, uz potpunu integraciju na Azure Portal. Enterprise, osnovni sloj, koristi standardnu ​​Azure pohranu, dok Enterprise SSD sloj dodaje podršku za flash pohranu za brži pristup podacima koji nisu dostupni u memoriji.

Trenutno u privatnom pregledu, nova usluga dodaje podršku za ključne module Redis Enterprise, što vam omogućuje upotrebu usluge za puno više od čisto predmemoriranih podataka. To je važna razlika jer je brza baza podataka u memoriji važan dio opsežnog sustava vođenog događajima, posebno onog koji se oslanja na podatke vremenskih serija. Ostale podržane značajke uključuju RedisBloom, koji dodaje vjerojatnosno filtriranje podataka, i RediSearch, koji poboljšava indeksiranje i omogućuje upotrebu pretraživanja cijelog teksta na podacima.

Dodatne značajke bit će dodane kako se usluga premješta iz privatnog pregleda u opću dostupnost (trenutno je zakazana za kraj 2020.). To će vam omogućiti da koristite aktivno-aktivnu replikaciju između geografskih regija i hibridne implementacije koje rade između privatnih instanci i instanci Redis-a koje hostira Azure. Ne treba imati posebnu vezu između lokalnog i Azure Redisa; aktivna-aktivna replikacija će raditi preko VPN-a.

Nova implementacija Redis Enterprise izgleda kao postojeća Azure predmemorija za Redis unutar portala i moći ćete se povećati s postojećih instanci ili započeti ispočetka. Ako tražite bolju izvedbu, proširivanje je opcija, ali vjerojatno ćete htjeti stvoriti potpuno novu instancu ako koristite bilo koju od novih značajki baze podataka. Možete ih omogućiti kao dio postupka izrade, s portala ili putem predloška Azure Resource Manager. Iako će velik dio vašeg upravljanja i nadgledanja biti iz Azure portala, imate mogućnost koristiti vlastite Redisove alate za upravljanje koji će vam pomoći u podešavanju i optimizaciji podataka.

Kombinacija Azureove implementacije Redis-a i RedisLabs-ove Redis Enterprise zanimljiva je koja pokazuje kako dobavljač s premium ponudom izgrađenom na temeljima otvorenog koda može koegzistirati s oblacima hiperrazmjera. Azure može ponuditi uslugu temeljenu na platformi otvorenog koda, dok složenije implementacije mogu koristiti alate RedisLabsa. Ova ruta omogućuje tvrtki pristup novom toku prihoda bez potrebe da promijeni model licenciranja u onaj koji isključuje davatelje usluga u oblaku.

Jednostavnim putem od Azureove usluge predmemoriranja temeljenog na Redisu do Redis Enterprisea, a bez promjena u alatima za upravljanje ili odnosima naplate, također je transparentan za krajnje korisnike. Dobivaju pristup novim razinama i novim značajkama bez potrebe za promjenom načina rada.