Използване на Redis Enterprise в Azure

Съхранението NoSQL се предлага в много видове. Някои са бази данни на документи, други съхраняват двойки ключ / стойност, като всички те поддържат много различни видове индекс и заявки. Има дискови системи и такива, предназначени да работят в паметта. Някои се справят ефективно с големи количества данни; други се фокусират върху постигането на скорост. С толкова много различни продукти понякога е трудно да изберете един.

Една от най-популярните системи в паметта е Redis, Remote Dictionary Server. Той е изграден на сървъра с отворен код Redis, спонсориран от RedisLabs, с набор от търговски корпоративни опции. Microsoft предлага собствена реализация на отворения код Redis в Azure от известно време, където се използва главно като кеш с висока производителност. Наскоро обаче обяви партньорство с RedisLabs, като донесе напълно управляван стек Redis Enterprise в облака на Microsoft.

Добавяне на Redis Enterprise към Azure

Новата услуга може би е най-добре да се мисли като добавяне на две нови нива към съществуващите базови, стандартни и премиум услуги: Enterprise и Enterprise SSD. Реализацията на Microsoft Redis е фокусирана върху предоставянето на високоефективен кеш за вашите данни в големи приложения, използвани в облака, където кешът помага да управлявате съобщения за управляван от събития код или състояние на сесията, когато изграждате контейнеризирани или безсървърни системи.

Кешовете не са само за управление на входящи данни. Съвременните приложения могат да ги използват като начин за предварително зареждане на съдържание, до което редовно имат достъп потребителите. Можете да заредите Redis на Azure с вашите общи активи, като заглавки и лога, които не се променят толкова често. Като ги хоствате в паметта, те могат да бъдат доставени много по-бързо, вместо да ги изтеглят от диска всеки път, когато се зарежда страница.

Използването на Redis е свързано с производителността. Поставянето на вашите кеш данни в система в паметта може значително да намали латентността на приложението, особено когато изграждате и стартирате разпределени приложения в мащаб. Съдържанието в магазините на Redis може да се репликира между регионите на Azure, намалявайки риска потребителите в един регион да имат достъп до съдържание, съхранявано на половината свят.

Започвайки с Azure Cache за Redis

Реализацията на Microsoft с отворен код, Azure Cache за Redis, се предлага в Basic, Standard и Premium, с максимален размер от 1.2TB за бази данни Premium. Basic е относително проста реализация с един възел, без SLA, но с избор на размер на паметта. Standard ви дава по-голяма надеждност чрез внедряване на система с два възела и добавяне на SLA. Ако се нуждаете от по-добра производителност и по-ниска латентност, опцията Premium използва различен клас хардуер на Azure, като дава по-висока производителност от стандартната за това, което иначе би било същата конфигурация.

Достатъчно лесно е да настроите кеш на Redis в Azure. Започнете с DNS име, след това добавете кеша към група ресурси и изберете местоположение. Това настройва основните виртуални машини и стартира кеша ви; след като Azure отчете, че се изпълнява, можете да го използвате във вашия код. Идентификационните данни, необходими за свързване с Redis, са във вашия Azure Portal с ключове за достъп и низове за връзка. Порталът показва адреса на вашия екземпляр плюс порта, към който трябва да се свърже вашият код. По подразбиране това ще бъде чрез SSL.

Има различни пакети NuGet за използване на Redis с вашите .NET приложения, с повиквания за получаване и настройка на елементи в кеша на Redis, както и за проверка дали вашето приложение е свързано с Redis. Всичко, което трябва да направите, е да зададете низ за връзка с кеша и след това да го използвате, за да създадете кеш обект от вашата база данни Redis. Ако използвате Visual Studio, можете да работите с Redis, като използвате познати инструменти на .NET база данни, като Entity Framework.

Приложенията, базирани на Redis, са лесни за изпълнение, като се използват модели на MVC (модел, изглед и контролер), като се използват контролери за записване на сериализирани данни в кеша и за четене при необходимост. Microsoft препоръчва използването на формати JSON за писане и четене на данни, с върнати данни JSON, лесни за форматиране и показване с помощта на общи библиотеки на JavaScript и .NET.

Azure Cache за Redis е повече от база данни и набор от API, тъй като съдържа пълен набор от инструменти за управление, включително мониторинг. Те могат да ви помогнат да мащабирате вашия екземпляр Redis, ако е необходимо. Можете да мащабирате само нива, като преминете от Basic към Standard към Premium.

Всички промени в размера са отделна операция и можете да променяте размера нагоре или надолу в рамките на едно и също ниво (с уговорката, че не можете да намалите размера до най-малкия стандартен размер) Ако искате да слезете на ниво, създайте нов екземпляр на Redis и след това копирайте всички данни или структури в новата база данни, преди да изтриете по-старата версия. Ако трябва да автоматизирате мащабирането, можете да използвате PowerShell или Azure CLI или с код, използващ библиотеките за управление на Azure.

Мащабиране до функциите на базата данни в паметта на Redis Enterprise

Реализацията на Azure на Redis е добра, но това не е цялата история. Той се основава на отворения код Redis, така че няма всички функции на търговския Redis Enterprise. Ето защо Microsoft и Redis си сътрудничат, за да предоставят две допълнителни нива, управлявани от Microsoft и поддържани от двете компании, с пълна интеграция в портала Azure. Enterprise, основният слой, използва стандартно хранилище на Azure, докато Enterprise SSD нивото добавя поддръжка за флаш съхранение за по-бърз достъп до данни, които не са налични в паметта.

Понастоящем в частен преглед новата услуга добавя поддръжка за ключови модули Redis Enterprise, което ви позволява да използвате услугата за много повече от чисто кеширани данни. Това е важно разграничение, тъй като бързата база данни в паметта е важна част от мащабна система, управлявана от събития, особено тази, която разчита на данни от времеви редове. Други поддържани функции включват RedisBloom, който добавя вероятностно филтриране на данни, и RediSearch, който подобрява индексирането и ви позволява да използвате пълнотекстово търсене на вашите данни.

Допълнителни функции ще бъдат добавени, когато услугата преминава от частен преглед към обща наличност (в момента е насрочена за края на 2020 г.). Те ще ви позволят да използвате активно-активно репликиране между географски региони и хибридни разполагания, които работят между частни и хоствани от Azure екземпляри Redis. Не е необходимо да имате специална връзка между локалните и Azure Redis; активна-активна репликация ще работи през VPN.

Новото внедряване на Redis Enterprise прилича на съществуващия кеш на Azure за Redis вътре в портала и ще можете да мащабирате от съществуващи екземпляри или да започнете от нулата. Ако търсите по-добра производителност, мащабирането е опция, но вероятно ще искате да създадете изцяло нов екземпляр, ако използвате някоя от новите функции на базата данни. Можете да ги активирате като част от процеса на създаване, от портала или чрез шаблон на Azure Resource Manager. Въпреки че голяма част от вашето управление и наблюдение ще бъде от портала на Azure, имате възможност да използвате собствените инструменти за управление на Redis, за да помогнете за настройка и оптимизиране на вашите данни.

Комбинацията от внедряването на Azure на Redis и RedisLabs 'Redis Enterprise е интересна, която показва как доставчик с първокласно предложение, изградено върху фондация с отворен код, може да съжителства с хипермащабни облаци. Azure може да предложи услуга, базирана на платформата с отворен код, докато по-сложните внедрения могат да използват инструментите на RedisLabs. Този маршрут дава на компанията достъп до нов поток от приходи, без да се налага да сменя лицензионния си модел на такъв, който изключва доставчиците на облак.

С прост път от базираната на Redis кеширана услуга на Azure до Redis Enterprise и без промяна в инструментите за управление или отношенията за фактуриране, той също е прозрачен за крайните потребители. Те получават достъп до нови нива и нови функции, без да се налага да променят начина си на работа.