Migrowanie z pamięci podręcznych iniekcji sieci wirtualnej do pamięci podręcznych usługi Private Link

W tym artykule opisano wiele podejść do migrowania wystąpień pamięci podręcznej z wstrzykniętą pamięcią podręczną Azure Cache for Redis Virtual Network (VNet) do wystąpień pamięci podręcznej Azure Cache for Redis Private Link.

Azure Private Link upraszcza architekturę sieci i zabezpiecza połączenie między punktami końcowymi na platformie Azure. Umożliwia łączenie się z wystąpieniem usługi Azure Cache z sieci wirtualnej za pośrednictwem prywatnego punktu końcowego, który ma przypisany prywatny adres IP w podsieci w sieci wirtualnej. Zalety korzystania z Azure Private Link dla Azure Cache for Redis obejmują:

  • Elastyczność warstwy — Azure Private Link jest obsługiwana we wszystkich naszych warstwach; Podstawowa, Standardowa, Premium, Enterprise i Enterprise Flash. W porównaniu do iniekcji Virtual Network, która jest oferowana tylko w naszej warstwie Premium.

  • Uproszczone zarządzanie regułami sieciowej grupy zabezpieczeń — reguły sieciowej grupy zabezpieczeń nie muszą być skonfigurowane tak, aby spełniały wymagania Azure Cache for Redis.

  • Azure Policy pomoc techniczna — upewnij się, że wszystkie pamięci podręczne w organizacji są tworzone przy użyciu Private Link i przeprowadź inspekcję istniejących pamięci podręcznych organizacji, aby sprawdzić, czy wszystkie te pamięci podręczne korzystają z Private Link.

Opcje migracji

Możesz przełączyć się z iniekcji sieci wirtualnej do Private Link przy użyciu kilku różnych sposobów. W zależności od tego, gdzie znajduje się pamięć podręczna i jak aplikacja współdziała z nią, jedna metoda będzie bardziej przydatna niż inne. Poniżej przedstawiono niektóre z często używanych strategii migracji.

Jeśli używasz dowolnej kombinacji replikacji geograficznej, klastrowania lub sieci wirtualnej usługi ARM:

Opcja Zalety Wady
Dane z podwójnym zapisem w dwóch pamięciach podręcznych Brak utraty danych ani przestoju. Nieprzerwane operacje istniejącej pamięci podręcznej. Łatwiejsze testowanie nowej pamięci podręcznej. Wymaga dwóch pamięci podręcznych przez dłuższy czas.
Tworzenie nowej pamięci podręcznej Najprostsze do zaimplementowania. Należy ponownie wypełniać dane w nowej pamięci podręcznej, co może nie działać z wieloma aplikacjami.
Eksportowanie i importowanie danych za pośrednictwem pliku RDB Migracja danych jest wymagana. Niektóre dane mogą zostać utracone, jeśli zostaną zapisane w istniejącej pamięci podręcznej po wygenerowaniu pliku RDB.
Programowe migrowanie danych Pełna kontrola nad sposobem przenoszenia danych. Wymaga kodu niestandardowego.

Zapisywanie w dwóch pamięciach podręcznych Redis jednocześnie w okresie migracji

Zamiast przenosić dane bezpośrednio między pamięciami podręcznymi, możesz użyć aplikacji do zapisywania danych w istniejącej pamięci podręcznej i nowej, którą konfigurujesz. Aplikacja będzie nadal odczytywać dane z istniejącej pamięci podręcznej. Gdy nowa pamięć podręczna zawiera niezbędne dane, przełącz aplikację do tej pamięci podręcznej i wycofasz starą. Załóżmy na przykład, że używasz usługi Redis jako magazynu sesji, a sesje aplikacji są ważne przez siedem dni. Po zapisaniu do dwóch pamięci podręcznych przez tydzień nowa pamięć podręczna będzie mieć pewność, że nowa pamięć podręczna zawiera wszystkie informacje o sesji, które nie wygasły. Możesz bezpiecznie polegać na nim od tego momentu, nie obawiając się utraty danych.

Ogólne kroki implementacji tej opcji to:

  1. Utwórz nowe wystąpienie Azure Cache for Redis z prywatnymi punktami końcowymi o takim samym rozmiarze jak (lub większe) istniejącej pamięci podręcznej.

  2. Zmodyfikuj kod aplikacji, aby zapisywać w nowych i oryginalnych wystąpieniach.

  3. Kontynuuj odczytywanie danych z oryginalnego wystąpienia, dopóki nowe wystąpienie nie zostanie wystarczająco wypełnione danymi.

  4. Zaktualizuj kod aplikacji, aby odczytywał i zapisywał tylko z nowego wystąpienia.

  5. Usuń oryginalne wystąpienie.

Tworzenie nowego Azure Cache for Redis

Takie podejście technicznie nie jest migracją. Jeśli utrata danych nie jest problemem, najprostszym sposobem przejścia do Azure Cache for Redis jest utworzenie wystąpienia pamięci podręcznej i połączenie aplikacji z nią. Jeśli na przykład używasz usługi Redis jako pamięci podręcznej z odkładaną do bok pamięci podręcznej rekordów bazy danych, możesz łatwo ponownie skompilować pamięć podręczną od podstaw.

Ogólne kroki implementacji tej opcji to:

  1. Utwórz nowe wystąpienie Azure Cache for Redis z prywatnymi punktami końcowymi.

  2. Zaktualizuj aplikację, aby korzystała z nowego wystąpienia.

  3. Usuń stare wystąpienie usługi Redis.

Eksportowanie danych do pliku RDB i importowanie ich do Azure Cache for Redis (tylko warstwa Premium)

Usługa Redis typu open source definiuje standardowy mechanizm tworzenia migawki zestawu danych w pamięci pamięci podręcznej i zapisywania go w pliku. Ten plik o nazwie RDB może być odczytywany przez inną pamięć podręczną Redis Cache. Azure Cache for Redis warstwa Premium obsługuje importowanie danych do wystąpienia pamięci podręcznej za pośrednictwem plików RDB. Możesz użyć pliku RDB do transferu danych z istniejącej pamięci podręcznej do Azure Cache for Redis.

Ważne

Format pliku RDB może ulec zmianie między wersjami usługi Redis i może nie zachować zgodności z poprzednimi wersjami. Wersja pamięci podręcznej redis, z której eksportujesz, powinna być równa lub mniejsza niż wersja podana przez Azure Cache for Redis.

Ogólne kroki implementacji tej opcji to:

  1. Utwórz nowe wystąpienie Azure Cache for Redis z prywatnymi punktami końcowymi w warstwie Premium o takim samym rozmiarze jak (lub większy) istniejącej pamięci podręcznej.

  2. Zapisz migawkę istniejącej pamięci podręcznej Redis Cache. Możesz skonfigurować usługę Redis do okresowego zapisywania migawek lub uruchomić proces ręcznie przy użyciu poleceń SAVE lub BGSAVE . Plik RDB ma domyślnie nazwę "dump.rdb" i będzie znajdować się w ścieżce określonej w pliku konfiguracji redis.conf .

    Uwaga

    Jeśli migrujesz dane w Azure Cache for Redis, zapoznaj się z tymi instrukcjami dotyczącymi eksportowania pliku RDB lub zamiast tego użyj polecenia cmdlet eksportu programu PowerShell.

  3. Skopiuj plik RDB do konta usługi Azure Storage w regionie, w którym znajduje się nowa pamięć podręczna. Do tego zadania można użyć narzędzia AzCopy.

  4. Zaimportuj plik RDB do nowej pamięci podręcznej przy użyciu tych instrukcji importowania lub polecenia cmdlet importowania programu PowerShell.

  5. Zaktualizuj aplikację, aby korzystała z nowego wystąpienia pamięci podręcznej.

Programowe migrowanie

Utwórz niestandardowy proces migracji, programowo odczytując dane z istniejącej pamięci podręcznej i zapisując je w Azure Cache for Redis. To narzędzie typu open source może służyć do kopiowania danych z jednego wystąpienia Azure Cache for Redis do innego. To narzędzie jest przydatne do przenoszenia danych między wystąpieniami pamięci podręcznej w różnych regionach usługi Azure Cache. Dostępna jest również skompilowana wersja . Kod źródłowy może być również przydatnym przewodnikiem pisania własnego narzędzia do migracji.

Uwaga

To narzędzie nie jest oficjalnie obsługiwane przez firmę Microsoft.

Ogólne kroki implementacji tej opcji to:

  1. Utwórz maszynę wirtualną w regionie, w którym znajduje się istniejąca pamięć podręczna. Jeśli zestaw danych jest duży, wybierz stosunkowo zaawansowaną maszynę wirtualną, aby skrócić czas kopiowania.

  2. Tworzenie nowego wystąpienia Azure Cache for Redis z prywatnymi punktami końcowymi

  3. Opróżnij dane z nowej pamięci podręcznej, aby upewnić się, że są puste. Ten krok jest wymagany, ponieważ samo narzędzie do kopiowania nie zastępuje żadnego istniejącego klucza w docelowej pamięci podręcznej.

    Ważne

    Pamiętaj, aby nie opróżnić pamięci podręcznej źródłowej.

  4. Użyj aplikacji, takiej jak narzędzie open source powyżej, aby zautomatyzować kopiowanie danych z pamięci podręcznej źródłowej do miejsca docelowego. Pamiętaj, że proces kopiowania może zająć trochę czasu w zależności od rozmiaru zestawu danych.

Następne kroki