2009-11-10 3 views
2

Voici comment notre solution actuelle de développement php est mis en place:Besoin de conseils sur ma solution de développement de PHP

Chaque travail de développeur sur leur machine locale. Chaque développeur valide sa modification sur un serveur SVN commun (intranet). Un hook de validation charge la modification sur le serveur de transfert et effectue les tâches de validation. Lorsque le produit est prêt, manuellement le déployer sur le serveur de production via SFTP.

Remarque: La plupart du temps, sinon tous, je n'ai pas d'accès SSH au serveur, seulement SFTP.

Je pourrais automatiser le déploiement sur le serveur de production de la même manière que le serveur de transfert est mis à jour mais cette solution fonctionne uniquement à sens unique. Comment puis-je revenir à une révision précédente en cas de problème?

Comment puis-je améliorer cette solution?

Merci et désolé pour mon anglais.

+1

Si vous avez un accès SFTP (ne pas confondre avec FTPS), vous avez également un accès SSH.Essayez simplement de vous connecter au serveur avec votre combinaison utilisateur/laissez-passer et vous y arriverez. – Frankie

+2

De nombreuses configurations SFTP vous empêchent de faire quoi que ce soit avec ce shell autre que SFTP. Je sais que tous mes serveurs abandonnent votre connexion avec un joli message «partez». –

+0

Paul McMillan a raison, je peux seulement faire SFTP avec le shell –

Répondre

4

Si vous pouvez configurer le serveur de production pour accéder au repo SVN via un canal sécurisé, comme https avec webdav peut-être essayer ce qui suit:

Créer un script sur le serveur de production qui vous permet d'entrer une balise répertoire et/ou numéro de révision/date et effectuer une exportation svn. De cette façon, le serveur prod tire les modifications de svn. Maintenant, si vous avez un moyen d'appeler ce script de manière sécurisée, par exemple un script de validation. Voila, vous avez l'automatisation. Plus important encore, vous ne voulez pas qu'une mise à jour automatique soit effectuée sur le serveur prod pour lequel vous n'aviez pas planifié.

Pour résoudre ceci:

Le script ne devrait appeler le script de mise à jour de prod commettre quand quelque chose est déterminé à «/chemin/vers/tags/release/dir »

Assurez-vous que le personnel de contrôle des changements appropriés (ou celui qui contrôle actuellement le développement manuel) a la possibilité d'effectuer une copie svn vers ce répertoire dans le repo.

Par exemple, supposons que votre pension est défini comme:

/yourWebsite 
--> /branches 
--> /trunk 
--> /tags 
----> /releases 

COMMIT qui déclencherait le déploiement automatique pour prod serait quelque chose comme:

svn copy https://mySvnRepo/yourWebSite/trunk \ 
    https://mySvnRepo/yourWebSite/tags/releases/x.y \ 
    -m "Tagging for production deployment" 

Le laminage peut être réalisé de nouveau par faire un commit à un répertoire de versions précédentes. Notez cependant que cela ne provoquera pas l'annulation des nouveaux fichiers ajoutés.

Bien sûr, votre kilométrage peut varier; ceci est seulement une suggestion pour votre enquête . Vous devez prendre le temps de prendre en compte les implications de sécurité et les risques de catastrophe si elles ne sont pas correctement configurées.

J'espère que cela aidera, même si ce n'est que pour vous faire penser à d'autres solutions.

+0

Merci pour votre réponse, c'est une excellente idée. –

Questions connexes