Upload
lyonjug
View
661
Download
0
Tags:
Embed Size (px)
DESCRIPTION
LyonJUG du mardi 21 février 2012 (2° partie)http://www.lyonjug.org/evenements/ssii--open-sourceUne fois qu'une application est en production, réaliser une montée de version sans perte de service est délicat et peut rapidement vous donner la migraine. Il faut en général le faire manuellement en montant un cluster, en répliquant l'application et ses sessions, et en jonglant avec le répartiteur de charge et les instances de serveur à chaque montée en version.La fonctionnalité de versioning présente dans GlassFish, combinée avec le rolling upgrade (en early preview) permet de réaliser cette montée en version sans perte de service sur une instance stand-alone de GlassFish.Dans cette session, Marian présente ces fonctionnalités et comment les utiliser pour réaliser une montée en version d'application en production sans perte de service, en utilisant exclusivement les services offerts par GlassFish.
Citation preview
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 ?