Voici l’essentiel de l’épisode 115 du Cloud Cover Show que je vous encourage à regarder.

Haisi Bai, Nick Haris et Chris Risner présentent les dernières news et surtout le nouveau service de cache distribué de Windows Azure.

Les news qui ont été présentées correspondent aux hyperliens disponibles sur la page de l’épisode:

Revenons au cache distribué. Il y a aujourd’hui trois offres:

  • cache service (preview) dont il va être plus question ici
  • In-Role Cache
  • Shared Caching, qui va être supprimé (août 2014 au plus tard)

 

Le tableau suivant montre les différentes caractéristiques comparées de ces services. Haishi Bai explique le tableau.
image

Le nouveau service (cache service) reprend les meilleures fonctionnalités des deux autres (In-Role Cache et Shared Caching). Il est utilisable depuis différents services de Windows Azure (Web Sites, Cloud Services, machines virtuelles), il permet d’avoir de très bonnes performances puisqu’il est dédié et qu’il n’y a donc pas d’autres quotas que les limites des machines sur lesquelles le service fonctionne.

Ce service est disponible en différentes options:
image

On notera que la haute disponibilité est possible uniquement en Premium, où on gère plus de données; cela a pour effet de mettre la donnée à deux endroits dans le même datacenter.

Le prix indiqué ci-dessus est temporaire (c’est un prix de preview, incluant 50 % de discount). Merci de vous référer à la page http://www.windowsazure.com/en-us/pricing/details/cache/ pour les prix officiels et à jour. On notera cependant que le nouveau service de cache, même sans la réduction de 50% liée à la version préliminaire est à peu près deux fois moins cher que son prédécesseur et bien plus riche en fonctionnalités.

Les démos démarrent à la minute 22. Elles comprennent plusieurs parties:

  • création d’un service de cache depuis le portail.
    En preview, cela prend un certain temps pour créer un cluster.
    L’option “Cache Memory”, dernier choix lors de la création du cluster correspond à l’unité de montée en charge dans le niveau choisi. Par exemple en Basic, l’unité est de 128 Mo et on peut en prendre plusieurs.
    image
    La taille du cluster est configurable après la création, dans l’onglet “scale”. Cela est vrai pour le type de cache (Basic, Standard, Premium) et pour les unités.
  • Configuration des services de cache, récupération du endpoint et de sa clef
  • Utilisation depuis un projet Visual Studio pour une application ASP.NET MVC.
    Depuis une application ASP.NET MVC, il faut chercher dans le Nuget Packet  manager “caching”, ce qui permet de trouver les librairies clientes “Windows Azure Caching”. La version courante est 2.1.0.0. L’installation du package ajoute des références au projet et modifie le fichier Web.config. Dans la section ajoutée, il faut renseigner la bonne adresse de point de terminaison et la clef (élément authorizationInfo). Au delà du cache d’objets, il est aussi possible d’utiliser le cache pour la gestion des sessions, ou pour l’output cache. pour le cache d’objets, voici un exemple de code:
DataCache cache = new DataCache();
var timestamp = cache.Get("LaunchTime");
if (timestamp == null)
{
    timestamp = DateTime.Now;
    cache.Put("LaunchTime", timestamp);
}
ViewBag.Message = timestamp;

Cela va afficher l’heure à laquelle la page a été lancée pour la première fois. Par rapport au code que l’on pourrait avoir dans l’ancien service Shared Caching, c’est le même, mais il faut prendre la dernière version du package NuGet.

  • Notifications: Utilisation depuis un Web Role et un Worker Role pour communiquer via le cache qui est accessible en lecture écriture depuis les deux rôles (et toutes leurs instances).
    C’est un scénario, où on peut perdre des données si le cache n’est pas en Premium et configuré en haute dispo, mais dans certains scénarios, cela peut être acceptable.
    Comme le cache est dans un service à part, les notifications correspondent en fait à du polling sur ce service depuis le worker role (dans cet exemple) qui se fait par défaut toutes les 5 minutes. Cette valeur peut être descendue, dans l’exemple à 5 secondes, pour de meilleurs temps de réponses. Voici l’exemple de code:
    image
  • De façon à choisir le type de cache dont on a besoin, il existe un outil de capacity planning qui est disponible depuis la page d’accueil (image) d’un cache service: “Use our Capacity Planning sheet” qui fournit une feuille de calcul Excel. On peut y changer les paramètres tels que les tailles d’objets ou les fonctionnalités voulues de façon à se faire recommender un type et une taille de cluster.
  • Support du protocole Memcache. Le service de cache de Windows Azure fonctionne avec son propre protocole propriétaire. Pour traduire ce protocole en protocole Memcache, deux options sont offertes: côté client (Windows Azure Memcache Client Shim qui peut s’obtenir via un package NuGet) ou côté serveurs (server gateway, non encore disponible fin septembre 2013). Dans le cadre de cette démonstration, un worker role héberge Tomcat avec un serveur de servlets qui va stocker ses sessions via un fournisseur de sessions qui va parler au Windows Azure Memcache client shim qui expose un endpoint accessible depuis la machine locale !
    image
    Tout cela est expliqué en détail sur le blog d’Haishi Bai à http://haishibai.blogspot.fr/2013/09/use-tomcat-with-windows-azure-caching.html.
    Au niveau du code déployé dans le serveur Tomcat, il n’y a rien de spécifique au monde Microsoft. Le code, les librairies référencées et la configuration sont les mêmes que lors d’un accès à des serveurs memcached.

Haishi Bai a pu migrer sa démo Twitter Reader pour qu’elle utilise le service de cache distribué en 5 ou 6 minutes.

Haishi Bai est l’auteur d’une série Channel 9 sur des patterns et meilleures pratiques. Cette série est disponible à Windows Azure Cloud Patterns Series. Si vous souhaitez partager des patterns, vous pouvez contacter Haishi Bai pour lui soumettre votre sujet.

 

Vous trouverez ci-après quelques images de l’épisode.

 

Smile

Benjamin (@benjguin)

 

image

début de l’épisode avec les 3 technical evangelists qui le présentent

 

image

image

 

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image