Upload
hercule-bonnin
View
118
Download
5
Embed Size (px)
Citation preview
Déploiement et ConfigurationNicolas Capponi, Alain Delafosse et Laurent Tardif
By Agile4techos
Nicolas Capponi
• Consultant Java / Objet
• Principal contributeur Pack/Conf chez Kelkoo
• Architecte chez Kelkoo
Alain Delafosse
• Consultant Java
• Production chez Kelkoo
• Architecte chez Kelkoo
Laurent TARDIF
• M&T chez Kelkoo
• Intl! Architecte chez Y! (IC, I18n, Securité)
• IC chez Agilent
Qui sommes nous ?
La session
Rendre une application existante configurableet installable automatiquement ?
C’est possible !!! Nous allons vous montrer comment
Notre application : Nokia Test
Stockage
Configuration
Ressources
Traduction QuestionsRéponses
Utilisateurs
Client Q/R
Client U
Client lourd
Statistiques Client S
Client mi-lourd
ServiceQ/R
ServiceU
Le deploiement c’est quoi ?
Stockage
Configuration
Resources
Traduction QuestionsRéponses
Utilisateurs
Client Q/R
Client U
Client lourd
Statistiques Client S
Client mi-lourd
ServiceQ/R
ServiceU
Mysql : services, conf, data
Java
fichiers
Grizzly : services, admin, conf, …
Java Java
• Je ne maîtrise pas l'installation incrémentale.• Il manque des fichiers ? (ca marche car déjà présent).• Je garde des fichiers qui ne servent plus.• Je ne maîtrise pas les logiciels (versions) installés.
• Je ne sais pas ré-installer un nouveau serveur
• Je mets beaucoup de temps à installer.
• Si le principal contributeur n'est pas la, comment faire pour installer ?• partage de connaissances/compétences
DEMONSTRATION Au début
Déploiement continu
Configuration
Automatisation de la configuration
Déploiement
Automatisation du déploiement
Comment aborder le problème
1. Des binaires
2. Des dépendances
3. Des ressources (fichiers de traductions, images, etc ...)
4. Des données (questions, réponses, ... )
5. Des structures de données : schéma de base, xsd , ...
6. Des templates de configuration
7. La logique d'installation
8. Des outils d'administration (crons, start, stop)
9. Des documents (installation, release notes, ...)
Zoom sur le contenu d’un déploiement
• Pré-requis
• Le monde extérieur et les serveurs d’artefacts
• Un environnement configurable, mais standardisé ….
DEMONSTRATIONDéployons notre environnement de développement
• Choix initiaux : mono/multi instance , que configurer ?
• Le script de déploiement peut échouer• correction manuelle, roll-back automatique,…• Installation par étape
• La gestion du down-grade ?
• La gestion de version des données
• L’automatisation est un ensemble de programmes … peut être buggé ?
DEMONSTRATIONDéployons notre application
ENVIRONNEMENT• Maîtrisé• Versionné • Reproductible• Testable• Généré régulièrement
• Développement• QA• Production / Client
BÉNÉFICES
Nous avons maintenant :
Le déploiement, compliqué ?
• Doit être configurable
• Ne pas confondre configurable et doit être configuré
Configurable
• Développement
• QA
• Production / client
Environnements
• Calcul de valeurs• Configurable si je
le désir• Valeurs par defaut
Et donc
+ Questions
DEMONSTRATIONConfiguration
+ Interagit mais indépendant de l'installation + Utilisation de templates de configuration (Velocity, ERB, ...)+ Configuration = fonction (environnement, hardware, user,
application )
- Versions différentes par environnement - Non versionné
DEMONSTRATIONLes bonnes pratiques et les pièges
Conclusion
Favoriser les concepts plus que les outils
Les outils existent, ne réinventez pas la roue
Sans modifier l’application
Configurable et installable !Est-ce le but ou juste une étape ? Si , on peut encore faire mieux …
Concepts
Choisissez celui adapté a vos besoins … si vos besoins changent … changez d’outils !
Outils
Choix
Application
But ?
Etape !
• L’application doit détecter le changement de configuration (ou être notifiée)• Le code ne doit pas stocker localement la configuration initiale
Chargement de la configuration à chaud
• L’application doit permettre de mettre à jour ses données sans redémarrer
Chargement à chaud des données
• Je dois pouvoir mettre à jour mon application sans interrompre le service en cours
Déploiement continu
• Je dois pouvoir mettre à jour le minimum de choses et le plus rapidement possible
Installation incrémentale
Etapes suivantes: encore plus vite !C’est possible !
Outils Vous en vouliez ? En voila !
Installation
•msiexec•Java
webstart•NuGet ,
openWrap…
Conf et
install
•http://docs.fabfile.org/0.9.2/
•http://rubyhitsquad.com/Vlad_the_Deployer.html
•http://projects.puppetlabs.com/projects/puppet/wiki/About_Puppet
•http://www.capify.org/index.php/Capistrano
•http://heroku.com/•http://controltier.org/w
iki/Main_Page
Questions
By Agile4techos
5 doigts : ExcellenteSuper c'est exactement ce qu'il me fallait !
4 doigts : BonneTrès intéressant, j’ai gagné plus que le temps que j’y ai passé.
3 doigts : Juste MoyenneIntéressant, sans plus. Je n’ai pas perdu mon temps.
2 doigts : UtileBof ! J'ai perdu du temps.
1 doigt : InutileJe n'ai rien appris. J’ai vraiment perdu mon temps
ROTI (Return On Time Invested)