JeuWeb - Crée ton jeu par navigateur
Déploiement automatisé - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Déploiement automatisé (/showthread.php?tid=4786)



Déploiement automatisé - Zamentur - 03-05-2010

Bonjour à tous,
Récemment des amis qui travaillent sur un jeu en ligne m'ont contacté pour savoir ce que je pensais bon de faire pour déployer une application.
Ils m'ont demandé çà car leur jeu avance pas mal, ils en sont désormais à une phase ou il vont devoir déployer régulièrement le jeu sur un serveur test, puis un serveur prod.

Actuellement ils travaillent tous en local via un dépot subversion que je leur fournis.

Moi même j'ai une dizaine de siteweb, certains notamment sont basé sur MultiMorph mon CMS. Et j'avoue que quand je fais une mise à jour j'aurais bien besoin d'un système avec un simple bouton sur le panel admin du site pour mettre à jour quand une nouvelle version de MultiMoprh est prêtes.

Donc suite à ce mail j'ai imaginé un système capable de gérer ces problématiques et notamment de prendre directement la maj depuis le svn. Et çà grâce à ssh ou au module subversion de php, le tout avec une convention dans mon dossier tag pour savoir quel est la dernière version et son stade (alpha, beta, prod), et des fichiers dans chaque version permettant l'upgrade depuis la version précédente ou le downgrade depuis la version suivante.

Mais avant de le coder je me suis dit que çà devait exister, j'ai donc cherché...
Je n'ai rien trouvé qui me satisfait totalement, j'ai notamment été voir du coté de symfony avec sa commande project:deploy, en fait c'est un rsync amélioré.

Je me suis aussi penché sur pear, car le système que j'avais imaginé était un système ressemblant au packet débian de linux. Et pear fait un peu la même chose... Je trouve cependant que pear nécessite beaucoup de fichier, j'ai bien pensé à pyrus et SimpleChannelServer qui serait une solution mais je ne suis pas pleinement satisfait, car je ne suis pas sur qu'il soit aisé de lié svn et le simplechannelserver.

Cette problématique est importante à mes yeux car dans la maintenance d'un jeu il est très important de ne pas développer en live sur le jeu, si vous le faite comme je l'ai fait pour mon jeu Ragol, vous verrai qu'à force vous ferrez des erreurs d'inattention, et vous obtiendrez une réputation de jeu boggué!

Donc je viens à la pèche aux infos:
Comment gérer vous cette problématique?
Quel procédure mettez vous en place pour valider un ajout de fonctionnalité et en arriver à la produire?
Comment gérer vous votre dossier tag svn?
Votre système vous permet t'il de mettre à jour en sautant des versions?
Comment gérer vous la problématique de la maj bdd, cache et autorisation de dossier?
Est ce que j'oublie quelques choses d'important?
Quels sont vos idées d'amélioration?


RE: Déploiement automatisé - Zamentur - 03-05-2010

Comme je suis pas en France en ce moment et que vous dormez tous, je vous tiens au courant de mes recherches.

Donc j'ai regardé du coté de Capistrano, le problème c'est qu'il faut ruby en plus de php. Ceci étant Fredistrano s'en inspire et est écrit en PHP.

J'ai aussi regardé du coté de sourceforge, et j'ai trouvé Automatic Deployement Script, je suis en train de l'essayer, c'est assez simple de construction mais je pense que c'est ce qu'il faut. Il manquerait plus qu'un installeur soit plus lourd à installer que le site!

Il y aussi phing qui inclut plein de chose dont ça.

A force de chercher je me dit qu'il peut être bon aussi de refaire passer les tests unitaires, et demander validation en cas de score non parfait.


RE: Déploiement automatisé - Sephi-Chan - 03-05-2010

J'allais effectivement te proposer Capistrano, qui est vraiment bien et simple, aussi bien dans la mise en place que dans l'utilisation. Smile
De nombreuses entreprises l'utilisent.


Sephi-Chan