déploiement et configuration nicolas capponi, alain delafosse et laurent tardif by agile4techos

19
Déploiement et Configuration Nicolas Capponi, Alain Delafosse et Laurent Tardif By Agile4techos

Upload: hercule-bonnin

Post on 03-Apr-2015

116 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: Déploiement et Configuration Nicolas Capponi, Alain Delafosse et Laurent Tardif By Agile4techos

Déploiement et ConfigurationNicolas Capponi, Alain Delafosse et Laurent Tardif

By Agile4techos

Page 2: Déploiement et Configuration Nicolas 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 ?

Page 3: Déploiement et Configuration Nicolas Capponi, Alain Delafosse et Laurent Tardif By Agile4techos

La session

Rendre une application existante configurableet installable automatiquement ?

C’est possible !!! Nous allons vous montrer comment

Page 4: Déploiement et Configuration Nicolas Capponi, Alain Delafosse et Laurent Tardif By Agile4techos

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

Page 5: Déploiement et Configuration Nicolas Capponi, Alain Delafosse et Laurent Tardif By Agile4techos

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

Page 6: Déploiement et Configuration Nicolas Capponi, Alain Delafosse et Laurent Tardif By Agile4techos

• 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

Page 7: Déploiement et Configuration Nicolas Capponi, Alain Delafosse et Laurent Tardif By Agile4techos

Déploiement continu

Configuration

Automatisation de la configuration

Déploiement

Automatisation du déploiement

Comment aborder le problème

Page 8: Déploiement et Configuration Nicolas Capponi, Alain Delafosse et Laurent Tardif By Agile4techos

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

Page 9: Déploiement et Configuration Nicolas Capponi, Alain Delafosse et Laurent Tardif By Agile4techos

• Pré-requis

• Le monde extérieur et les serveurs d’artefacts

• Un environnement configurable, mais standardisé ….

DEMONSTRATIONDéployons notre environnement de développement

Page 10: Déploiement et Configuration Nicolas Capponi, Alain Delafosse et Laurent Tardif By Agile4techos

• 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

Page 11: Déploiement et Configuration Nicolas Capponi, Alain Delafosse et Laurent Tardif By Agile4techos

ENVIRONNEMENT• Maîtrisé• Versionné • Reproductible• Testable• Généré régulièrement

• Développement• QA• Production / Client

BÉNÉFICES

Nous avons maintenant :

Page 12: Déploiement et Configuration Nicolas Capponi, Alain Delafosse et Laurent Tardif By Agile4techos

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

Page 13: Déploiement et Configuration Nicolas Capponi, Alain Delafosse et Laurent Tardif By Agile4techos

+ Questions

DEMONSTRATIONConfiguration

Page 14: Déploiement et Configuration Nicolas Capponi, Alain Delafosse et Laurent Tardif By Agile4techos

+ 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

Page 15: Déploiement et Configuration Nicolas Capponi, Alain Delafosse et Laurent Tardif By Agile4techos

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 !

Page 16: Déploiement et Configuration Nicolas Capponi, Alain Delafosse et Laurent Tardif By Agile4techos

• 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 !

Page 17: Déploiement et Configuration Nicolas Capponi, Alain Delafosse et Laurent Tardif By Agile4techos

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

Page 18: Déploiement et Configuration Nicolas Capponi, Alain Delafosse et Laurent Tardif By Agile4techos

Questions

By Agile4techos

Page 19: Déploiement et Configuration Nicolas Capponi, Alain Delafosse et Laurent Tardif 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)