DevOps illustré :La jungle de la configuration      d’une application       par Dimitri Baeli et Gilles Duguglielmo       ...
Speakers             @dbaeli                             @gdigugli• Chien de berger Agile pour       • Dévelopeur java dep...
La jungle DevOps La configuration à chaud d’une application est complexe et difficile à maîtriser La configuration stati...
Des imbroglios DevOps: le changement d’un paramètre      L’url du webservice de     paiement change la nuit  prochaine. Co...
Des imbroglios DevOps:   le changement d’un paramètre     Tu mets à jour le  paramètrage dans le             La valeur est...
Des imbroglios DevOps:                    le changement d’un paramètre                                Je n’ai pas accès à ...
Des imbroglios DevOps:la gouvernance de la configuration     Quels sont les paramètres de   l’application et leurs valeurs...
Des imbroglios DevOps:la gouvernance de la configuration   Je vais demander à l’équipe de  dévelopement et vous transmettr...
Qu’est-ce qu’on peut faire ? Expliciter la configuration dans le code Rendre les variables de configuration aussi simple...
Action !           10
Les couches de configuration               OS                 export   webservice_url=http://www.conf4j.org              S...
La gouvernance des paramètres                    Utiliser des champs                     dans une classe                 ...
Scope d’un paramètre                                           scope déclare l’utilisation de                             ...
Accès à l’environnement                Semblable à                 System.getProperty()                                  ...
Démo       15
Ceci n’est pas une librairie       Just Fork it !     https://github.com/dbaeli/conf4j                                    ...
Prochain SlideShare
Chargement dans…5
×

DevOps illustré : la jungle de la configuration d'une application

1 299 vues

Publié le

L'approche DevOps essaie de rapprocher les développeurs et les administrateurs système, ce Quickie illustre le cas de la configuration des applications en présentant le besoin d'amélioration de la gestion des paramètres de configuration d'une application, avec une solution possible.
Notre codes contient beaucoup de paramètres : des options, des URL, des Emails, ... ces valeurs changent fréquemment entre l'environnement de production, de recette, le poste de développeur. Gérés manuellement ils causent beaucoup de bugs évitables.

Quels sont les principes d'une bonne gouvernance des paramètres ?
Comment éviter un bricolage manuel et voué à générer des erreurs d'utilisation ?
Comment avoir une documentation du paramétrage de votre application toujours à jour ?
Comment connaitre l'origine de la valeur utilisée (paramètre JVM, variable d'environnement, valeur par défaut) ?
Le but est une prise de conscience sur le sujet, et la présentation d'une mise en oeuvre simple.

Publié dans : Technologie
0 commentaire
2 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
1 299
Sur SlideShare
0
Issues des intégrations
0
Intégrations
15
Actions
Partages
0
Téléchargements
17
Commentaires
0
J’aime
2
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

DevOps illustré : la jungle de la configuration d'une application

  1. 1. DevOps illustré :La jungle de la configuration d’une application par Dimitri Baeli et Gilles Duguglielmo @dbaeli & @gdigugli 1
  2. 2. Speakers @dbaeli @gdigugli• Chien de berger Agile pour • Dévelopeur java depuis 1999 • Architecte pour • ILOG - IBM• VP Quality eXo Platform  librairie graphique 2D• R&D Prima-Solutions  moteur de règles • Prima-Solutions  plate-forme de services pour J2EE  code génération de modèle métier 2
  3. 3. La jungle DevOps La configuration à chaud d’une application est complexe et difficile à maîtriser La configuration statique est très commune dans les systèmes d’exploitation La gouvernance de la configuration des applications est assez mal maîtrisée XML est un langage très pénible pour configurer une application depuis une console 3
  4. 4. Des imbroglios DevOps: le changement d’un paramètre L’url du webservice de paiement change la nuit prochaine. Comment je change ça sur l’application en production ? Est-ce qu’on peut changer ça dans le script de lancement ? 4
  5. 5. Des imbroglios DevOps: le changement d’un paramètre Tu mets à jour le paramètrage dans le La valeur est dans la fichier web.xml à tablel’intérieur du WAR et tu CONFIG_SETTINGS,redémarre l’application édite la valeur de la clé ws_urlOn doit faire un build de l’application avec la nouvelle URL 5
  6. 6. Des imbroglios DevOps: le changement d’un paramètre Je n’ai pas accès à la Est-ce qu’il y a un base de donnée, il faut outil pour faire ca ? appeler le DBAEst-ce qu’on peut changer ça avec un script sh Comment j’édite le fichier web.xml ? 6
  7. 7. Des imbroglios DevOps:la gouvernance de la configuration Quels sont les paramètres de l’application et leurs valeurs de production ? Quelles variables de JVM sont utilisées par notre application ? 7
  8. 8. Des imbroglios DevOps:la gouvernance de la configuration Je vais demander à l’équipe de dévelopement et vous transmettre une feuille Excel Je vais faire un grep dans le code source et chercher les occurences de System.getProperty() 8
  9. 9. Qu’est-ce qu’on peut faire ? Expliciter la configuration dans le code Rendre les variables de configuration aussi simple à manipuler que des variables de classes Détecter les changements dans le code lors de la mise en production (MeP) d’une nouvelle version Fournir de la documentation à jour pour chaque MeP Utiliser les méchanismes standards de l’OS pour faire de la configuration 9
  10. 10. Action ! 10
  11. 11. Les couches de configuration OS export webservice_url=http://www.conf4j.org Shell Launcher script -Dwebservice_url=http://www.conf4j.org JVM webservice_url=http://www.conf4j.org Configuration file API CONF.setValue(webservice_url,‘http://www.conf4j.org’); Start here // Un seul mode de lecture au runtime : final String value = CONF.getValue(overriding ConfElements.webservice_url);
  12. 12. La gouvernance des paramètres  Utiliser des champs dans une classe unique  Annoter les champs  Les clefs sont injectées 12
  13. 13. Scope d’un paramètre scope déclare l’utilisation de chaque variable lors de son exécution.  Vérfication au runtime devPurposeOnly indique que ce paramètre doit être changé webapp unit_test lors de la MeP.devoxx_base_url X X  Export d’un tempate dedevoxx_home_url X X configuration pour la MePdevoxx_agenda_url X Xdevoxx_unittest_url X 13
  14. 14. Accès à l’environnement  Semblable à System.getProperty() 14
  15. 15. Démo 15
  16. 16. Ceci n’est pas une librairie Just Fork it ! https://github.com/dbaeli/conf4j 16

×