Programování

Používání Redis Enterprise v Azure

Úložiště NoSQL se dodává v mnoha typech. Některé jsou databáze dokumentů, jiné ukládají páry klíč / hodnota a všechny podporují mnoho různých typů indexů a dotazů. Existují systémy založené na disku a systémy navržené pro práci v paměti. Některé zpracovávají velké množství dat efektivně; ostatní se zaměřují na rychlost. S tolika různými produkty je někdy těžké jeden vybrat.

Jedním z nejoblíbenějších systémů v paměti je Redis, vzdálený slovníkový server. Je postaven na open source serveru Redis sponzorovaném společností RedisLabs se sadou komerčních podnikových možností. Společnost Microsoft již nějakou dobu nabízí vlastní implementaci open source Redis v Azure, kde se používá hlavně jako vysoce výkonná mezipaměť. Nedávno však oznámila partnerství se společností RedisLabs a přinesla plně spravovaný zásobník Redis Enterprise do cloudu společnosti Microsoft.

Přidání Redis Enterprise do Azure

Nová služba je možná nejlépe považována za přidání dvou nových úrovní ke stávajícím základním, standardním a prémiovým službám: Enterprise a Enterprise SSD. Implementace Microsoft Redis byla zaměřena na poskytování vysoce výkonné mezipaměti pro vaše data ve velkých cloudových nativních aplikacích, kde mezipaměť pomáhá spravovat zprávy pro kód řízený událostmi nebo stav relace, když vytváříte systémy v kontejneru nebo bez serveru.

Mezipaměti nejsou jen pro správu příchozích dat. Moderní aplikace je mohou používat jako způsob předběžného načítání obsahu, ke kterému uživatelé pravidelně přistupují. Azure Redis můžete předem načíst svými běžnými prostředky, jako jsou záhlaví a loga, která se tak často nemění. Hostováním v paměti je lze doručit mnohem rychleji, než je vytahovat z disku při každém načtení stránky.

Používání Redis je o výkonu. Vložení dat mezipaměti do systému v paměti může výrazně snížit latenci aplikací, zvláště když vytváříte a provozujete distribuované aplikace ve velkém. Obsah v obchodech Redis lze replikovat mezi oblastmi Azure, čímž se snižuje riziko, že uživatelé v jedné oblasti budou muset přistupovat k obsahu uloženému v polovině světa.

Počínaje Azure Cache pro Redis

Implementace open source společnosti Microsoft, Azure Cache pro Redis, se dodává v základních, standardních a prémiových verzích s maximální velikostí 1,2 TB pro databáze Premium. Basic je relativně jednoduchá implementace s jedním uzlem, bez SLA, ale s výběrem velikosti paměti. Standard vám poskytuje větší spolehlivost implementací dvouuzlového systému a přidáním SLA. Pokud potřebujete lepší výkon a nižší latenci, možnost Premium používá jiný stupeň hardwaru Azure a poskytuje vyšší propustnost než Standard pro to, co by jinak byla stejná konfigurace.

Nastavení mezipaměti Redis v Azure je dost snadné. Začněte s názvem DNS, poté přidejte mezipaměť do skupiny prostředků a vyberte umístění. Toto nastaví podkladové virtuální stroje a spustí vaši mezipaměť; Jakmile ji Azure nahlásí jako spuštěnou, můžete ji použít ve svém kódu. Pověření potřebná pro připojení k Redis jsou na vašem Azure Portal s přístupovými klíči a připojovacími řetězci. Portál zobrazuje adresu vaší instance plus port, ke kterému se váš kód musí připojit. Ve výchozím nastavení to bude přes SSL.

Existují různé balíčky NuGet pro použití Redis s vašimi aplikacemi .NET, s voláními pro získání a nastavení položek v mezipaměti Redis, stejně jako pro kontrolu, zda je vaše aplikace připojena k Redis. Vše, co musíte udělat, je nastavit připojovací řetězec mezipaměti a poté jej použít k vytvoření objektu mezipaměti z vaší databáze Redis. Pokud používáte Visual Studio, můžete s Redisem pracovat pomocí známých databázových nástrojů .NET, jako je Entity Framework.

Aplikace založené na Redis lze snadno implementovat pomocí vzorů MVC (model, zobrazení a řadič), pomocí řadičů k zápisu serializovaných dat do mezipaměti a v případě potřeby ke čtení. Společnost Microsoft doporučuje používat formáty JSON k zápisu a čtení dat, přičemž vrácená data JSON lze snadno formátovat a zobrazit pomocí běžných knihoven JavaScript a .NET.

Azure Cache pro Redis je více než databáze a sada API, protože obsahuje kompletní sadu nástrojů pro správu, včetně monitorování. Ty vám mohou podle potřeby pomoci škálovat instanci Redis. Můžete škálovat pouze úrovně, přechod ze základního na standardní na prémiový.

Jakékoli změny velikosti jsou samostatnou operací a můžete změnit velikost nahoru nebo dolů na stejné úrovni (s podmínkou, že nemůžete zmenšit velikost nabídky na nejmenší standardní velikost). Pokud chcete přejít na nižší úroveň, vytvořte novou instanci Redis a poté před odstraněním starší verze zkopírujte všechna data nebo struktury do nové databáze. Pokud potřebujete automatizovat škálování, můžete použít PowerShell nebo rozhraní příkazového řádku Azure, nebo s kódem pomocí Azure Management Libraries.

Škálování až k funkcím databáze Redis Enterprise v paměti

Implementace Azure Redis je dobrá, ale není to celý příběh. Je založen na open source Redis, takže nemá všechny funkce komerčního Redis Enterprise. Proto Microsoft a Redis spolupracovali na dodání dvou dalších úrovní spravovaných společností Microsoft a podporovaných oběma společnostmi s plnou integrací do Azure Portal. Enterprise, základní vrstva, používá standardní úložiště Azure, zatímco Enterprise SSD vrstva přidává podporu pro flash úložiště pro rychlejší přístup k datům, která nejsou k dispozici v paměti.

V současné době v soukromém náhledu přidává nová služba podporu pro klíčové moduly Redis Enterprise, což vám umožní používat službu mnohem víc než data v čistém mezipaměti. To je důležitý rozdíl, protože rychlá databáze v paměti je důležitou součástí rozsáhlého systému řízeného událostmi, zejména systému, který se spoléhá na data časových řad. Mezi další podporované funkce patří RedisBloom, který přidává pravděpodobnostní filtrování dat, a RediSearch, který vylepšuje indexování a umožňuje používat fulltextové vyhledávání dat.

Další funkce budou přidány, jakmile se služba přesune ze soukromého náhledu na obecnou dostupnost (aktuálně naplánováno na konec roku 2020). Ty vám umožní používat aktivní aktivní replikaci mezi geografickými oblastmi a hybridní nasazení, která fungují mezi soukromými a Azure hostovanými instancemi Redis. Není třeba mít vyhrazené připojení mezi místními a Azure Redis; aktivní-aktivní replikace bude fungovat přes VPN.

Nová implementace Redis Enterprise vypadá jako stávající mezipaměť Azure pro Redis uvnitř portálu a budete moci škálovat z existujících instancí nebo začít úplně od začátku. Pokud hledáte lepší výkon, škálování je jednou z možností, ale pokud používáte některou z nových funkcí databáze, budete pravděpodobně chtít vytvořit zcela novou instanci. Můžete je povolit jako součást procesu vytváření, z portálu nebo prostřednictvím šablony Azure Resource Manageru. Ačkoli velká část vaší správy a monitorování bude zevnitř portálu Azure Portal, máte možnost použít vlastní nástroje pro správu Redis k vyladění a optimalizaci vašich dat.

Kombinace implementace Azure Redis a RedisLabs Redis Enterprise je zajímavá, která ukazuje, jak může prodejce s prémiovou nabídkou postavenou na nadaci open source koexistovat s hyperškálovými cloudy. Azure je schopna nabídnout službu založenou na platformě open source, zatímco složitější implementace mohou využívat nástroje RedisLabs. Tato trasa umožňuje společnosti přístup k novému zdroji příjmů, aniž by musela měnit svůj model licencování na ten, který zavírá poskytovatele cloudu.

Díky jednoduché cestě z mezipaměti služby Redis založené na Azure k Redis Enterprise a beze změny v nástrojích pro správu nebo ve fakturačních vztazích je transparentní i pro koncové uživatele. Získávají přístup k novým úrovním a novým funkcím, aniž by museli měnit způsob jejich práce.