GlassFish : versioningd'applications et rolling
upgrade
@mullermarian, SERLI
À propos de
Société de conseil etd'ingénierie
65 personnes
www.serli.com @SerliFr
80% de missions Java
Pour de grandessociétés
OSS : 10% de lacapacité de travail(~1200 jours-hommes)
À propos de GlassFish
Implémentation deréférence de Java EE
Modulaire et léger
Clustering supportédepuis GF 3.1
glassfish.java.net
AgendaMise à niveau d'applicationsProblèmes posésVersioning d'applicationsRolling upgrade
Mise à niveaud'applications
Le re-déploiement
“Supprimer puis déployer”
Voici Robert !
Re-déployer une application dansGlassFish
Problèmes posés
Et comment GlassFish les résout...
Perte de la versionprécédemmentdéployée
Quid du rollback ?
Perte de disponibilité
Quid des requêtesentrantes ?
Versioning d'applicationsetRolling upgrade
Versioning d'applications
Gérer l'historique et simplifier le rollback
Historique des versionsdéployées
1 version active à la fois
Nombre de versionsillimité
Mise à niveau
et rollback
simplifiés
Mise à niveau
Mise à niveau
Mise à niveau
Mise à niveau
Rollback
Rollback
Rollback
Le versioning d'applications dansGlassFish
Identifiant de versionlibre (qualifier)
appName:versionId
Pas d'ordre
Version untagged
Wildcard (*) dans lesexpressions
Commandes
Deployer une nouvelle versiondeploy --name appName:versionId [--enabled=(true/false)] app.war
Supprimer une ancienne versionundeploy --name appName:versionId
Supprimer plusieurs versionsundeploy --name appName:alpha*
Activer une versionenable appName:versionId
Désactiver la version activedisable appName:versionId
disable appName:*
Rolling upgrade
Éviter la perte de disponibilité
“Mise à jour en douceurpour éviter la perte dedisponibilité”
Approche #1 : dans uncluster
Vue d'ensemble
Vue d'ensemble
Vue d'ensemble
Vue d'ensemble
Mettre en place uncluster
Configurer au moins 2instances
Processus manuel...
Approche #2 : dans uneinstance stand-alone
(EARLY PREVIEW)
Seulement 1 instance
Processus automatique
Processus configurable
Early preview du rolling upgradedans GlassFish
Options de commandes
Activer le rolling upgrade--rolling-upgrade
Conserver les sessions--keepstate
Attendre un temps mort--when-no-requests
Attendre l'expiration des sessions--when-no-sessions
Mettre fin à l'attente--cancel-after 60
--force-after 300
Et ensuite ?
Évolution du rolling upgrade dans GlassFish
Rolling upgrade basique
OnePager publiégoo.gl/IUc3m
Disponible pourexpérimentation dansquelques mois
Rolling upgrade avancé
Deux versions en parallèle
Limitations nécessaires
Disponible avec GlassFish 4.0 (?)
Questions ?