Migration de In-Role Cache vers un service de cache géré Azure
Important
Microsoft recommande tous les nouveaux développements à l’aide du Cache Redis Azure. Pour obtenir de la documentation et des conseils actuels sur le choix d’une offre Azure Cache, consultez Quelle offre Azure Cache est adaptée à moi ?
La migration de vos applications de cache Microsoft Azure qui utilisent In-Role cache vers Azure Service de cache géré peut être effectuée avec des modifications minimales apportées à votre application. Étant donné que Service de cache géré utilise la même API que In-Role Cache, le code existant qui utilise In-Role Cache pour accéder à un cache peut être réutilisé avec Service de cache géré. Cette rubrique montre comment apporter les modifications nécessaires à la configuration et à l’application pour migrer vos applications de cache In-Role pour utiliser Service de cache géré.
Étapes de la migration
Les sections suivantes décrivent les étapes requises pour migrer une application cache In-Role pour utiliser Service de cache géré.
Sélection d’une offre de cache
Création d’un cache
Configuration du cache
Désactivation du cluster In-Role Cache
Configuration des clients de cache
Désinstallation du package NuGet d'In-Role Cache
Configuration d'un client de cache à l'aide du package NuGet de mise en cache
Migration de la session ASP.NET et de la mise en cache de la sortie des pages
Sélection d’une offre de cache
Service de cache géré est disponible dans les trois offres suivantes.
Basic - Tailles de cache comprises entre 128 Mo et 1 Go par incréments de 128 Mo, avec un seul cache nommé par défaut
Standard - Cache disponible dans des tailles allant de 1 Go à 10 Go, par incréments de 1 Go, avec prise en charge des notifications, de la haute disponibilité et de jusqu'à dix caches nommés.
Premium - Tailles de cache comprises entre 5 Go et 150 Go par incréments de 5 Go, avec prise en charge des notifications, de la haute disponibilité et de dix caches nommés (maximum)
Notes
Chaque offre est distincte en termes de tarification et de fonctionnalités. Pour plus d’informations, consultez FAQ sur la tarification du service de cache et les offres de cache pour Azure Service de cache géré. Des détails supplémentaires sont également fournis dans la section Configurer le cache suivant dans ce guide de migration.
Toutes les fonctionnalités de cache de In-Role Cache sont disponibles dans les différentes offres de cache pour Service de cache géré. Si votre application utilise des notifications, vous devez choisir l'offre de cache Standard ou De base. Si votre cache offre une haute disponibilité, vous devez choisir l'offre de cache Premium. Un point de départ pour la migration consiste à choisir l’offre de cache Service de cache géré qui a les fonctionnalités de cache dont votre application a besoin et correspond aux besoins de capacité de votre application cache In-Role.
Après avoir déployé l’application, vous pouvez surveiller les performances de votre cache et effectuer un scale-up ou un scale-up en fonction des exigences de votre application. Pour plus d’informations sur la surveillance des performances et la mise à l’échelle, consultez Surveiller Azure Service de cache géré et mettre à l’échelle un cache pour Azure Service de cache géré.
Création d’un cache
Les instances de cache dans Service de cache géré sont créées à l’aide de scripts PowerShell.
Important
Une fois qu’une instance de Service de cache géré est créée à l’aide des applets de commande PowerShell, elle peut être vue et configurée dans le portail de gestion Azure.
Pour créer une instance Service de cache géré
Ouvrez une fenêtre de commande Azure PowerShell.
Notes
Pour plus d’informations sur l’installation et l’utilisation d’Azure PowerShell, consultez Installation et configuration d’Azure PowerShell.
Appelez l'applet de commande
Add-AzureAccount
, puis entrez l'adresse de messagerie et le mot de passe associés à votre compte.Notes
Si vous avez configuré Azure PowerShell avec un certificat pour votre compte, vous pouvez sauter cette étape. Pour plus d’informations sur la connexion d’Azure PowerShell à votre compte Azure, consultez Installation et configuration d’Azure PowerShell.
Appelez l'applet de commande
New-AzureManagedCache
, puis spécifiez le nom, la région, l'offre de cache et la taille du cache. Dans l'exemple suivant, un cache De base de 128 Mo est créé avec le nomcontosocache
dans la région géographiqueSouth Central US
.New-AzureManagedCache -Name contosocache -Location "South Central US" -Sku Basic -Memory 128MB
Notes
Pour obtenir la liste complète des paramètres et des valeurs qui peuvent être utilisés durant la création d'un cache, consultez la documentation de l'applet de commande New-AzureManagedCache .
Une fois l'applet de commande PowerShell appelée, la création du cache peut prendre plusieurs minutes. Une fois le cache créé, votre nouveau cache a un état d’exécution et est prêt à être utilisé avec les paramètres par défaut, et peut être consulté et configuré dans le portail de gestion Azure.
Vous pouvez surveiller l'avancement de la création dans la fenêtre Azure PowerShell. Un fois le cache prêt à l'emploi, l'applet de commande
New-AzureManagedCache
permet d'afficher les informations sur le cache, comme l'illustre l'exemple suivant.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:\>
Configuration du cache
Les deux In-Role cache et Service de cache géré prennent en charge les caches nommés, ce qui vous offre la possibilité de configurer différentes options de cache pour différents jeux de données. Chaque cache Service de cache géré a un cache nommé par défaut, et dans les offres de cache Standard et Premium, jusqu’à neuf caches nommés supplémentaires peuvent être configurés. Chaque cache nommé possède ses propres paramètres, tels que la haute disponibilité, les notifications, ainsi que des stratégies d'expiration et d'éviction personnalisées. Les paramètres de cache nommé sont configurés dans le portail de gestion sous l'onglet Configurer de Cache.
Bien que In-Role Cache et Service de cache géré disposent des mêmes fonctionnalités de cache, il existe de légères différences qui sont répertoriées dans le tableau suivant.
Fonctionnalité | Prise en charge de Service de cache géré | Prise en charge du cache In-Role |
---|---|---|
Nom |
Un cache default est configuré, et, dans les offres de cache Standard et Premium, jusqu'à neuf caches nommés supplémentaires peuvent être configurés si besoin. |
Un cache default est configuré et des caches nommés supplémentaires peuvent être configurés. |
Haute disponibilité |
La haute disponibilité est disponible dans les offres de cache Standard et Premium et n’est pas disponible dans l’offre de cache de base. Pour plus d’informations, consultez Offres de cache pour Azure Service de cache géré. |
La haute disponibilité peut être activée pour toutes les topologies de cache In-Role. |
Notifications |
Les notifications sont disponibles dans les offres de cache Standard et Premium, mais pas dans l'offre Basic. Pour plus d’informations, consultez Offres de cache pour Azure Service de cache géré. |
Les notifications peuvent être activées pour toutes les topologies de cache In-Role. |
Stratégie d’éviction |
Les options possibles sont Activé, qui utilise un algorithme LRU (dernier récemment utilisé) pour déterminer les éléments à évincer, ou Désactivé. La valeur par défaut est Activé. |
Les options possibles sont LRU (dernier récemment utilisé) et Aucune. La valeur par défaut est LRU. |
Durée (min) |
Dans Service de cache géré, le paramètre est nommé Heure (min). |
Dans In-Role Cache, le paramètre est nommé Time to live (min). |
Stratégie d’expiration |
Ce paramètre est nommé Stratégie d’expiration et a trois valeurs possibles : Jamais, Absolu et Glissant qui correspondent aux paramètres de stratégie d’expiration à partir de In-Role Cache. |
Ce paramètre est nommé Stratégie d’expiration et a trois valeurs possibles : None, Absolute et Sliding Window. |
Pour migrer du cache In-Role vers Service de cache géré, recréez tous les caches nommés à partir de votre cluster de cache In-Role cache dans votre nouveau cache Service de cache géré cache.
Désactivation du cluster In-Role Cache
Après avoir configuré le nouveau cache Service de cache géré, l’étape suivante consiste à supprimer la mise en cache du rôle hébergé In-Role Cache. Ces étapes sont différentes selon la topologie de cluster de cache pour le cache In-Role Cache.
Cluster de cache à rôle dédié
Cluster de cache de rôle colocalisé
Cluster de cache à rôle dédié
Pour supprimer un cluster de cache de rôles dédié, vous devez supprimer le projet de rôle worker de cache de la solution Visual Studio et du dossier Rôles dans le projet de services cloud.
Cliquez avec le bouton droit sur le rôle de travail de cache dans le dossier Rôles du projet de service cloud dans l'Explorateur de solutions, puis sélectionnez Supprimer.
Cliquez avec le bouton droit sur le projet de rôle de travail dans l'Explorateur de solutions, puis sélectionnez Supprimer.
Cluster de cache de rôle colocalisé
Pour désactiver une mise en cache de rôle colocalisé dans un rôle web ou de travail, vous devez désactiver le paramètre Mise en cache sous l'onglet Mise en cache dans les propriétés du rôle.
Cliquez avec le bouton droit sur le rôle dans le projet de service cloud dans l'Explorateur de solutions, puis sélectionnez Propriétés.
Basculez vers l'onglet Mise en cache, désactivez la case à cocher Activer la mise en cache, puis appuyez sur CTRL+S pour enregistrer.
Configuration des clients de cache
Une fois le cache créé et configuré, l’étape suivante consiste à ajouter la configuration et les références nécessaires pour permettre aux clients de cache d’accéder au cache. Service de cache géré prend en charge les clients suivants.
Sites web Windows Azure
Rôle web et rôle de travail Azure Cloud Services
Machines virtuelles Azure
Notes
Si le projet de cache In-Role utilise déjà le dernier Kit de développement logiciel (SDK) Azure, il vous suffit de mettre à jour la configuration du client de cache en ignorant les étapes ci-dessous et en suivant la procédure décrite dans Update the Cache Client Configuration to use Cache Service.
Si le projet de cache In-Role utilise le Kit de développement logiciel (SDK) Azure 1.8 - 2.0, vous devez supprimer le package de mise en cache NuGet, supprimer toute configuration de client de cache restante, puis installer la dernière version du Kit de développement logiciel (SDK) Azure (actuellement 2.1). Après avoir mis à niveau le Kit de développement logiciel (SDK), installez et configurez le dernier package NuGet de mise en cache. Pour configurer les clients de cache, procédez comme suit pour chacun d'eux.
Désinstallation du package NuGet d'In-Role Cache
Configuration d'un client de cache à l'aide du package NuGet de mise en cache
Désinstallation du package NuGet d'In-Role Cache
Avant que les applications clientes puissent être configurées pour Service de cache géré, la configuration du cache et les références d’assembly In-Role existantes doivent être supprimées. Pour ce faire, vous pouvez désinstaller le package NuGet de mise en cache.
Pour désinstaller le package NuGet cache In-Role, cliquez avec le bouton droit sur le projet client dans Explorateur de solutions, puis choisissez Gérer les packages NuGet. Sélectionnez le nœud Packages installés, puis tapez Mise en cache dans la zone Rechercher dans les packages installés. Sélectionnez Windows mise en cache Azure, cliquez sur Désinstaller, puis sur Fermer.
Notes
Dans la capture d'écran suivante, la version du package NuGet est 2.1.0.0. Si vous disposez de cette version ou d'une version ultérieure, vous pouvez ignorer cette étape. Vous devez effectuer cette étape uniquement si la version du package NuGet est 1.8 ou2.0..
La désinstallation du package NuGet cache In-Role supprime les assemblys du cache In-Role et les entrées du cache In-Role dans l’application app.config
cliente ou web.config
dans celle-ci. Comme certains paramètres personnalisés ne peuvent pas être supprimés lors de la désinstallation du package NuGet, ouvrez le fichier web.config
ou app.config
, et vérifiez que les éléments suivants sont entièrement supprimés.
Assurez-vous que l’entrée
dataCacheClients
est supprimée de l’élémentconfigSections
. Ne supprimez pas l’intégralité de l’élémentconfigSections
; supprimez simplement l’entréedataCacheClients
, le cas échéant.<configSections> <!-- Existing sections omitted for clarity. --> <section name="dataCacheClients" type="Microsoft.ApplicationServer.Caching.DataCacheClientsSection, Microsoft.ApplicationServer.Caching.Core" allowLocation="true" allowDefinition="Everywhere" /> </configSections>
Vérifiez que la section
dataCacheClients
est supprimée. La sectiondataCacheClients
doit avoir un aspect proche de l’exemple ci-dessous.<dataCacheClients> <dataCacheClient name="default" channelOpenTimeout="0"> <autoDiscover isEnabled="true" identifier="CacheWorker" /> </dataCacheClient> </dataCacheClients>
Une fois la configuration du cache In-Role supprimée, vous pouvez configurer le client de cache comme décrit dans la section Configurer un client de cache à l’aide de la section Mise en cache NuGet Package.
Configuration d'un client de cache à l'aide du package NuGet de mise en cache
Service de cache géré fournit un package NuGet pour ajouter les références de configuration et d’assembly nécessaires pour permettre aux clients de cache d’accéder à un cache.
Important
Avant de configurer le client de cache à l’aide du package Service de cache géré NuGet, vérifiez que la configuration du cache In-Role est complètement supprimée du web.config
rôle client ou app.config
du rôle client, comme décrit dans la section précédente.
Important
Ces étapes requièrent le dernier gestionnaire de package NuGet (version 2.2.* ou ultérieure). Pour installer la dernière NuGet Gestionnaire de package, consultez NuGet Gestionnaire de package.
Pour utiliser le package Service de cache géré NuGet, cliquez avec le bouton droit sur le projet client dans Explorateur de solutions, puis choisissez Gérer les packages NuGet.
Sélectionnez Mise en cache Azure, cliquez sur Installer, puis sur J’accepte. Une fois le package installé pour le projet de client, cliquez sur Fermer pour fermer la fenêtre Gérer les packages NuGet.
Notes
Si la mise en cache Azure n’apparaît pas dans la liste, tapez WindowsAzure.Caching dans la zone de texte Rechercher en ligne .
Lorsque le package Service de cache géré NuGet est installé sur un projet client, il ajoute les références de configuration et d’assembly requises afin que l’application cliente puisse accéder au cache.
Dans les fichiers web.config
ou app.config
du projet, plusieurs éléments sont ajoutés.
Deux sections sont ajoutées à
configSections
(dataCacheClients
et à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>
Une section
dataCacheClients
est ajoutée à la sectionconfiguration
.<!-- 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>
Remplacez [Nom du rôle de cache ou point de terminaison de service] par l’URL du point de terminaison qui s’affiche dans le tableau de bord du cache dans le portail de gestion.
Dans cet exemple, le cache est nommé applicationcache, et l'URL de point de terminaison est applicationcache.cache.windows.net.<autoDiscover isEnabled="true" identifier="applicationcache.cache.windows.net" />
Supprimez les marques de commentaire de la section securityProperties et remplacez [Clé d’authentification] par la clé d’authentification primaire.
<!--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>-->
Vous pouvez accéder à la clé d'authentification dans le portail de gestion en cliquant sur Gérer les clés dans le tableau de bord du cache. Pour plus d’informations sur les clés d’accès et la sécurisation des communications de cache avec l’attribut
sslEnabled
, consultez Le modèle de sécurité pour Azure Service de cache géré.Avertissement
Ces paramètres doivent être configurés correctement, sinon les clients ne pourront pas accéder au cache.
Pour les projets de service cloud, le package Service de cache géré NuGet ajoute également un paramètre ClientDiagnosticLevel au ConfigurationSettings
rôle client de cache dans ServiceConfiguration.cscfg
. L’exemple suivant est la WebRole1
section d’un ServiceConfiguration.cscfg
fichier avec un ClientDiagnosticLevel de 1, qui est le clientDiagnosticLevel par défaut.
<Role name="WebRole1">
<Instances count="1" />
<ConfigurationSettings>
<!-- Other settings omitted for space... -->
<Setting name="Microsoft.WindowsAzure.Plugins.Caching.ClientDiagnosticLevel" value="1" />
</ConfigurationSettings>
</Role>
Notes
Pour plus d’informations sur les niveaux de diagnostic du cache, consultez À propos de ClientDiagnosticLevel pour Azure Service de cache géré.
Outre l’ajout de la configuration requise, le package Service de cache géré NuGet ajoute également les références d’assembly suivantes.
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 le projet est un projet web, la référence d'assembly suivante est également ajoutée.
- Microsoft.Web.DistributedCache.dll
Notes
Service de cache géré et In-Role Cache partagent la même API, et bien que les noms d’assembly soient identiques, les assemblys eux-mêmes sont différents et se trouvent à différents emplacements. Le package Service de cache géré NuGet supprime les références d’assembly In-Role Cache et ajoute les références d’assembly Service de cache géré correctes. Les assemblys Service de cache géré se trouvent dans le C:\Program Files\Microsoft SDKs\Windows Azure\.NET SDK\v2.1\ref\Caching
dossier.
Mise à jour de la configuration du client de cache pour utiliser Cache Service
Si le projet de cache In-Role utilise déjà le dernier Kit de développement logiciel (SDK) Azure, il vous suffit de mettre à jour la configuration du client de cache pour pointer vers le nouveau cache Service de cache géré.
Ouvrez le fichier web.config ou app.config du projet de client de cache, puis recherchez la section
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>
Dans la
autoDiscover
section, remplacez le nom du rôle du cluster cache In-Role par le nom de l’URL du point de terminaison pour le cache Service de cache géré dans l’attributidentifier
. L'URL de point de terminaison s'affiche sur le tableau de bord du cache dans le portail de gestion.
Dans cet exemple, le cache est nommé applicationcache, et l'URL de point de terminaison est applicationcache.cache.windows.net.<autoDiscover isEnabled="true" identifier="applicationcache.cache.windows.net" />
Supprimez les marques de commentaire de la section securityProperties et remplacez [Clé d’authentification] par la clé d’authentification.
<!--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>-->
Vous pouvez accéder à la clé d'authentification dans le portail de gestion en cliquant sur Accéder aux clés dans le tableau de bord du cache.
Migration de la session ASP.NET et de la mise en cache de la sortie des pages
Une fois que vos projets web ASP.NET sont migrés de In-Role Cache vers Service de cache géré comme décrit dans Configurer les clients de cache, seules les modifications minimales sont nécessaires pour permettre le stockage d’ASP.NET état de session ou de mise en cache de sortie de page dans le cache. system.web
web.config
état de session ASP.NET dans le cache, ajoutez la section suivante à dans le fichier.
<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>
Notes
Si votre ASP.NET rôle web a déjà été configuré pour utiliser le fournisseur d’état de session pour la mise en cache, cette section est déjà présente et aucune modification n’est requise.
Mettez à jour cacheName
pour spécifier le cache contenant l'état de session. Utilisez la valeur default
pour spécifier le cache par défaut.
Pour activer le stockage de la mise en cache de la sortie des pages dans le cache, ajoutez la section suivante à 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>
Notes
Si votre rôle web ASP.NET a déjà été configuré pour utiliser le fournisseur de cache de sortie pour la mise en cache, cette section est déjà présente et aucune modification n’est requise.
Mettez à jour cacheName
pour spécifier le cache contenant l'état de session. Utilisez la valeur default
pour spécifier le cache par défaut.
Ajoutez une directive OutputCache
à chaque page pour laquelle vous souhaitez mettre en cache la sortie.
<%@ OutputCache Duration="60" VaryByParam="*" %>
Dans cet exemple, les données de page mises en cache restent dans le cache pendant 60 secondes, et une version différente de la page est mise en cache pour chaque combinaison de paramètres. Pour plus d’informations sur les options disponibles, consultez la directive OutputCache.
Voir aussi
Concepts
Offres de cache pour service de cache géré Azure
Planification de la capacité pour le service de cache géré Azure
Fournisseur d'état de session pour service de cache géré Azure
Fournisseur de cache de sortie de page pour service de cache géré Azure