Transcript
Page 1: GlassFish, Application versioning et rolling upgrade en haute disponibilité

GlassFish : versioningd'applications et rolling

upgrade

@mullermarian, SERLI

Page 2: GlassFish, Application versioning et rolling upgrade en haute disponibilité

À propos de

Page 3: GlassFish, Application versioning et rolling upgrade en haute disponibilité

Société de conseil etd'ingénierie

65 personnes

www.serli.com @SerliFr

Page 4: GlassFish, Application versioning et rolling upgrade en haute disponibilité

80% de missions Java

Pour de grandessociétés

OSS : 10% de lacapacité de travail(~1200 jours-hommes)

Page 5: GlassFish, Application versioning et rolling upgrade en haute disponibilité
Page 6: GlassFish, Application versioning et rolling upgrade en haute disponibilité
Page 7: GlassFish, Application versioning et rolling upgrade en haute disponibilité

À propos de GlassFish

Page 8: GlassFish, Application versioning et rolling upgrade en haute disponibilité

Implémentation deréférence de Java EE

Modulaire et léger

Clustering supportédepuis GF 3.1

glassfish.java.net

Page 9: GlassFish, Application versioning et rolling upgrade en haute disponibilité

AgendaMise à niveau d'applicationsProblèmes posésVersioning d'applicationsRolling upgrade

Page 10: GlassFish, Application versioning et rolling upgrade en haute disponibilité

Mise à niveaud'applications

Le re-déploiement

Page 11: GlassFish, Application versioning et rolling upgrade en haute disponibilité

“Supprimer puis déployer”

Page 12: GlassFish, Application versioning et rolling upgrade en haute disponibilité
Page 13: GlassFish, Application versioning et rolling upgrade en haute disponibilité
Page 14: GlassFish, Application versioning et rolling upgrade en haute disponibilité
Page 15: GlassFish, Application versioning et rolling upgrade en haute disponibilité

Voici Robert !

Page 16: GlassFish, Application versioning et rolling upgrade en haute disponibilité

Re-déployer une application dansGlassFish

Page 17: GlassFish, Application versioning et rolling upgrade en haute disponibilité

Problèmes posés

Et comment GlassFish les résout...

Page 18: GlassFish, Application versioning et rolling upgrade en haute disponibilité

Perte de la versionprécédemmentdéployée

Quid du rollback ?

Page 19: GlassFish, Application versioning et rolling upgrade en haute disponibilité

Perte de disponibilité

Quid des requêtesentrantes ?

Page 20: GlassFish, Application versioning et rolling upgrade en haute disponibilité
Page 21: GlassFish, Application versioning et rolling upgrade en haute disponibilité

Versioning d'applicationsetRolling upgrade

Page 22: GlassFish, Application versioning et rolling upgrade en haute disponibilité
Page 23: GlassFish, Application versioning et rolling upgrade en haute disponibilité

Versioning d'applications

Gérer l'historique et simplifier le rollback

Page 24: GlassFish, Application versioning et rolling upgrade en haute disponibilité

Historique des versionsdéployées

1 version active à la fois

Nombre de versionsillimité

Page 25: GlassFish, Application versioning et rolling upgrade en haute disponibilité

Mise à niveau

et rollback

simplifiés

Page 26: GlassFish, Application versioning et rolling upgrade en haute disponibilité

Mise à niveau

Page 27: GlassFish, Application versioning et rolling upgrade en haute disponibilité

Mise à niveau

Page 28: GlassFish, Application versioning et rolling upgrade en haute disponibilité

Mise à niveau

Page 29: GlassFish, Application versioning et rolling upgrade en haute disponibilité

Mise à niveau

Page 30: GlassFish, Application versioning et rolling upgrade en haute disponibilité

Rollback

Page 31: GlassFish, Application versioning et rolling upgrade en haute disponibilité

Rollback

Page 32: GlassFish, Application versioning et rolling upgrade en haute disponibilité

Rollback

Page 33: GlassFish, Application versioning et rolling upgrade en haute disponibilité
Page 34: GlassFish, Application versioning et rolling upgrade en haute disponibilité

Le versioning d'applications dansGlassFish

Page 35: GlassFish, Application versioning et rolling upgrade en haute disponibilité

Identifiant de versionlibre (qualifier)

appName:versionId

Page 36: GlassFish, Application versioning et rolling upgrade en haute disponibilité

Pas d'ordre

Version untagged

Wildcard (*) dans lesexpressions

Page 37: GlassFish, Application versioning et rolling upgrade en haute disponibilité

Commandes

Page 38: GlassFish, Application versioning et rolling upgrade en haute disponibilité

Deployer une nouvelle versiondeploy --name appName:versionId [--enabled=(true/false)] app.war

Page 39: GlassFish, Application versioning et rolling upgrade en haute disponibilité

Supprimer une ancienne versionundeploy --name appName:versionId

Page 40: GlassFish, Application versioning et rolling upgrade en haute disponibilité

Supprimer plusieurs versionsundeploy --name appName:alpha*

Page 41: GlassFish, Application versioning et rolling upgrade en haute disponibilité

Activer une versionenable appName:versionId

Page 42: GlassFish, Application versioning et rolling upgrade en haute disponibilité

Désactiver la version activedisable appName:versionId

disable appName:*

Page 43: GlassFish, Application versioning et rolling upgrade en haute disponibilité

Rolling upgrade

Éviter la perte de disponibilité

Page 44: GlassFish, Application versioning et rolling upgrade en haute disponibilité

“Mise à jour en douceurpour éviter la perte dedisponibilité”

Page 45: GlassFish, Application versioning et rolling upgrade en haute disponibilité

Approche #1 : dans uncluster

Page 46: GlassFish, Application versioning et rolling upgrade en haute disponibilité

Vue d'ensemble

Page 47: GlassFish, Application versioning et rolling upgrade en haute disponibilité

Vue d'ensemble

Page 48: GlassFish, Application versioning et rolling upgrade en haute disponibilité

Vue d'ensemble

Page 49: GlassFish, Application versioning et rolling upgrade en haute disponibilité

Vue d'ensemble

Page 50: GlassFish, Application versioning et rolling upgrade en haute disponibilité

Mettre en place uncluster

Configurer au moins 2instances

Processus manuel...

Page 51: GlassFish, Application versioning et rolling upgrade en haute disponibilité
Page 52: GlassFish, Application versioning et rolling upgrade en haute disponibilité
Page 53: GlassFish, Application versioning et rolling upgrade en haute disponibilité
Page 54: GlassFish, Application versioning et rolling upgrade en haute disponibilité

Approche #2 : dans uneinstance stand-alone

(EARLY PREVIEW)

Page 55: GlassFish, Application versioning et rolling upgrade en haute disponibilité
Page 56: GlassFish, Application versioning et rolling upgrade en haute disponibilité
Page 57: GlassFish, Application versioning et rolling upgrade en haute disponibilité
Page 58: GlassFish, Application versioning et rolling upgrade en haute disponibilité
Page 59: GlassFish, Application versioning et rolling upgrade en haute disponibilité
Page 60: GlassFish, Application versioning et rolling upgrade en haute disponibilité

Seulement 1 instance

Processus automatique

Processus configurable

Page 61: GlassFish, Application versioning et rolling upgrade en haute disponibilité
Page 62: GlassFish, Application versioning et rolling upgrade en haute disponibilité

Early preview du rolling upgradedans GlassFish

Page 63: GlassFish, Application versioning et rolling upgrade en haute disponibilité

Options de commandes

Page 64: GlassFish, Application versioning et rolling upgrade en haute disponibilité

Activer le rolling upgrade--rolling-upgrade

Conserver les sessions--keepstate

Page 65: GlassFish, Application versioning et rolling upgrade en haute disponibilité

Attendre un temps mort--when-no-requests

Attendre l'expiration des sessions--when-no-sessions

Page 66: GlassFish, Application versioning et rolling upgrade en haute disponibilité

Mettre fin à l'attente--cancel-after 60

--force-after 300

Page 67: GlassFish, Application versioning et rolling upgrade en haute disponibilité

Et ensuite ?

Évolution du rolling upgrade dans GlassFish

Page 68: GlassFish, Application versioning et rolling upgrade en haute disponibilité

Rolling upgrade basique

OnePager publiégoo.gl/IUc3m

Disponible pourexpérimentation dansquelques mois

Page 69: GlassFish, Application versioning et rolling upgrade en haute disponibilité

Rolling upgrade avancé

Deux versions en parallèle

Limitations nécessaires

Disponible avec GlassFish 4.0 (?)

Page 70: GlassFish, Application versioning et rolling upgrade en haute disponibilité

Questions ?