Revue de Presse Xebia

Revue de Presse Xebia
La revue de presse de l’actualité Java/JEE hebdomadaire proposée par Xebia.

Actualité éditeurs / SSII

Le coin de la technique

Actualité éditeurs / SSII

Google App Engine 1.5.3

Bien que sa sortie fut un peu chaotique (Un problème empêchait le déploiement via le plugin Google d’Eclipse), Google a annoncé le 17 août, la version 1.5.3 de son SDK App Engine, mettant cette fois-ci l’accent sur les fonctionnalités autour de l’administration des données. En plus des corrections d’anomalies, voici une liste non exhaustive des nouvelles fonctionnalités :

Blobstore :

Désormais, l’espace dédié à la sauvegarde de fichiers volumineux n’est plus limité à 2 Go par fichier. On regrette néanmoins que la sauvegarde via l’API Java soit toujours instable et comporte indirectement des limites.

Datastore :

Le statut d’un index peut maintenant être lu via une API Java au lieu d’utiliser la console d’administration. Bien que la création d’un index puisse être longue, l’utilité de cette fonctionnalité reste à prouver puisqu’il suffit de mettre à jour les index et d’attendre leurs constructions avant de déployer une version qui va les exploiter.

Vient ensuite une console dédiée au Datastore permettant d’administrer les entités. Déjà disponible dans la version Python, on peut désormais s’affranchir de déployer une application Python temporaire avant de pouvoir l’utiliser. Elle permet d’effectuer les opérations suivantes :

  • Suppression totale d’un type d’entité.
  • Copie d’entités vers une autre application App Engine : fonctionnalité particulièrement intéressante si on souhaite migrer un environnement de production. Toutefois, l’environnement source devra être en lecture seule le temps de la migration afin de garantir la copie complète.

Ces opérations utilisent le système de tâches et reposent sur le Map/Reduce. Par conséquent, elles consomment différents quotas et plus particulièrement celui relatif au CPU.

Enfin, un nouvel outil de migration est ouvert aux testeurs afin de passer une application existante utilisant le plan de stockage MS (Master / Slave) vers le HR (High Replication).

MemCache :

L’API MemCache supporte désormais le CAS (Compare and Swap) déjà présent dans l’API Java.

Le coin de la technique

Bonnes pratiques pour la réplication de session dans Coherence

Voici un article très pragmatique de Ankur Kumar sur la configuration de Coherence*Web en particulier et de Coherence en général. Coherence est une solution de in memory data grid d’Oracle, qui permet de mettre des structures de données dans un cache distribué ou répliqué. Coherence*Web est un module construit au-dessus qui se focalise sur la mise en cache des sessions web. La configuration contient un certain nombre de chausse-trappes où il est facile de tomber, surtout au moment de passer la main aux équipes d’exploitations.

L’article commence par rappeler les différents types de déploiement (in-process, out-process et out-process avec Coherence*Extend) et les différentes topologies:

  • locale
  • répliquée: la donnée est répliquée sur chaque instance
  • distribuée/partitionnée: la donnée est partagée sur chaque instance
  • near cache: la donnée est globalement distribuée et partiellement colocalisée pour les données de référence par exemple

Voici quelques exemples de configurations importantes:

  • dans le cas du out-process (le serveur d’application ne contient pas la donnée mais se connecte à un cache externe), ne pas oublier de spécifier les paramètres -Dtangosol.coherence.session.localstorage=false pour les caches de session et -Dtangosol.coherence.distributed.localstorage=false pour les autres caches.
  • pour s’assurer qu’une instance ne se connecte pas à d’autres instances (sur un poste de développement par exemple), on peut préciser un _time-to_live_ à 0: -Dtangosol.coherence.ttl=0
  • à noter également qu’il existe plusieurs modes (prod ou dev) qui selon les cas iront chercher tel ou tel fichier de configuration par défaut. Pour figer le mode : -Dtangosol.coherence.mode=PROD ou -Dtangosol.coherence.mode=DEV.

Bref, avant toute mise en intégration ou en production il est important de se faire une checklist pour ne rien oublier.

Billets sur le même thème :

Laisser un commentaire