Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 06-10-2008 10:40:10

bertra
Membre
Date d'inscription: 06-02-2008
Messages: 130

[1.6] Comment déployer efficacement ses projets

Bonjour,

Je m'intéresse en ce moment aux outils permettant un  déploiement efficace et le suivi/maj d'applications ZF.
Quels outils utilisez vous dans ce but ?
En êtes vous satisfaits ?

Hors ligne

 

#2 06-10-2008 10:57:56

philippe
Administrateur
Lieu: Grenoble
Date d'inscription: 01-03-2007
Messages: 1624

Re: [1.6] Comment déployer efficacement ses projets

Bonjour,

Moi j'utilise principalement svn. Je trouve ça pratique et robuste. C'est pas vraiment fait pour, mais ça marche bien. En cas de modification en prod (pour un incident majeur par exemple), c'est facile de réintégrer les modifs dans le code du dev... La gestion de branches permet d'avoir des versions différentes en prod et en dev...
Bref, c'est ma solution fétiche... (attention, penser à modifier sa conf apache pour que les .svn ne soient pas lisibles par apache, sinon c'est un beau trou de sécurité...)

Quand un hébergeur ne me laisse pas utiliser svn (chez certains clients ça arrive), j'utilise svn en dev et en validation pour le suivi de version. Ensuite phing pour les déploiements.

A+, Philippe


twitter : @plv ; kitpages.fr : Création de sites internet à Grenoble et Paris

Hors ligne

 

#3 06-10-2008 11:31:37

alien7
Membre
Date d'inscription: 29-04-2007
Messages: 447

Re: [1.6] Comment déployer efficacement ses projets

philippe a écrit:

Bonjour,

(attention, penser à modifier sa conf apache pour que les .svn ne soient pas lisibles par apache, sinon c'est un beau trou de sécurité...)

Pourrai tu me dire comment faire ce point stp
Merci


ZF 2.3 - Twitter Bootstrap 3.2
Local: Ubuntu  -> Apache2 2.4 - MariaDB 10 - PHP 5.6

Hors ligne

 

#4 06-10-2008 11:47:55

philippe
Administrateur
Lieu: Grenoble
Date d'inscription: 01-03-2007
Messages: 1624

Re: [1.6] Comment déployer efficacement ses projets

Bonjour,

Tu peux ajouter ça

Code:

<Directory ~ "\.svn">
  Order allow,deny
  Deny from all
</Directory>

A+, Philippe


twitter : @plv ; kitpages.fr : Création de sites internet à Grenoble et Paris

Hors ligne

 

#5 06-10-2008 11:50:41

alien7
Membre
Date d'inscription: 29-04-2007
Messages: 447

Re: [1.6] Comment déployer efficacement ses projets

Merci bien Philippe smile


ZF 2.3 - Twitter Bootstrap 3.2
Local: Ubuntu  -> Apache2 2.4 - MariaDB 10 - PHP 5.6

Hors ligne

 

#6 06-10-2008 12:11:38

gauthier
Membre
Date d'inscription: 30-09-2008
Messages: 116
Site web

Re: [1.6] Comment déployer efficacement ses projets

Bonjour,

l'autre option pour ne pas être embarassé par les dossiers .svn est d'utiliser un "export" et non pas un checkout pour la mise en production.

Export va simplement extraire tous les fichiers, dans leur dernière version, sans créer les dossiers .svn, ce qui veut dire que si l'on fait des modifs dans des sources exportées, on ne peut pas les remonter au serveur avec un "commit". Mais comme justement il n'est pas recommandé de modifier les sources en prod, ça évite d'être tenté smile

Il est possible d'automatiser le processus d'export pour passer en production avec un outil comme phing (http://phing.info/trac/), qui permettra outre l'export des sources proprement dites d'automatiser certaines tâches (vidage du cache, modification de l'environnement, réglages des droits d'accès aux fichiers etc.)


Consultant Zend Technologies // Blog perso : Logiciel libre et développement web -- http://freeblogware.org

Hors ligne

 

#7 06-10-2008 14:45:44

alien7
Membre
Date d'inscription: 29-04-2007
Messages: 447

Re: [1.6] Comment déployer efficacement ses projets

Mais si je fais un export et que j'ai des fichiers sur leserver prod tels que des images d eproduits qui ne sont pas dans le repository, est ce que ca gardera ces fichiers ?


ZF 2.3 - Twitter Bootstrap 3.2
Local: Ubuntu  -> Apache2 2.4 - MariaDB 10 - PHP 5.6

Hors ligne

 

#8 06-10-2008 15:53:39

philippe
Administrateur
Lieu: Grenoble
Date d'inscription: 01-03-2007
Messages: 1624

Re: [1.6] Comment déployer efficacement ses projets

Pour les exports, je ne suis pas un expert du fonctionnement. Par contre si tu fais la méthode avec une copie locale sur ta prod (avec les .svn). Il suffit d'ajouter un svn:ignore sur tes répertoires de données et ils ne sont plus affectés par svn... (par contre sur tes données, tu n'a bien sur pas de versionning avec svn...)

Dans le cas d'un svn export, je laisse gauthier répondre...

A+, Philippe
PS : en général, mes données ne sont pas dans l'arbo de mon code. Dans ce cas le problème ne se pose pas. Cela dit ça n'est pas tjrs possible, surtout quand les hébergeurs sont des furieux, fans d'open_basedir très restrictifs....


twitter : @plv ; kitpages.fr : Création de sites internet à Grenoble et Paris

Hors ligne

 

#9 08-10-2008 09:00:51

2mx
Membre
Lieu: Grenoble
Date d'inscription: 06-08-2007
Messages: 125

Re: [1.6] Comment déployer efficacement ses projets

Bonjour,

Merci a Philippe et Gautier pour les infos, c'est quelque chose que j'envisage de faire mais j'ai du mal à voir concrètement comment vous procédez.

1) Vous avez une copie local sur le dev et vous travaillez directement dessus via samba ?

2) Ou est ce que vous travailler avec une copie locale sur votre poste et avez aussi une copie locale sur dev où vous faite un svn update pour les mises à jour ?

3) Ou alors tout autre chose...


A froid comme ça je partirai bien sur la solution n°1 smile

Hors ligne

 

#10 08-10-2008 11:01:19

philippe
Administrateur
Lieu: Grenoble
Date d'inscription: 01-03-2007
Messages: 1624

Re: [1.6] Comment déployer efficacement ses projets

Solution 2 pour moi (avec en plus une copie locale en prod et je fais aussi un svn update en prod pour mettre à jour).

A+, Philippe


twitter : @plv ; kitpages.fr : Création de sites internet à Grenoble et Paris

Hors ligne

 

#11 08-10-2008 13:10:13

2mx
Membre
Lieu: Grenoble
Date d'inscription: 06-08-2007
Messages: 125

Re: [1.6] Comment déployer efficacement ses projets

philippe a écrit:

Solution 2 pour moi (avec en plus une copie locale en prod et je fais aussi un svn update en prod pour mettre à jour).

Ok, merci Philippe. Et tu utilise quelque chose comme XAMPP sur ton poste en locale ?

Hors ligne

 

#12 08-10-2008 21:36:37

gauthier
Membre
Date d'inscription: 30-09-2008
Messages: 116
Site web

Re: [1.6] Comment déployer efficacement ses projets

concernant la fonction export de SVN, elle permet d'exporter soit ses sources courantes (depuis sa copie de développement) soit depuis le repository directement (par exemple après un dernier commit et la création d'un tag - ou release - si on veut passer en prod).

Dans le cas d'un export depuis sa version de développement, si des fichiers qui ne font pas partie du repository sont présents dans l'arborescence, ils ne seront pas copiés. En revanche, les fichiers déjà présents sur la cible ne sont pas sensés être supprimés smile

Perso cela me semble une meilleure pratique que de n'utilsier que cette fonction depuis des tags (versions figées dans le repository) pour garantir le meilleur fonctionnement de l'appli/du site en production. On sera par exemple certain de la version du code en cours d'utilisation, ce qui permettra plus facilement en cas de découverte d'un bug tardif de revenir sur cette version (grâce au tag) et de s'atteler à corriger le bug en question sans s'encombrer des ajouts et modifications survenus entre-temps.

Bien sûr, cela reste à mettre en rapport avec l'ampleur du projet ! Si 'lon parle d'une petite appli, dont on est le seul responsable... allons-y pour le co suivi d'update wink

Mais si l'on parle d'un projet d'importance développé pour un client, ou bien au sein d'une grande entreprise, la solution tags+export permet de faciliter le suivi des applications, et de se conformer plus facilement à de bonnes habitudes... on évitera par exemple de mettre en ligne un code non-testé, ou non-validé.

Une fois encore, combiné à l'emploi de phing, le passage du dev ou de la pré-prod à la prod basé sur des exxports svn est très simple ("./phing monsite.xml" peut suffire, ce qui n'est guère plus long que "./svn update" smile), et permet de bien mieux contrôler et automatiser sa mise en prod.


Consultant Zend Technologies // Blog perso : Logiciel libre et développement web -- http://freeblogware.org

Hors ligne

 

#13 09-10-2008 08:22:40

philippe
Administrateur
Lieu: Grenoble
Date d'inscription: 01-03-2007
Messages: 1624

Re: [1.6] Comment déployer efficacement ses projets

Bonjour gauthier,

100% d'accord avec toi pour l'utilisation des tags. Sur mes gros projets, je travaille exactement comme toi pour la gestion des tags. Ensuite pour mes mises en prod, je fais des "svn switch".
Sur les petits projets, j'ai tendance à rester sur le trunk.

Par contre, je reste sur les copies locales à la place des exports, mais sur le principe, ça ne change pas grand chose smile

A+, Philippe


twitter : @plv ; kitpages.fr : Création de sites internet à Grenoble et Paris

Hors ligne

 

#14 09-10-2008 10:47:05

2mx
Membre
Lieu: Grenoble
Date d'inscription: 06-08-2007
Messages: 125

Re: [1.6] Comment déployer efficacement ses projets

Merci Gauthier pour cette réponse détaillée.

gauthier a écrit:

Une fois encore, combiné à l'emploi de phing, le passage du dev ou de la pré-prod à la prod basé sur des exxports svn est très simple ("./phing monsite.xml" peut suffire, ce qui n'est guère plus long que "./svn update" smile), et permet de bien mieux contrôler et automatiser sa mise en prod.

Est que tu lance "./phing monsite.xml" sur le serveur de dev puis celui-ci fait l'export d'un tag et l'upload en ftp sur le serveur de prod ?

Hors ligne

 

#15 09-10-2008 13:59:56

gauthier
Membre
Date d'inscription: 30-09-2008
Messages: 116
Site web

Re: [1.6] Comment déployer efficacement ses projets

Bonjour Laurent,

le mieux consiste à exécuter phing sur le serveur de prod, ce qui permet de s'épargner le ftp (j'aime pas les ftp) wink


Consultant Zend Technologies // Blog perso : Logiciel libre et développement web -- http://freeblogware.org

Hors ligne

 

#16 09-10-2008 16:56:59

2mx
Membre
Lieu: Grenoble
Date d'inscription: 06-08-2007
Messages: 125

Re: [1.6] Comment déployer efficacement ses projets

gauthier a écrit:

le mieux consiste à exécuter phing sur le serveur de prod, ce qui permet de s'épargner le ftp (j'aime pas les ftp) wink

Humm ok, j'ai plus qu'a essayer ça smile.

Merci.

Hors ligne

 

#17 15-10-2008 16:06:00

bertra
Membre
Date d'inscription: 06-02-2008
Messages: 130

Re: [1.6] Comment déployer efficacement ses projets

gauthier a écrit:

Bonjour Laurent,

le mieux consiste à exécuter phing sur le serveur de prod, ce qui permet de s'épargner le ftp (j'aime pas les ftp) wink

Bonjour gauthier,

Est ce que cela signifie que tu as un client SVN sur ton serveur de prod, que tu fais un update, et que tu utilises phing par la suite pour déployer dans le répertoire de l'application ?

Hors ligne

 

#18 15-10-2008 17:31:31

gauthier
Membre
Date d'inscription: 30-09-2008
Messages: 116
Site web

Re: [1.6] Comment déployer efficacement ses projets

Bonjour Bertra,

Est ce que cela signifie que tu as un client SVN sur ton serveur de prod, que tu fais un update, et que tu utilises phing par la suite pour déployer dans le répertoire de l'application ?

C'est ça à un détail près : il n'est pas nécessaire de faire d'update smile La directive export de SVN permet directement d'extraire d'un repository, y compris distant. Voici un exemple simpliste de fichier de configuration phing :

Code:

<?xml version="1.0"?>
<?xml version="1.0"?>
<project name="PhingTest" default="build">
    <target name="build">
        <echo msg="Export des sources du Zend Framework..." />
        <svnexport
            repositoryurl="http://framework.zend.com/svn/framework/standard/trunk"
            todir="/var/tmp/zf"
            force="true" />
    </target>

    <target name="archive" depends="build">
        <echo msg="Création de l'archive zf.tgz..." />
        <tar destfile="./zf.tgz" compression="gzip">
            <fileset dir="./zf">
                <include name="*" />
            </fileset>
        </tar>
    </target>
</project>

copiez ce code dans un fichier build.xml (nom de fichier de config cherché par défaut par phing), puis exécutez le :

Code:

// pour exporter les sources de phing depuis osn repository svn :
phing
// ou, pour exporter les sources et générer une archive phing-latest.tgz :
phing archive

Tout simplement smile

Notez que phing peut bien entendu également déclencher un update plutôt qu'un export si vous y tenez wink

Pour installer phing, le plus simple consiste à utiliser pear :

Code:

pear channel-discover pear.phing.info
pear install phing/phing
pear install pear/VersionControl_SVN-0.3.1

Et voila, j'arrête là ce mini-tuto ; si vous voulez en savoir plus, go to http://phing.info


Consultant Zend Technologies // Blog perso : Logiciel libre et développement web -- http://freeblogware.org

Hors ligne

 

#19 15-10-2008 18:29:05

bertra
Membre
Date d'inscription: 06-02-2008
Messages: 130

Re: [1.6] Comment déployer efficacement ses projets

Merci Gauthier pour ces infos smile

Dernière modification par bertra (16-10-2008 17:08:28)

Hors ligne

 

#20 15-10-2008 22:10:51

gauthier
Membre
Date d'inscription: 30-09-2008
Messages: 116
Site web

Re: [1.6] Comment déployer efficacement ses projets

Je t'en prie smile


Consultant Zend Technologies // Blog perso : Logiciel libre et développement web -- http://freeblogware.org

Hors ligne

 

#21 16-10-2008 17:30:07

bertra
Membre
Date d'inscription: 06-02-2008
Messages: 130

Re: [1.6] Comment déployer efficacement ses projets

Alors...j'ai jeté un coup d'œil sur Phing.
Dans le cas qui nous intéresse, c'est à dire le déploiement des sources depuis le serveur de dev jusqu'en production, j'ai du mal à en voir l'utilité (mise à part la portabilité du fichier de description).
Pourquoi ne pas écrire un petit script sur le serveur de production qui :
- supprime (ou archive) le répertoire de production actuel (devenu obsolète)
- récupère par cvs un export sur la machine de dev et le dépose sur le serveur de prod, prêt à être exécuté.
?

Hors ligne

 

#22 16-10-2008 17:57:01

philippe
Administrateur
Lieu: Grenoble
Date d'inscription: 01-03-2007
Messages: 1624

Re: [1.6] Comment déployer efficacement ses projets

Je dirais que ça a 3 avantages :
- c'est standard. Si quelqu'un voit un build.xml qui traine, c'est assez simple à lire et il sait quoi en faire
- pour des déploiements plus complexes, il y a un système de dépendance hyper efficace. C'est souvent très pratique.
- ça simplifie la vie pour des tâches courantes dans un déploiement (parcourir des répertoires, exclure ou include des fichiers, synchroniser des arbo, transférer par ftp, ssh,...)

A+, Philippe


twitter : @plv ; kitpages.fr : Création de sites internet à Grenoble et Paris

Hors ligne

 

#23 17-10-2008 09:16:43

gauthier
Membre
Date d'inscription: 30-09-2008
Messages: 116
Site web

Re: [1.6] Comment déployer efficacement ses projets

+3 pour Philippe wink


Consultant Zend Technologies // Blog perso : Logiciel libre et développement web -- http://freeblogware.org

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages