Переход с кэша AppFabric к управляемой службе кэша Azure

Важно!

Корпорация Майкрософт рекомендует все новые разработки использовать кэш Redis для Azure. Текущая документация и рекомендации по выбору предложения кэша Azure см. в статье о том, какое предложение кэша Azure подходит для меня?

В этом разделе описывается миграция с Microsoft AppFabric 1.1 для Windows Server в Azure управляемая служба кэша. Этот тип миграции кэширования может произойти при перемещении локального приложения в Azure.

AppFabric поддерживает локальные кластеры кэша, использующие собственные серверы, и сетевую инфраструктуру. Переход в Azure упрощается тем, что большинство функций и модели программирования AppFabric совместно используются управляемая служба кэша.

  • План миграции

    • Анализ кластера кэша AppFabric

    • Выбор уровня кэша.

  • Воссоздание кластера кэша с помощью службы кэша

    • Создание кэша.

    • Настройка кэша

  • Настройка клиентов кэша.

    • Установка пакета NuGet для кэша

    • Перенос кода приложения

План миграции

Прежде чем перенести приложение с поддержкой кэша в облако, сначала ознакомьтесь с различиями между AppFabric и кэшем Microsoft Azure. Если требуется функция, например чтение или запись программной части, недоступной в кэше Microsoft Azure, необходимо изменить эту часть решения, чтобы успешно перейти в Azure.

  • Анализ кластера кэша AppFabric

  • Выбор уровня кэша.

Анализ кластера кэша AppFabric

Все кэши и их соответствующие параметры необходимо воссоздать в управляемая служба кэша. Первым шагом будет анализ кэша кластера AppFabric. Это позволит изучить текущую локальную конфигурацию.

  1. Для кластера кэша AppFabric откройте командную строку Администрирование кэша Windows PowerShell.

  2. Выполните команду Get-Cache без параметров. Будет выведен список именованных кэшей.

  3. Для каждого кэша в списке выполните команду Get-CacheConfig . В качестве аргумента команды следует передавать имя кэша. Запишите параметры конфигурации каждого кэша. Ниже приведен соответствующий пример.

    PS C:\Windows\system32> Get-CacheConfig TestCache
    
    CacheName                : TestCache
    TimeToLive               : 20 mins
    CacheType                : Partitioned
    Secondaries              : 0
    MinSecondaries           : 0
    IsExpirable              : True
    EvictionType             : None
    NotificationsEnabled     : True
    WriteBehindEnabled       : False
    WriteBehindInterval      : 300
    WriteBehindRetryInterval : 60
    WriteBehindRetryCount    : -1
    ReadThroughEnabled       : False
    ProviderType             :
    ProviderSettings         : {}
    
  4. Выполните команду Get-CacheHost , чтобы просмотреть список узлов кэша в кластере кэша.

  5. Для каждого узла кэша выполните команду Get-CacheHostConfig . Передайте необходимые аргументы: имя узла кэша и порт кэширования (обычно порт 22233). Запишите параметр Size для каждого узла кэша.

  6. Сложите значения Size всех узлов кэша, чтобы вычислить общий размер кластера кэша. Это Size можно использовать в качестве отправной точки при определении предложения и емкости кэша при создании нового кэша в управляемая служба кэша.

Выбор уровня кэша.

управляемая служба кэша доступны в следующих трех предложениях.

  • Basic — кэш размером от 128 МБ до 1 ГБ с шагом 128 МБ, один именованный кэш по умолчанию.

  • Standard — кэш размером от 1 до 10 ГБ с приращением в 1 ГБ, а также поддержкой уведомлений, высокого уровня доступности и до десяти именованных кэшей.

  • Premium — кэш размером от 5 до 150 ГБ с шагом 5 ГБ, поддержка уведомлений, высокой доступности и до десяти именованных кэшей.

Примечание

Все предложения отличаются ценой и возможностями. Дополнительные сведения см. в разделе "Часто задаваемые вопросы о ценах на службу кэша". Дополнительные сведения также приведены в следующем разделе "Настройка кэша" в этом руководстве по миграции.

Большинство функций кэша Microsoft AppFabric 1.1 для Windows Server доступны в управляемая служба кэша (за исключением операций чтения и записи), но не все функции управляемая служба кэша доступны во всех управляемая служба кэша предложения кэша. Если приложение использует уведомления или высокий уровень доступности, следует выбрать предложение кэша "Стандартный" или Premium. Отправной точкой миграции является выбор предложения кэша управляемая служба кэша с нужными функциями кэша и соответствие емкости кэшей Microsoft AppFabric 1.1 для Windows Server, как описано в разделе "Анализ кластера кэша AppFabric". После развертывания приложения можно отслеживать производительность кэша и масштабировать его в зависимости от потребностей приложения. Дополнительные сведения о мониторинге производительности и масштабировании см. в статье "Мониторинг Azure управляемая служба кэша имасштабирование кэша для Azure управляемая служба кэша".

Воссоздание кластера кэша с помощью службы кэша

Чтобы повторно создать кластер кэша Microsoft AppFabric 1.1 для Windows Server с помощью управляемая служба кэша, выполните следующие действия.

  • Создание кэша.

  • Настройка кэша

Предупреждение

Она не поддерживается для установки AppFabric и пакета AZURE SDK на одном компьютере разработки. В этих шагах предполагается, что вы используете отдельные компьютеры или полностью удалите AppFabric перед установкой пакета AZURE SDK.

Создание кэша.

Экземпляры кэша в управляемая служба кэша создаются с помощью скриптов PowerShell.

Важно!

После создания экземпляра управляемая служба кэша с помощью командлетов PowerShell его можно просмотреть и настроить на портале управления Azure.

Создание экземпляра управляемая служба кэша

  1. Откройте командное окно Azure PowerShell.

    Примечание

    Инструкции по установке и использованию Azure PowerShell см. в разделе Установка и настройка Microsoft Azure PowerShell.

  2. Вызовите командлет Add-AzureAccount и введите электронный адрес и пароль, связанный с вашей учетной записью.

    Примечание

    Если вы настроили Azure PowerShell сертификатом для своей учетной записи, этот шаг можно пропустить. Дополнительные сведения о подключении Azure PowerShell к своей учетной записи Azure см. в разделе Установка и настройка Azure PowerShell.

  3. Вызовите командлет New-AzureManagedCache и укажите имя, область, размер кэша и память кэша. В приведенном примере в географической области contosocache создан кэш South Central US размера Basic с памятью 128 МБ.

    New-AzureManagedCache -Name contosocache -Location "South Central US" -Sku Basic -Memory 128MB
    

    Примечание

    Полный список параметров и значений, которые могут использоваться при создании кэша, доступны в документации по командлету New-AzureManagedCache.

  4. После вызова командлета PowerShell cоздание кэша может занять несколько минут. После создания кэша новый кэш имеет состояние "Выполняется " и готов к использованию с параметрами по умолчанию, и его можно просмотреть и настроить на портале управления Azure.

    Ход выполнения операции создания можно отслеживать в окне Azure PowerShell. Как только кэш будет готов к использованию, командлет New-AzureManagedCache выведет информацию о кэше, как показано в приведенном примере.

    PS C:\> Add-AzureAccount
    VERBOSE: Account "user@domain.com" has been added.
    VERBOSE: Subscription "MySubscription" is selected as the default subscription.
    VERBOSE: To view all the subscriptions, please use Get-AzureSubscription.
    VERBOSE: To switch to a different subscription, please use Select-AzureSubscription.
    PS C:\> New-AzureManagedCache -Name contosocache -Location "South Central US" -Sku Basic -Memory 128MB
    VERBOSE: Intializing parameters...
    VERBOSE: Creating prerequisites...
    VERBOSE: Verify cache service name...
    VERBOSE: Creating cache service...
    VERBOSE: Waiting for cache service to be in ready state...
    
    
    Name     : contosocache
    Location : South Central US
    State    : Active
    Sku      : Basic
    Memory   : 128MB
    
    
    
    PS C:\>
    

Настройка кэша

Как Microsoft AppFabric 1.1 для Windows Server, так и управляемая служба кэша поддерживают именованные кэши, что обеспечивает гибкость в настройке различных параметров кэша для разных наборов данных. Каждый кэш управляемая служба кэша имеет именованный кэш по умолчанию, а в предложениях кэша standard и Premium можно настроить до девяти дополнительных именованных кэшей. У каждого именованного кэша собственные настройки, в том числе параметры высокого уровня доступности, уведомлений, а также настраиваемые политики вытеснения и срока действия. Параметры именованного кэша можно настроить на портале управления, на вкладке "Configure" (Настройка) для кэша.

Named Caches in Windows Azure Cache Service

В следующей таблице выходные данные get-CacheConfig сопоставляются с параметрами в окне кэширования.

Параметр Get-CacheConfig параметр управляемая служба кэша

CacheName

имя;

timeToLive

Время (мин)

Вторичные выражения (0, 1)

Высокая доступность (0 = выключено, 1 = включено)

Завершаемый (True, False) (Истинно, Ложно)

Тип срока действия (True = абсолютно, False = нет)

управляемая служба кэша имеет третью политику истечения срока действия с именем "Скользящее", где интервал времени ожидания для элемента сбрасывается при каждом обращении к элементу.

EvictionType (None, LRU)

Политика срока действия (None = выключена, LRU = включена)

Уведомления разрешены (True, False) (Истинно, Ложно)

Уведомления (True = включены, False = выключены)

Примечание

Все параметры кэширования AppFabric, которые не перечислены здесь, не поддерживаются в кэше Microsoft Azure.

Удаление конфигурации кэша AppFabric

Прежде чем клиентские приложения можно будет настроить для управляемая служба кэша, необходимо удалить существующую конфигурацию и ссылки на сборки Microsoft AppFabric 1.1 для Windows Server.

Чтобы вручную удалить конфигурацию Microsoft AppFabric 1.1 для Windows Server, необходимо удалить ссылки на сборки Microsoft AppFabric 1.1 для Windows Server и microsoft AppFabric 1.1 для Windows Server конфигурация из app.config или web.config.

Чтобы удалить ссылки на сборки Microsoft AppFabric 1.1 для Windows Server, выберите клиентский проект кэша в Обозреватель решений и разверните папку "Ссылки". Для каждой сборки в приведенном списке выполните следующее действие: в обозревателе решений, в папке Ссылки, щелкните правой кнопкой мыши ссылку и выберите пункт Удалить. Если клиентом является веб-проект, также удалите Microsoft.Web.DistributedCache.

  • Microsoft.ApplicationServer.Caching.Client

  • Microsoft.ApplicationServer.Caching.Core

  • Microsoft.WindowsFabric.Common

  • Microsoft.WindowsFabric.Data.Common

Чтобы удалить конфигурацию Microsoft AppFabric 1.1 для Windows Server, откройте web.config или app.config проект клиента кэша и удалите следующие два элемента.

  • Удалите запись dataCacheClients из элемента configSections. Не удаляйте весь элемент configSections. Просто удалите запись dataCacheClients, если она есть.

    <configSections>
      <!-- Existing sections omitted for clarity. -->
      <section name="dataCacheClients" type="Microsoft.ApplicationServer.Caching.DataCacheClientsSection, Microsoft.ApplicationServer.Caching.Core" allowLocation="true" allowDefinition="Everywhere" />
    </configSections>
    
  • Удалите раздел dataCacheClients, который будет таким же, как в следующем примере.

    <dataCacheClients>
      <dataCacheClient name="default">
        <hosts>
          <host name="MyCacheNamespace.cache.windows.net" cachePort="22233" />
        </hosts>
    
        <securityProperties mode="Message">
          <messageSecurity 
            authorizationInfo="Your authorization token will be here.">
          </messageSecurity>
        </securityProperties>
      </dataCacheClient>
    </dataCacheClients>
    

Удалив эти элементы, можно переходить к действиям, которые описаны в следующем разделе, чтобы настроить клиент кэша.

Настройка клиентов кэша.

Удалив эти элементы, можно переходить к действиям, которые описаны в следующем разделе, чтобы настроить клиент кэша.

  • Установка пакета NuGet для кэша

  • Перенос кода приложения

Установка пакета NuGet для кэша

Microsoft Azure Кэш предоставляет пакет NuGet для добавления необходимых ссылок на конфигурацию и сборки, чтобы клиенты кэша могли получить доступ к кэшу.

Важно!

Перед настройкой клиента кэша с помощью пакета управляемая служба кэша NuGet убедитесь, что конфигурация Microsoft AppFabric 1.1 для Windows Server полностью удалена из web.config клиентского проекта или app.config проекта клиента, как описано в предыдущем разделе.

Важно!

Для выполнения этих действий требуется последняя версия диспетчера пакетов NuGet (2.6.40627.9000 или более поздняя версия). Чтобы установить последнюю версию NuGet диспетчер пакетов, см. NuGet диспетчер пакетов.

Чтобы использовать пакет управляемая служба кэша NuGet, щелкните правой кнопкой мыши клиентский проект в Обозреватель решений и выберите пункт "Управление пакетами NuGet".

Выберите пункт Azure Caching, нажмите кнопку Установить и кнопку Принимаю. После установки пакета в проект клиента нажмите кнопку Закрыть, чтобы закрыть окно Управление пакетами NuGet.

Примечание

Если пункт Azure Caching отсутствует в списке, введите WindowsAzure.Caching в текстовом поле Поиск в сети.

Windows Azure Cache NuGet Package

При установке пакета управляемая служба кэша NuGet в клиентский проект он добавляет необходимые ссылки на конфигурацию и сборки, чтобы клиентское приложение получите доступ к кэшу.

В файл web.config или app.config проекта клиента добавляется несколько элементов.

  1. В configSections добавляются разделы dataCacheClients и cacheDiagnostics.

    <!-- Non-cache sections omitted for space -->
      <configSections>
        <section name="dataCacheClients" 
            type="Microsoft.ApplicationServer.Caching.DataCacheClientsSection, Microsoft.ApplicationServer.Caching.Core" 
            allowLocation="true" 
            allowDefinition="Everywhere" />
    
        <section name="cacheDiagnostics" 
            type="Microsoft.ApplicationServer.Caching.AzureCommon.DiagnosticsConfigurationSection, Microsoft.ApplicationServer.Caching.AzureCommon" 
            allowLocation="true" 
            allowDefinition="Everywhere" />
      </configSections>
    
  2. Раздел dataCacheClients добавляется в configuration.

    <!-- Non-cache sections omitted for space -->
      <dataCacheClients>
        <dataCacheClient name="default">
          <!--To use the in-role flavor of Azure Caching, set identifier to be the cache cluster role name -->
          <!--To use the Azure Caching Service, set identifier to be the endpoint of the cache cluster -->
          <autoDiscover
            isEnabled="true" 
            identifier="[Cache role name or Service Endpoint]" />
          <!--<localCache isEnabled="true" sync="TimeoutBased" objectCount="100000" ttlValue="300" />-->
          <!--Use this section to specify security settings for connecting to your cache. 
              This section is not required if your cache is hosted on a role that is a part 
              of your cloud service. -->
          <!--<securityProperties mode="Message" sslEnabled="false">
            <messageSecurity authorizationInfo="[Authentication Key]" />
          </securityProperties>-->
        </dataCacheClient>
      </dataCacheClients>
    

    Замените [имя роли кэша или конечную точку службы] конечной точкой, которая отображается на панели мониторинга кэша на портале управления.

    Endpoint URL for Windows Azure Cache Service
    В этом примере кэш называется applicationcache, а конечная точка — applicationcache.cache.windows.net.

    <autoDiscover isEnabled="true" identifier="applicationcache.cache.windows.net" />
    

    Раскомментируйте раздел securityProperties и замените [ключ проверки подлинности] ключом проверки подлинности.

    <!--Use this section to specify security settings for connecting to your cache. 
        This section is not required if your cache is hosted on a role that is a part 
        of your cloud service. -->
    <!--<securityProperties mode="Message" sslEnabled="false">
      <messageSecurity authorizationInfo="[Authentication Key]" />
    </securityProperties>-->
    

    Ключ проверки подлинности можно найти на портале управления. Для этого необходимо щелкнуть Manage Keys (Управление ключами) на панели мониторинга кэша.

    Manage Access Keys for Windows Azure Cache Service Атрибут sslEnabled настраивает, шифруется ли обмен данными между клиентом кэша и кэшем с помощью SSL. Дополнительные сведения об использовании атрибута см. в sslEnabled разделе "Защита обмена данными между клиентами кэша и кэшем".

    Предупреждение

    Эти параметры следует настраивать правильно, иначе клиенты не смогут получить доступ к кэшу.

Для проектов облачных служб пакет управляемая служба кэша NuGet также добавляет параметр ClientDiagnosticLevel в ConfigurationSettings роль клиента кэша.ServiceConfiguration.cscfg В следующем примере показан WebRole1 раздел из ServiceConfiguration.cscfg файла с clientDiagnosticLevel 1, который является clientDiagnosticLevel по умолчанию.

<Role name="WebRole1">
  <Instances count="1" />
  <ConfigurationSettings>
    <!-- Other settings omitted for space... -->
    <Setting name="Microsoft.WindowsAzure.Plugins.Caching.ClientDiagnosticLevel" value="1" />
  </ConfigurationSettings>
</Role>

Примечание

Дополнительные сведения об уровнях диагностики кэша см. в статье "Сведения о ClientDiagnosticLevel для Azure управляемая служба кэша".

Помимо добавления требуемой конфигурации пакет управляемая служба кэша NuGet также добавляет следующие ссылки на сборки.

  • Microsoft.ApplicationServer.Caching.Client.dll

  • Microsoft.ApplicationServer.Caching.Core.dll

  • Microsoft.ApplicationServer.Caching.AzureCommon.dll

  • Microsoft.ApplicationServer.Caching.AzureClientHelper.dll

  • Microsoft.WindowsFabric.Common.dll

  • Microsoft.WindowsFabric.Data.Common.dll

Если проект — это веб-проект, также добавляется следующая ссылка на сборку.

  • Microsoft.Web.DistributedCache.dll

Примечание

управляемая служба кэша и Microsoft AppFabric 1.1 для Windows Server совместно используют один и тот же API, и хотя имена сборок одинаковы, сами сборки отличаются и находятся в разных расположениях. Пакет управляемая служба кэша NuGet добавит правильные управляемая служба кэша ссылки на сборки. Сборки управляемая служба кэша находятся в папкеC:\Program Files\Microsoft SDKs\Azure\.NET SDK[SDk Version]\ref\Caching.

Перенос кода приложения

Последним шагом является перемещение кода приложения для использования управляемая служба кэша. Обратите внимание, что пространство имен и многие API не изменяются, поэтому требуются минимальные правки. Дополнительные сведения см. в разделе "Различия между локальным приложением AppFabric 1.1" и управляемая служба кэша Azure.