IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

EDI, CMS, Outils, Scripts et API PHP Discussion :

Gestion des sources test/production


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    189
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 189
    Points : 61
    Points
    61
    Par défaut Gestion des sources test/production
    Bonjour,

    Je suis actuellement à la recherche d'un outil qui permet de gérer les sources pour faciliter le passage de test à la production. Pour le moment je suis obligée de copier/coller toutes les sources. Connaissez vous un moyen plus fiable et plus rapide?

    Merci d'avance!!

  2. #2
    Membre régulier
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Février 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Février 2008
    Messages : 71
    Points : 117
    Points
    117
    Par défaut
    Bonsoir,

    Il n'existe pas à ma connaissance d'outil permettant d'automatiser à 100% la montée d'environnements en PHP.

    Il existe cependant plusieurs solutions efficaces :

    - Rsync (systèmes unix) permet de synchroniser des répertoires locaux ou distants. C'est un outil en ligne de commande qui est capable de ne copier que les fichiers ayant été modifiés depuis la dernière copie. L'outil ne fait que de la copie de sources, mais peut être piloté via un script shell (on peut ainsi créer une sauvegarde avant de lancer le déploiement). J'ai utilisé ce système pendant 3 ans, et cela a plutôt bien fonctionné (hormis quelques erreurs de manip).

    - Phing (toutes les plateformes) est un gestionnaire de build (portage d'Ant en PHP). il permet d'automatiser les actions nécessaires à une migration d'environnement (modification des fichiers de conf, copie de fichiers, exécution de tests, etc.), mais n'est pas nécessairement plus simple qu'un copier/coller (configuration par un fichier xml). Il permet cependant de limiter les erreurs de manip, et d'automatiser une sauvegarde de l'ancien code pour un retour arrière par exemple.

    - l'utilisation d'un gestionnaire de sources (subversion, git, etc.) permet de stocker l'historique des sources et de créer des "versions" du produit. On peut ensuite exporter la version créée vers le serveur de test/production via une ligne de commande unique. Cette solution est assez lourde mais très efficace et assure un retour arrière très rapide.



    Pour un site évoluant peu (une livraison de temps en temps, peu d'enjeux économiques), la solution rsync est suffisante : elle nécessite peu de temps de développement et de maintenance, et s'avère très stable

    Pour un site plus critique (site e-commerce, application métier), je passerais à un système plus complet. Par exemple, je viens de passer à une solution basée sur phing et subversion :

    - j'utilise d'abord une tâche phing pour lancer les tests unitaires de mon application, générer la documentation et créer une version dans mon gestionnaire de sources (subversion) si les tests ont passé.

    - Je me connecte ensuite au serveur sur lequel je dois livrer les sources et lance une autre tâche phing pour "exporter" les sources de mon serveur subversion dans le documentRoot d'apache.

    - En cas de problème, je dispose d'une 3eme tâche phing qui me permet de revenir à n'importe quelle version de mon application.

    C'est une solution assez lourde, mais qui me permet de livrer extrêmement fréquemment sans erreur ou fichier oublié.

    C'est un peu détaillé, n'hésite pas si ce n'est pas assez clair
    -Benjamin

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    189
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 189
    Points : 61
    Points
    61
    Par défaut
    Merci beaucoup pour ta réponse.

    Je n'hésiterai pas à revenir vers toi si j ai des questions.

    Bonne journée!!!

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    189
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 189
    Points : 61
    Points
    61
    Par défaut
    Une petite question : Est ce que juste l'utilisation de subversion suffirait à ce que je veux faire ?

    C'est à dire : gérer les différentes versions du codes et transférer mon code vers le serveur de prod. Est ce que phing est indispensable pour ces deux taches?

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    189
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 189
    Points : 61
    Points
    61
    Par défaut
    Âpres réflexion, étant la seule développeuse, je pense qu'il serait plus judicieux d'utiliser phing ? Qu'en pensez tu? Je veux simplement un outil permettant de garder l'ancien code et le trasnfert de mon code vers le serveur de production.
    Est ce phing est simple d'utilisation?

  6. #6
    Membre confirmé

    Homme Profil pro
    Inscrit en
    Août 2006
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2006
    Messages : 317
    Points : 597
    Points
    597
    Par défaut
    Bonjour,

    Les solutions que monsieurben sont très exhaustives. Pour Windows, je rajouterai la solution avec Syncback.

    Si tu sais très bien te servir d'un gestionnaire de version, passer par celui-ci je suis convaincu que c'est une solution efficace.
    Si tu n'as jamais vraiment utilisé, je pense que tu risques de t'arracher les cheveux avec ce moyen car à la base ce n'est pas fait pour cela.

    Ce que tu veux réaliser correspond à l'une des étapes du cycle de vie d'une l'application qu'on appelle le déploiement. Phing est un outil pour prendre en charge les opérations relatives au cycle de vie.

    Je te conseille de regarder dans ce tutoriel l'exemple 2 :
    Gestion du cycle de vie d'une application PHP avec Phing

    Pour pouvoir t'aiguiller plus efficacement, j'aimerai savoir ce que tu entends par copier coller ? C'est une opération de copier coller sur le même disque ou un transfert à l'aide d'un client FTP ?

    Est ce que ton hébergement est sur un serveur dédié, sur un serveur mutualisé ou sur ta propre machine ?

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    189
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 189
    Points : 61
    Points
    61
    Par défaut
    J'utilise une machine virtuelle VMware. j'en ai une de test et une de production.
    Je passe par un outil FTP pour le transfert de mes sources.

    Est ce que cela répond bien à tes questions?

  8. #8
    Membre confirmé

    Homme Profil pro
    Inscrit en
    Août 2006
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2006
    Messages : 317
    Points : 597
    Points
    597
    Par défaut
    Oui, cela répond aux questions que je me posai.

    Phing te permet de faire le transfert très simplement à partir de la tache FTPdeploy :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <ftpdeploy 
      host="${ftp.host}" 
      port="${ftp.port}" 
      username="${ftp.username}" 
      password="${ftp.password}"
      dir="${ftp.dir}" 
      mode="${ftp.mode}">
      <fileset dir=".">
        <include name="**"/>
        <exclude name="phing"/>
        <exclude name="build.xml"/>
        <exclude name="images/**.png"/>
        <exclude name="images/**.gif"/>
        <exclude name="images/**.jpg"/>
      </fileset>
    </ftpdeploy>
    En gros, tu viens configurer Phing comme tu configurerai ton client FTP. Je pense qu'ainsi tu garderai la même méthodologie de travail.

    Vu ta configuration, tu peux utiliser un gestionnaire de source de type Subversion pour la synchro, néanmoins, voici une liste minimum d'etape pour procéder :
    - Créer un dépot pour ton projet
    - T'abonner depuis l'espace de test
    - T'abonner depuis l'espace de production
    - Publier les modifications depuis l'espace de tests dans le dépot
    - Update l'espace de production depuis le dépôt

    Au final, je pense que Phing est la solution la plus facile à mettre en place car elle ne te demande pas de changer ta façon de travailler.

    Elle demande un investissement de 2 ou 3 heures pour apprendre à utiliser l'outil (Le tutoriel que je t'ai donné plus haut peut t'y aider). Au final, le plus long je pense que c'est l'installation. La configuration du build se fait en remplissant un fichier XML (rien de bien sorcier).

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    189
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 189
    Points : 61
    Points
    61
    Par défaut
    Merci beaucoup.

    Je n'ai qu'a installer phing sur ma machine virtuelle de test et grâce à cette tâche je pourrai mettre à jour les fichiers de ma machine virtuelle de prod. J'ai bien tout suivi?

    En ce qui concerne l'archivage, le tuto que tu m'a donné est parfait.

    Encore Merci.

  10. #10
    Membre confirmé

    Homme Profil pro
    Inscrit en
    Août 2006
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2006
    Messages : 317
    Points : 597
    Points
    597
    Par défaut
    Je pense que tu as parfaitement compris.

    De rien, bon courage pour la suite ^^. Si après tes essais ça résous ton problème, penses à marquer le sujet comme résolu.

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    189
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 189
    Points : 61
    Points
    61
    Par défaut
    Pas de probleme. Je teste ça demain!!!

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    189
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 189
    Points : 61
    Points
    61
    Par défaut
    Bonjour,

    J'ai un souci au niveau de l'installation de phing.
    Quand je tape la commande discover-channel, il me donne comme erreur :
    connection to pear.phing.info : 80 failed?

    Sais tu d'ou cela peut venir?

    Merci d'avance.

  13. #13
    Membre confirmé

    Homme Profil pro
    Inscrit en
    Août 2006
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2006
    Messages : 317
    Points : 597
    Points
    597
    Par défaut
    Je n'ai jamais eu ce message d'erreur.

    J'ai fait une rapide recherche sur google, ça peut se produire quand le channel est down.

    Peux tu essayer un autre channel par exemple ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pear channel-discover pear.phpunit.de
    C'est le channel de phpunit. J'aimerai voir si c'est généralisé sur ton installation.

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    189
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 189
    Points : 61
    Points
    61
    Par défaut
    J'ai trouvé ce matin. Je travaille avec un proxy donc il faut utiliser la fonction pear config-set http_prox.

    Je commence à faire mes tests pour la fonction FTP.

    Je te tiens au courant.

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    189
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 189
    Points : 61
    Points
    61
    Par défaut
    G un petit probleme, voila le résultat de mon build :

    Could not deploy file controles_donnees.php : File C:\Program Files\EasyPHP
    0b1\www\interface\controle_donnees.php' could not be uploaded to '/controle_donneees.php'

    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    <?xml version="1.0" encoding="UTF-8"?>
    <project name="FtpUpload" default="main">  
        <ftpdeploy 
            host="xxxxxxxx" 
            port="xxxxxxxxxxxx" 
            username="xxxxxxxx" 
            password="xxxxxxxx"
            dir="." >
                <fileset dir=".\www\interface">
                    <include name="**"/>
                    <exclude name=".\www\interface\param.php"/>
                </fileset>
        </ftpdeploy>
        <target name="main">  
            <echo>FTP Upload Finished!</echo>  
        </target>   
    </project>

  16. #16
    Membre confirmé

    Homme Profil pro
    Inscrit en
    Août 2006
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2006
    Messages : 317
    Points : 597
    Points
    597
    Par défaut
    As tu réussi à résoudre ton problème ?

    Au vu du fichier que tu as posté, je pense que ça devait venir de la structure de ton fichier build.xml (Le ftpdeploy devait etre dans une target) ou d'un problème de proxy (d'apres tes dires précédents).

    Pourrais tu poster la solution que tu as trouvé ? Ca pourrait aider d'autres personnes si elles rencontrent le meme souci.

    Fabien

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 18/10/2009, 11h58
  2. Gestion des sources
    Par VLDG dans le forum Eclipse Java
    Réponses: 6
    Dernier message: 25/12/2007, 17h36
  3. Gestion des sources sous OpenAL
    Par sebcmoa dans le forum Windows
    Réponses: 2
    Dernier message: 16/07/2007, 17h36
  4. Outil de gestion des sources
    Par therouxy dans le forum SCM
    Réponses: 4
    Dernier message: 27/09/2005, 19h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo