Korzystanie z Redis Enterprise na platformie Azure

Magazyn NoSQL występuje w wielu typach. Niektóre z nich to bazy danych dokumentów, inne przechowują pary klucz / wartość, wszystkie obsługujące wiele różnych typów indeksów i zapytań. Istnieją systemy dyskowe i zaprojektowane do pracy w pamięci. Niektóre wydajnie obsługują duże ilości danych; inni koncentrują się na zapewnieniu szybkości. Przy tak wielu różnych produktach czasami trudno jest wybrać jeden.

Jednym z bardziej popularnych systemów w pamięci jest Redis, Remote Dictionary Server. Jest zbudowany na serwerze Redis typu open source, sponsorowanym przez RedisLabs, z zestawem komercyjnych opcji dla przedsiębiorstw. Microsoft od jakiegoś czasu oferuje własną implementację open source Redis na platformie Azure, gdzie jest ona używana głównie jako wysokowydajna pamięć podręczna. Jednak niedawno ogłosił partnerstwo z RedisLabs, wprowadzając w pełni zarządzany stos Redis Enterprise do chmury Microsoft.

Dodawanie Redis Enterprise do Azure

Nowa usługa jest prawdopodobnie najlepiej postrzegana jako dodanie dwóch nowych poziomów do istniejących usług Basic, Standard i Premium: Enterprise i Enterprise SSD. Wdrożenie Redis firmy Microsoft koncentruje się na dostarczaniu wysokowydajnej pamięci podręcznej dla danych w dużych aplikacjach natywnych w chmurze, w których pamięć podręczna pomaga zarządzać wiadomościami dla kodu sterowanego zdarzeniami lub stanem sesji podczas tworzenia systemów kontenerowych lub bezserwerowych.

Pamięci podręczne służą nie tylko do zarządzania przychodzącymi danymi. Nowoczesne aplikacje mogą ich używać jako sposobu wstępnego ładowania treści, do których użytkownicy regularnie uzyskują dostęp. Możesz wstępnie załadować usługę Azure Redis za pomocą wspólnych zasobów, takich jak nagłówki i logo, które nie zmieniają się tak często. Hostując je w pamięci, można je dostarczyć znacznie szybciej, zamiast pobierać je z dysku za każdym razem, gdy ładowana jest strona.

Korzystanie z Redis polega na wydajności. Umieszczenie danych z pamięci podręcznej w systemie w pamięci może znacznie zmniejszyć opóźnienia aplikacji, szczególnie podczas tworzenia i uruchamiania aplikacji rozproszonych na dużą skalę. Zawartość w sklepach Redis można replikować między regionami platformy Azure, zmniejszając ryzyko, że użytkownicy w jednym regionie będą musieli uzyskiwać dostęp do zawartości przechowywanej na pół świata.

Począwszy od Azure Cache for Redis

Wdrożenie typu open source firmy Microsoft, Azure Cache for Redis, jest dostępne w wersjach Basic, Standard i Premium, z maksymalnym rozmiarem 1,2 TB dla baz danych Premium. Podstawowa to stosunkowo prosta implementacja z jednym węzłem, bez umowy SLA, ale z wyborem rozmiarów pamięci. Standard zapewnia większą niezawodność dzięki wdrożeniu systemu dwuwęzłowego i dodaniu umowy SLA. Jeśli potrzebujesz lepszej wydajności i mniejszych opóźnień, opcja Premium używa innej klasy sprzętu platformy Azure, zapewniając wyższą przepływność niż standardowa dla takiej samej konfiguracji.

Skonfigurowanie pamięci podręcznej Redis na platformie Azure jest dość łatwe. Zacznij od nazwy DNS, a następnie dodaj pamięć podręczną do grupy zasobów i wybierz lokalizację. Spowoduje to skonfigurowanie podstawowych maszyn wirtualnych i uruchomienie pamięci podręcznej; gdy platforma Azure zgłosi, że jest uruchomiona, możesz jej użyć w swoim kodzie. Poświadczenia potrzebne do nawiązania połączenia z usługą Redis znajdują się w witrynie Azure Portal wraz z kluczami dostępu i parametrami połączenia. Portal pokazuje adres Twojej instancji oraz port, z którym Twój kod musi się połączyć. Domyślnie będzie to SSL.

Istnieją różne pakiety NuGet do używania Redis z aplikacjami .NET, z wywołaniami do pobierania i ustawiania elementów w pamięci podręcznej Redis, a także do sprawdzania, czy aplikacja jest połączona z Redis. Wszystko, co musisz zrobić, to ustawić parametry połączenia pamięci podręcznej, a następnie użyć ich do utworzenia obiektu pamięci podręcznej z bazy danych Redis. Jeśli używasz programu Visual Studio, możesz pracować z Redis przy użyciu znanych narzędzi baz danych .NET, takich jak Entity Framework.

Aplikacje oparte na Redis są łatwe do zaimplementowania przy użyciu wzorców MVC (model, widok i kontroler), używając kontrolerów do zapisywania serializowanych danych w pamięci podręcznej i odczytywania ich w razie potrzeby. Firma Microsoft zaleca używanie formatów JSON do zapisywania i odczytywania danych, a zwrócone dane JSON są łatwe do formatowania i wyświetlania przy użyciu typowych bibliotek JavaScript i .NET.

Azure Cache for Redis to więcej niż baza danych i zestaw interfejsów API, ponieważ zawiera pełny zestaw narzędzi do zarządzania, w tym monitorowanie. W razie potrzeby mogą one pomóc w skalowaniu instancji Redis. Możesz skalować w górę tylko poziomy, przechodząc z Basic do Standard do Premium.

Wszelkie zmiany rozmiaru są osobną operacją i możesz zmienić rozmiar w górę lub w dół w ramach tego samego poziomu (z zastrzeżeniem, że nie możesz skalować w dół do najmniejszej oferty rozmiaru standardowego). Jeśli chcesz obniżyć poziom, utwórz nową instancję Redis, a następnie skopiuj wszystkie dane lub struktury do nowej bazy danych przed usunięciem starszej wersji. Jeśli chcesz zautomatyzować skalowanie, możesz użyć programu PowerShell lub interfejsu wiersza polecenia platformy Azure albo kodu przy użyciu bibliotek zarządzania platformy Azure.

Skalowanie do funkcji bazy danych w pamięci Redis Enterprise

Implementacja Redis na platformie Azure jest dobra, ale to nie wszystko. Opiera się na open source Redis, więc nie ma wszystkich funkcji komercyjnego Redis Enterprise. Właśnie dlatego Microsoft i Redis współpracowały, aby dostarczyć dwie dodatkowe warstwy, zarządzane przez Microsoft i obsługiwane przez obie firmy, z pełną integracją z Azure Portal. Enterprise, warstwa podstawowa, korzysta ze standardowego magazynu Azure, natomiast warstwa Enterprise SSD dodaje obsługę magazynu flash w celu szybszego dostępu do danych, które nie są dostępne w pamięci.

Obecnie w prywatnej wersji zapoznawczej nowa usługa dodaje obsługę kluczowych modułów Redis Enterprise, umożliwiając korzystanie z usługi do znacznie więcej niż danych czysto buforowanych. To ważna różnica, ponieważ szybka baza danych w pamięci jest ważną częścią systemu sterowanego zdarzeniami na dużą skalę, zwłaszcza takiego, który opiera się na danych szeregów czasowych. Inne obsługiwane funkcje obejmują RedisBloom, który dodaje probabilistyczne filtrowanie danych, oraz RediSearch, który usprawnia indeksowanie i umożliwia korzystanie z wyszukiwania pełnotekstowego w danych.

Dodatkowe funkcje zostaną dodane, gdy usługa przejdzie z prywatnej wersji zapoznawczej do ogólnej dostępności (obecnie zaplanowana na koniec 2020 r.). Umożliwi to korzystanie z replikacji aktywnej i aktywnej między regionami geograficznymi i wdrożeń hybrydowych, które działają między wystąpieniami prywatnymi i wystąpieniami Redis hostowanymi na platformie Azure. Nie ma potrzeby posiadania dedykowanego połączenia między środowiskiem lokalnym a usługą Azure Redis; replikacja aktywna-aktywna będzie działać przez VPN.

Nowa implementacja Redis Enterprise wygląda jak istniejąca pamięć podręczna Azure dla Redis w portalu i będzie można skalować w górę z istniejących wystąpień lub zacząć od zera. Jeśli szukasz lepszej wydajności, opcją jest skalowanie w górę, ale prawdopodobnie będziesz chciał utworzyć zupełnie nową instancję, jeśli korzystasz z którejkolwiek z nowych funkcji bazy danych. Możesz je włączyć w ramach procesu tworzenia, w portalu lub za pośrednictwem szablonu usługi Azure Resource Manager. Chociaż większość zadań związanych z zarządzaniem i monitorowaniem będzie odbywać się z poziomu portalu Azure, możesz skorzystać z własnych narzędzi do zarządzania Redis, które pomogą dostroić i zoptymalizować dane.

Połączenie implementacji Redis na platformie Azure i Redis Enterprise RedisLabs jest interesującym rozwiązaniem, które pokazuje, w jaki sposób dostawca z ofertą premium opartą na fundamencie open source może współistnieć z chmurami hiperskalowymi. Azure jest w stanie zaoferować usługę opartą na platformie open source, podczas gdy bardziej złożone implementacje mogą korzystać z narzędzi RedisLabs. Ta droga daje firmie dostęp do nowego strumienia przychodów bez konieczności zmiany modelu licencjonowania na taki, który wyklucza dostawców usług w chmurze.

Dzięki prostej ścieżce z usługi pamięci podręcznej Redis opartej na platformie Azure do Redis Enterprise i bez zmian w narzędziach do zarządzania lub relacjach rozliczeniowych jest również przejrzysta dla użytkowników końcowych. Otrzymują dostęp do nowych poziomów i nowych funkcji bez konieczności zmiany sposobu pracy.