VENTAS: 1-800-867-1389

Migrar de Caché en rol al Servicio de caché administrado de Azure

Actualizado: septiembre de 2014

noteNota
Si quiere que le guiemos a la hora de elegir la oferta de Caché de Azure que mejor se adapta a su aplicación, consulte ¿Cuál es la oferta de Caché de Azure más adecuada para mí?.

La migración de las aplicaciones Caché de Microsoft Azure que usan Caché en rol a Servicio de caché administrado de Azure se puede llevar a cabo con cambios mínimos en la aplicación. Puesto que Servicio de caché administrado usa las mismas API que usa Caché en rol, el código existente que usa Caché en rol para obtener acceso a una memoria caché se puede reutilizar con Servicio de caché administrado. En este tema se muestra cómo realizar los cambios de configuración y de aplicación necesarios para migrar aplicaciones de Caché en rol para usar Servicio de caché administrado.

Servicio de caché administrado está disponible en las tres ofertas siguientes.

  • Basic: caché en tamaños de 128 MB a 1 GB en incrementos de 128 MB, con una caché con nombre predeterminada.

  • Standard: caché en tamaños de 1 GB a 10 GB en incrementos de 1 GB, con funcionalidad de notificaciones y hasta diez cachés con nombre.

  • Premium: caché en tamaños de 5 GB a 150 GB en incrementos de 5 GB, con funcionalidad de notificaciones, alta disponibilidad y hasta diez cachés con nombre.

noteNota
Cada oferta difiere en términos de precio y características. Para obtener más información, vea Preguntas más frecuentes sobre precios de Servicio de caché y Ofertas de Caché para el Servicio de caché administrado de Azure. También se proporcionan más detalles en la sección Configure the Cache de esta guía de migración.

Todas las características de caché de Caché en rol están disponibles en las diferentes ofertas de caché de Servicio de caché administrado. Si su aplicación usa notificaciones, debe elegir las ofertas de caché Standard o Basic. Si su caché tiene habilitada la opción de alta disponibilidad, debe elegir la oferta de caché Premium. Un punto de partida para la migración es elegir la oferta de caché de Servicio de caché administrado que satisfaga los requisitos de su aplicación de Caché en rol en cuanto a características de caché y capacidad.

Tras implementar la aplicación, puede supervisar el rendimiento de la memoria caché y ampliarla o reducirla en función de los requisitos de la aplicación. Para obtener más información sobre la supervisión del rendimiento y el escalado, vea Supervisar el Servicio de caché administrado de Azure y Escalar una memoria caché para el Servicio de caché administrado de Azure.

Las instancias de caché del Servicio de caché administrado se crean usando scripts de PowerShell.

ImportantImportante
Una vez que se ha creado una instancia del Servicio de caché administrado con los cmdlets de PowerShell, se puede ver y configurar en el Portal de administración de Azure.

  1. Abra una ventana de comandos de Azure PowerShell.

    noteNota
    Para obtener instrucciones de instalación y uso de Azure PowerShell, vea Cómo instalar y configurar Azure PowerShell.

  2. Invoque el cmdlet Add-AzureAccount y escriba la dirección de correo electrónico y la contraseña asociadas a la cuenta.

    noteNota
    Si ha configurado Azure PowerShell con un certificado para la cuenta, puede pasar por alto este paso. Para obtener más información sobre la conexión a Azure PowerShell con su cuenta de Azure, vea Cómo instalar y configurar Azure PowerShell.

  3. Invoque el cmdlet New-AzureManagedCache y especifique el nombre, la región, la oferta de caché y el tamaño de la caché. En el siguiente ejemplo, se crea una caché de la oferta Basic de 128 MB con el nombre contosocache, en la región geográfica South Central US.

    New-AzureManagedCache -Name contosocache -Location "South Central US" -Sku Basic -Memory 128MB
    
    noteNota
    Para obtener una lista completa de parámetros y valores que se pueden usar cuando se crea una caché, vea la documentación del cmdlet New-AzureManagedCache.

  4. Tras invocar al cmdlet de PowerShell, la creación de la memoria caché puede tardar unos minutos. Una vez creada la memoria caché, esta tiene el estado En ejecución, está preparada para su uso con la configuración predeterminada, y se puede ver y configurar en el Portal de administración de Azure.

    Puede supervisar el progreso de creación en la ventana de Azure PowerShell. Cuando la memoria caché está preparada para su uso, el cmdlet New-AzureManagedCache expone la información de caché, como se muestra en el siguiente ejemplo.

    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:\>
    

Caché en rol y Servicio de caché administrado admiten cachés con nombre, lo que proporciona la flexibilidad de configurar diferentes opciones de caché para diferentes conjuntos de datos. Cada memoria caché de Servicio de caché administrado tiene una caché con nombre predeterminada y, en las ofertas de caché Standard y Premium, se pueden configurar hasta nueve cachés con nombre adicionales. Cada caché con nombre tiene sus propias opciones de configuración individuales, como alta disponibilidad, notificaciones, y directivas personalizadas de expiración y expulsión. La configuración de la memoria caché con nombre se configura en el Portal de administración, en la ficha Configurar para Caché.

Cachés con nombre en Servicio de almacenamiento en caché de Windows Azure

Aunque Caché en rol y Servicio de caché administrado tienen las mismas características de caché, existen ligeras diferencias que se enumeran en la siguiente tabla.

 

Característica Compatibilidad con Servicio de caché administrado Compatibilidad con Caché en rol

Nombre

Existe una memoria caché predeterminada configurada y, en las ofertas de caché Standard y Premium, se pueden configurar hasta nueve cachés con nombre adicionales.

Existe una caché predeterminada configurada y se pueden configurar cachés con nombre adicionales.

ante desastres

La alta disponibilidad solo está disponible en la mejor oferta de caché, y no está disponible para las ofertas básica o estándar. Para obtener más información, vea Ofertas de Caché para el Servicio de caché administrado de Azure.

La alta disponibilidad se puede habilitar para todas las topologías de Caché en rol.

Notificaciones

Las notificaciones están disponibles en las ofertas de caché Standard y Premium, y no están disponibles en la oferta Basic. Para obtener más información, vea Ofertas de Caché para el Servicio de caché administrado de Azure.

Las notificaciones se pueden habilitar para todas las topologías de Caché en rol.

Directiva de expulsión

Las opciones son Habilitado, que usa un algoritmo LRU (último usado) para determinar los elementos que se deben expulsar, o Deshabilitado. El valor predeterminado es Habilitado.

Las opciones son LRU (últimos usados recientemente) o Ninguno. La opción predeterminada es LRU.

Tiempo (min)

En Servicio de caché administrado, el valor se denomina Tiempo (min).

En Caché en rol, el valor se denomina Período de vida (min).

Directiva de expiración

Este valor se denomina Directiva de expiración y tiene tres valores posibles: Nunca, Absoluto y Deslizante que se corresponden con la configuración de Política de expiración de Caché en rol.

Este valor se denomina Directiva de expiración y tiene tres valores posibles: Ninguno, Absoluto y Ventana deslizante.

Para migrar de Caché en rol a Servicio de caché administrado, vuelva a crear todas las cachés con nombre a partir del clúster de caché de Caché en rol en la nueva caché de Servicio de caché administrado.

Después de configurar la nueva caché de Servicio de caché administrado, el siguiente paso es quitar el almacenamiento en caché del rol que hospedaba Caché en rol. Estos pasos varían en función de la topología de clúster de caché para Caché en rol.

Para quitar un clúster de caché de rol dedicado, debe quitar el proyecto de rol de trabajo de caché de la solución de Visual Studio y de la carpeta Roles del proyecto de servicios en la nube.

  1. Haga clic con el botón secundario en el rol de trabajo de caché en la carpeta Roles del proyecto de servicios en la nube en el Explorador de soluciones y elija Quitar.

    Quitar caché de rol de trabajo
  2. Haga clic con el botón secundario en el proyecto de rol de trabajo en el Explorador de soluciones y elija Quitar.

Para deshabilitar el almacenamiento en caché de rol colocado en un rol web o de trabajo, debe desactivar el valor Almacenamiento en caché en la pestaña Almacenamiento en caché.

  1. Haga clic con el botón secundario en el proyecto de servicios en la nube en el Explorador de soluciones y elija Propiedades.

    Elemento del menú Propiedades de rol de Caché
  2. Cambie a la pestaña Almacenamiento en caché y desactive la casilla Habilitar caché. Por último, presione CTRL+S para guardar.

    Deshabilitar configuración d caché de rol colocado

Una vez creada y configurada la memoria caché, el siguiente paso es agregar la configuración y las referencias necesarias para que los clientes de caché puedan acceder a ella. Servicio de caché administrado admite los clientes siguientes.

  • Sitios web de Azure

  • Rol web y rol de trabajo Servicios en la nube de Azure

  • Máquinas virtuales de Azure

noteNota
Si el proyecto Caché en rol ya usa la versión más reciente del SDK de , todo lo que necesita hacer es actualizar la configuración del cliente de caché. Para ello, omita los pasos que se indican a continuación y siga el procedimiento descrito en Actualizar la configuración del cliente de caché para que use el Servicio de caché.

Si el proyecto Caché en rol usa el SDK 1.8 - 2.0 de , necesita quitar el paquete NuGet de almacenamiento en caché, quitar cualquier configuración de cliente de caché restante e instalar el SDK de Azure más reciente (actualmente, la versión 2.1). Después de actualizar el SDK, instale y configure el paquete NuGet de almacenamiento en caché más reciente. Para configurar los clientes de caché, realice los siguientes pasos para cada uno de ellos.

Para poder configurar aplicaciones cliente para Servicio de caché administrado, deben quitarse la configuración y las referencias de ensamblado actuales de Caché en rol. Esto se puede hacer desinstalando el paquete NuGet de almacenamiento en caché.

Para desinstalar el paquete NuGet de Caché en rol, haga clic con el botón secundario en el proyecto de cliente en el Explorador de soluciones y elija Administrar paquetes NuGet. Seleccione el nodo Paquetes instalados y escriba Almacenamiento en caché en el cuadro Buscar paquetes instalados. Seleccione Almacenamiento en caché compartido de Azure, haga clic en Desinstalar y, a continuación, en Cerrar.

noteNota
En la siguiente captura de pantalla, la versión del paquete NuGet es 2.1.0.0. Si tiene esta versión o una superior, puede pasar por alto este paso. Solamente necesita realizar este paso si la versión del paquete NuGet es 1.8.* o 2.0.*.

Desinstalar paquete NuGet de caché en rol

Al desinstalar el paquete NuGet de Caché en rol, se quitan los ensamblados de Caché en rol y las entradas de Caché en rol en el archivo app.config o web.config de la aplicación cliente. Puede que algunas opciones personalizadas no se supriman al desinstalar el paquete NuGet, por lo que es recomendable abrir web.config o app.config y comprobar que los elementos siguientes se hayan suprimido por completo.

  • Compruebe que la entrada dataCacheClients se haya suprimido del elemento configSections. No suprima todo el elemento configSections; suprima únicamente la entrada dataCacheClients, si está presente.

    <configSections>
      <!-- Existing sections omitted for clarity. -->
      <section name="dataCacheClients" type="Microsoft.ApplicationServer.Caching.DataCacheClientsSection, Microsoft.ApplicationServer.Caching.Core" allowLocation="true" allowDefinition="Everywhere" />
    </configSections>
    
  • Compruebe que la sección dataCacheClients se haya suprimido. La sección dataCacheClients será similar a la del ejemplo siguiente.

    <dataCacheClients>
      <dataCacheClient name="default" channelOpenTimeout="0">
        <autoDiscover isEnabled="true" identifier="CacheWorker" />
      </dataCacheClient>
    </dataCacheClients>
    

Después de suprimir la configuración de Caché en rol, puede configurar el cliente de caché como se describe en la siguiente sección Configurar un cliente de caché mediante el paquete NuGet de Caching.

Servicio de caché administrado proporciona un paquete NuGet para agregar la configuración y las referencias de ensamblado necesarias a fin de permitir que los clientes de caché accedan a la memoria caché.

ImportantImportante
Antes de configurar el cliente de caché con el paquete NuGet de Servicio de caché administrado, asegúrese de que la configuración de Caché en rol se haya suprimido por completo de web.config o app.config del rol de cliente, tal y como se describe en la sección anterior.

ImportantImportante
Estos pasos requieren la última versión del Administrador de paquetes NuGet (2.2.* o superior). Para instalar la última versión del Administrador de paquetes NuGet, vea Administrador de paquetes NuGet (puede estar en inglés).

Para usar el paquete NuGet de Servicio de caché administrado, haga clic con el botón secundario del proyecto de cliente en el Explorador de soluciones y elija Administrar paquetes NuGet.

Seleccione Caching de Azure, haga clic en Instalar y, a continuación, en Acepto. Una vez instalado el paquete en el proyecto de cliente, haga clic en Cerrar para cerrar la ventana Administrar paquetes NuGet.

noteNota
Si Caching de Azure no aparece en la lista, escriba WindowsAzure.Caching en el cuadro de texto Buscar en línea.

Paquete NuGet de Almacenamiento en caché de Windows Azure

Cuando se instala el paquete NuGet de Servicio de caché administrado en un proyecto de cliente, este agrega la configuración y las referencias de ensamblado necesarias para que la aplicación cliente pueda acceder a la memoria caché.

Se han agregado varios elementos al archivo web.config o app.config del proyecto.

  1. Se han agregado dos secciones a configSections, dataCacheClients con nombre y 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. Se ha agregado una sección dataCacheClients a la sección 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>
    
    Reemplace [Cache role name or Service Endpoint] por la dirección URL del extremo que se muestra en el panel de caché del Portal de administración.

    Dirección URL de extremo para Servicio de almacenamiento en caché de Windows Azure
    En este ejemplo, la memoria caché se llama applicationcache y la dirección URL del extremo es applicationcache.cache.windows.net.

    <autoDiscover isEnabled="true" identifier="applicationcache.cache.windows.net" />
    
    Quite las marcas de comentario de la sección securityProperties y reemplace [Authentication Key] por la clave de autenticación principal.

    <!--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>-->
    
    
    Para buscar la clave de autenticación, haga clic en Administrar claves en el panel de caché del Portal de administración. Para obtener más información sobre las claves de acceso y la protección de la comunicación de caché con el atributo sslEnabled, vea Modelo de seguridad para el Servicio de caché administrado de Azure.

    Administrar claves de acceso para Servicio de almacenamiento en caché de Windows Azure
    WarningAdvertencia
    Estas opciones deben configurarse correctamente; de lo contrario, los clientes no podrán acceder a la memoria caché.

Para proyectos de servicio en la nube, el paquete NuGet de Servicio de caché administrado agrega también un parámetro ClientDiagnosticLevel a la sección ConfigurationSettings del rol de cliente de caché en ServiceConfiguration.cscfg. El ejemplo siguiente es la sección de WebRole1 de un archivo ServiceConfiguration.cscfg con un valor de ClientDiagnosticLevel de 1, que es el valor predeterminado de ClientDiagnosticLevel.

<Role name="WebRole1">
  <Instances count="1" />
  <ConfigurationSettings>
    <!-- Other settings omitted for space... -->
    <Setting name="Microsoft.WindowsAzure.Plugins.Caching.ClientDiagnosticLevel" value="1" />
  </ConfigurationSettings>
</Role>
noteNota
Para obtener más información sobre niveles de diagnóstico de caché, vea Acerca de ClientDiagnosticLevel para el Servicio de caché administrado de Azure.

Además de agregar la configuración necesaria, el paquete NuGet de Servicio de caché administrado también agrega las siguientes referencias de ensamblado.

  • 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

Si se trata de un proyecto web, se agrega también la siguiente referencia de ensamblado.

  • Microsoft.Web.DistributedCache.dll

noteNota
Servicio de caché administrado y Caché en rol comparten la misma API y, aunque los nombres de ensamblado son iguales, los ensamblados en sí son diferentes y se encuentran en distintas ubicaciones. El paquete NuGet de Servicio de caché administrado suprime las referencias de ensamblado de Caché en rol y agrega las referencias de ensamblado de Servicio de caché administrado correctas. Los ensamblados de Servicio de caché administrado se encuentran en la carpeta C:\Program Files\Microsoft SDKs\Windows Azure\.NET SDK\v2.1\ref\Caching.

Si el proyecto Caché en rol ya usa la versión más reciente del SDK de , todo lo que necesita hacer es actualizar la configuración del cliente de caché para que apunte a la nueva caché de Servicio de caché administrado.

  1. Abra el archivo web.config o app.config del proyecto del cliente de caché y busque la sección dataCacheClients.

    <!-- Non-cache sections omitted for space -->
      <dataCacheClients>
        <dataCacheClient name="default">
          <!--To use the in-role flavor of Windows Azure Caching, set identifier to be the cache cluster role name -->
          <!--To use the Windows Azure Caching Service, set identifier to be the endpoint of the cache cluster -->
          <autoDiscover
            isEnabled="true" 
            identifier="MyCacheWorkerRole" />
          <!--<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>
    
  2. En la sección autoDiscover, cambie el nombre de rol del clúster de Caché en rol por el nombre de la dirección URL del extremo de la caché de Servicio de caché administrado en el atributo identifier. La dirección URL del extremo se muestra en el panel de caché del Portal de administración.

    Dirección URL de extremo para Servicio de almacenamiento en caché de Windows Azure
    En este ejemplo, la memoria caché se llama applicationcache y la dirección URL del extremo es applicationcache.cache.windows.net.

    <autoDiscover isEnabled="true" identifier="applicationcache.cache.windows.net" />
    
  3. Quite las marcas de comentario de la sección securityProperties y reemplace [Authentication Key] por la clave de autenticación.

    <!--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>-->
    
    
    Para buscar la clave de autenticación, haga clic en Claves de acceso en el panel de caché del Portal de administración.

    Administrar claves de acceso para Servicio de almacenamiento en caché de Windows Azure

Después de migrar sus proyectos web de ASP.NET de Caché en rol a Servicio de caché administrado como se explica en Configure the Cache Clients, solo son necesarios algunos cambios mínimos para habilitar el almacenamiento en caché de estados de sesión y resultados de página de ASP.NET. Para habilitar el almacenamiento del estado de la sesión de ASP.NET en la memoria caché, agregue la sección siguiente a system.web en web.config.

<sessionState mode="Custom" customProvider="AppFabricCacheSessionStoreProvider">
  <providers>
    <add name="AppFabricCacheSessionStoreProvider" type="Microsoft.Web.DistributedCache.DistributedCacheSessionStateStoreProvider, Microsoft.Web.DistributedCache" cacheName="default" useBlobMode="true" dataCacheClientName="default" />
  </providers>
</sessionState>
noteNota
Si su rol web de ASP.NET estaba ya configurado para usar el proveedor del estado de sesión para almacenar en memoria caché, esta sección existe ya y no es necesario ningún cambio.

Actualice cacheName para especificar la memoria caché que alberga el estado de sesión. Utilice default para especificar la memoria caché predeterminada.

Para habilitar el almacenamiento en caché de los resultados de la página en la caché, agregue la sección siguiente a system.web.

<caching>
  <outputCache defaultProvider="DistributedCache">
    <providers>
      <add name="DistributedCache" type="Microsoft.Web.DistributedCache.DistributedCacheOutputCacheProvider, Microsoft.Web.DistributedCache" cacheName="default" dataCacheClientName="default" />
    </providers>
  </outputCache>
</caching>
noteNota
Si su rol web de ASP.NET estaba ya configurado para usar el proveedor de caché de salida para almacenar en memoria caché, esta sección existe ya y no es necesario ningún cambio.

Actualice cacheName para especificar la memoria caché que alberga el estado de sesión. Utilice default para especificar la memoria caché predeterminada.

Agregue una directiva OutputCache a cada página cuyos resultados desee almacenar en caché.

<%@ OutputCache Duration="60" VaryByParam="*" %>

En este ejemplo, los datos de la página en caché permanecen en la memoria caché durante 60 segundos y, por cada combinación de parámetros, se almacena en caché una versión diferente de la página. Para obtener más información sobre las opciones disponibles, vea Directiva OutputCache.

Vea también

¿Te ha resultado útil?
(Caracteres restantes: 1500)
Gracias por sus comentarios
Mostrar:
© 2015 Microsoft