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

Symfony PHP Discussion :

Bon workflow pour Symfony2?


Sujet :

Symfony PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2013
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Janvier 2013
    Messages : 38
    Points : 17
    Points
    17
    Par défaut Bon workflow pour Symfony2?
    Bonjour à tous,

    Cela fait un an que je travaille sur Symfony2 en local sur un PC avec GIT et Netbeans.
    Je suis en train de migrer Symfony2 sur un serveur Linux Debian dédié mais je me demande comment gérer mon workflow et je ne trouve pas de réponse évidente.

    Comment organisez-vous votre déploiement?

    Pour illustrer mon questionnement:
    J'écris mon code sous Netbeans sur l'arborescence Symfony2 de mon PC. Une fois fini comment je teste mon code sur le serveur?
    Je push mon code avec Git sur l'arborescence du serveur? Problème: il me faut un répertoire de test avant publication officielle du code.

    Donc j'ai trois installations Symfony2 :
    1/ Une sur le PC pour écrire mon code et le tester rapidement en local
    2/ Une de test sur serveur Apache (port 8080 par exemple) pour faire mes tests en environnement de prod
    3/ Une officielle pour mettre en ligne mon projet testé.

    Ca me paraît bien compliqué et pas forcément optimum puisque je vais avoir une installation PC Windows et une installation Debian pas forcément tout a fait identiques.

    J'en appelle donc à votre expérience. Comment fonctionnez-vous pour tester et déployer vos applications Symfony2?

    Merci d'avance pour votre aide,
    Mages

    PS: J'ai browsé le net sans réponse...

  2. #2
    Membre expérimenté Avatar de Nico_F
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2011
    Messages : 728
    Points : 1 310
    Points
    1 310
    Par défaut
    Hello,

    Je ne suis pas sûr d'avoir compris le fond du problème mais de ce que j'en ai compris voilà ce que je te propose :

    Pour répondre à la problématique d'environnement, il n'y a pas 36 solutions :
    - Soit tu troques le Windows de ta bécane de dev contre un UNIX
    - Soit tu utilises une VM sur laquelle il y aura tout, et ton Netbeans va chercher les fichiers sur ta VM. Pour l'avoir déjà fait, je trouve que le gros inconvénient de cette méthode est que tu risques d'avoir quelques lenteurs (en plus des lenteurs de NetBeans en soi).
    - Soit (technique que je n'ai jamais testé mais qui à mon avis se rapproche beaucoup de la seconde) Vagrant : technique très pratique si tu veux par la suite que toute une équipe de dev aie le même environnement de manière simple et rapide.

    Pour ce qui est du déploiement : je te suggère d'avoir une branche par environnement.
    Dans ton cas :
    - Une branche dev (ou tu balances toutes tes dernières modifs)
    - Une branche test (pré-prod)
    - Une branche master (prod)

    Ton environnement de test n'ira pas récupérer les fichiers qui sont sur la branche master, mais sur la branche test. Une fois testé sur ton environnement de pré-prod, tu peux merger test dans master et push.

    [EDIT] De ce que j'ai compris, ton environnement de test est un serveur distinct et non ta bécane de dev.
    Si ce n'est pas le cas il faut que tu te crées un répertoire sur ton serveur, ou tu pourras le tester.
    En faisant ça la problématique d'environnement n'a pas vraiment lieu d'être puisque ton projet sera testé sur le même serveur que l'application de production.

    J'espère avoir répondu à ta question ++

  3. #3
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2013
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Janvier 2013
    Messages : 38
    Points : 17
    Points
    17
    Par défaut
    Merci pour ta réponse!

    En effet, je tape le code sur le PC mais il tourne sur un serveur Debian distinct.

    Finalement j'ai placé mon repo de dev directement sur le serveur. J'y accède par netbeans lancé depuis le PC en remote. C'est lent (tu en avais parlé) et ça plante. Netbeans est mort aujourd'hui (version 7.3 à laquelle j'ai rajouté 24 patchs hier... c'est peut-être eux qui lui ont été fatals).
    Donc pas top pour bosser. Je vais tenter la version 7.4 de Netbeans au cas où.

    Autre problématique avec xdebug qui est ennuyeux à configurer dans cette architecture de travail. J'ai dû faire un tunnel ssh sur le port 9000 entre le PC et le serveur. Et ça rame grave (PC serveur de 12 ans d'âge donc peut-être -très- léger côté perf pour faire tourner tout ça).

    Sinon je bosse pour l'instant sur la branche master de mon repo GIT puisque je suis le seul à bosser et n'ai pas besoin de version différentes entre dev, prod (de test) et prod (live).

    La procédure de déploiement que je pense adopter:

    1/ Développer sur le repo de dev directement sur le serveur en remote.
    2/ Lancer mes tests automatiques. Si tout fonctionne => 3/
    3/ Commiter les modifs et pusher vers un bare repo stocké sur le PC windows ou le serveur Debian (à voir). C'est temporaire tant que je suis seul à développer. Ca sert de sauvegarde.
    4/ A cette étape, je voudrais tester sur un serveur de prod mais étant novice en la matière je ne sais pas comment m'y prendre. Est-ce que j'ai besoin d'un serveur distinct (virtuel ou physique) ou bien est-ce que je peux utiliser le même? Ca va dépendre de tous les fichiers à changer entre dev et prod sur Symfony. Note: j'ai lu qu'il valait mieux tester aussi la version prod qui peut réserver des surprises par rapport à la version de dev. Mais je n'en sais pas plus. Idélaement il faudrait qu'il ait exactement la même configuration que le serveur de prod "live" au bit près pour éviter les déconvenues.
    5/ Une fois tous les tests sur version de prod effectués et réussis, tout balancer en sftp sur le "vrai" serveur de prod live. Pourquoi en SFTP? Pour avoir un serveur avec le moins de services possibles par 1/ sécurité, 2/ simplicité de maintenance. Juste un serveur web, une base de données, un service ssh et basta. La bdd ne sera accessible que depuis le serveur web et mon serveur (IP fixe connue).

    Le PC est chez moi et se connecte au serveur de test (dev) par SSH (je pourrais donc le connecter de n'importe où).
    Le serveur de test (dev) est chez moi aussi.
    Le serveur de test (prod) est chez moi.
    Le serveur live (prod) est chez un hébergeur et est une copie parfaite du serveur de test (prod).

    Qu'en pensez-vous? Y'a plus simple, plus optimum, plus intelligent, plus efficace?

    Merci!

Discussions similaires

  1. Quel bon EDI pour Développement C++ sous Mandriva 2006 ?
    Par inddzen dans le forum Choisir un environnement de développement
    Réponses: 8
    Dernier message: 03/08/2006, 15h39
  2. Recherche bon livre pour débuter en C
    Par maxti dans le forum C
    Réponses: 4
    Dernier message: 10/01/2006, 16h34
  3. Réponses: 3
    Dernier message: 09/10/2005, 19h10
  4. [XML-XSLT] Cherche bon livre pour apprendre
    Par PlaTyPuSs dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 16/06/2005, 11h51

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