Question

Je l'ai vu des morceaux de ce problème résolu autour du filet, mais je suis encore confus, donc je pensais que je demande aux gens intelligents à Stack Overflow à ce sujet.

Nous sommes une petite start-up et au moment de notre flux de travail de Développement -> production implique-ment ftp et téléchargement juste le code dev.

Le code dev est sous contrôle subversion - bien que nous n'avons pas troncs / tags / branches tiré parti depuis que je ne suis pas une bonne idée de la façon de mieux utiliser cette structure. Je pense qu'il devrait y avoir une intégration transparente avec le site en direct qui ne me demande pas de dossiers-coller et copier des fichiers.

Voici quelques détails: - le développement de CakePHP + MySQL - hébergé au Temple Media (gs) - les développeurs utilisent Mac OS (Coda) et Windows (Dreamweaver)

Alors ma demander est: comment configurer-vous un flux de travail approprié évolutif

Était-ce utile?

La solution

Votre flux de travail semble approprié pour une petite organisation qui ne dispose pas d'assurance qualité. Je vous conseille d'investir des ressources dans

1) Construire les versions de production et un système de version afin que vous puissiez suivre vos communiqués de production avec précision. Tag chaque version afin que vous puissiez suivre.

2) Construire un installateur. Ne pas recourir à la copie manuelle des dossiers parce que vous pouvez faire une erreur. Un programme d'installation permet également de suivre facilement quand quelque chose va mal dans la production.

3) Est-ce une QA sur la production avant de déployer. Même un peu AQ va un long chemin. Les développeurs ne sont pas bons testeurs car ils pourraient être biaisées vers les « caractéristiques » du programme.

4) Ne vous embêtez pas avec des branches tout de jusqu'à ce que vous avez réellement l'utiliser. Alors seulement, il deviendra clair que la structure dont vous avez besoin. La subversion livre rouge a quelques idées sur la façon de structurer vos branches.

Autres conseils

Une façon que je l'ai fait dans le passé est d'avoir le code de production effectivement être un client de subversion en direct, en tirant la branche « production ».

Alors vous faites votre travail comme d'habitude sur la branche de développement, et chaque fois que vous êtes prêt, vous coupez une copie à la branche de production. Synchroniser les serveurs de production, et vous êtes en direct. Si quelque chose va mal, vous pouvez toujours resynchroniser à l'ancienne version.

Pour des points supplémentaires, vous pouvez ajouter une branche de mise en scène, de sorte que vous pouvez attraper toutes les choses qui ont changé que ne sont pas dans votre code. Ensuite, vous les ajoutez à un script de déploiement qui ajustera les systèmes de production, au besoin.

Je pense que l'élément clé à considérer est d'inclure le plus processus et flux de travail qui permettra d'améliorer la qualité du code et de réduire vos efforts à déployer. L'essentiel est de commencer à créer certaines de ces choses lorsque votre base de code est installée. Dans les premiers jours où tout change rapidement vous dépenser plus de temps que la mise à jour des scripts vous libérerons les scripts.

Je recommande les choses suivantes:

  1. Créer un script automatisé de construction. Il existe de nombreuses technologies différentes et les langages de script qui peuvent être utilisés (je préfère Ant) pour extraire vos fichiers de contrôle de code source, l'incrément automatiquement les numéros de version, ajouter balises et créer les packages de déploiement. Cela peut prendre une grande quantité d'efforts pour installer et démêler les tâches que les développeurs sont en train de faire, mais cela va payer énormément à long terme. Il devrait libérer vos développeurs de la tâche répétitive de la construction et leur permettre de se concentrer sur la résolution de vos problèmes techniques. Comme vous le savez, les développeurs se lassent de faire la même chose et plus et quand vous vous ennuyez vous commencez à faire des erreurs.

  2. installation automatisée . Ceci est un avantage marginal alors que les choses sont encore dans une phase de développement rapide, mais à long terme, il permettra de libérer des ressources qui pourraient être mieux utilisées ailleurs. À tout le moins, vous devriez avoir un package d'installation et les étapes d'installation pour le déploiement de votre code.

  3. Mise en scène Environnement . On pourrait dire que ce n'est pas nécessaire jusqu'à ce que votre base d'utilisateurs est assez grand qu'ils commencent sqawking lorsque le système de production disparaît lorsque vous codez déployer. Il est important d'avoir un système qui vous permet de tester vos modifications sans discomforting votre base d'utilisateurs. Mais bien sûr, cela nécessite aussi un effort d'assurance qualité. Vous avez certainement besoin des tests avant le déploiement. Les développeurs supposent toujours qu'ils ont raison et ont jamais manqué quoi que ce soit, mais ils ne devraient jamais être cru. Il y a toujours un chemin de code différent ou une nouvelle permutation de clics qu'ils jamais pensé.

  4. Sauvegarde votre SVN . Cela va sans dire, mais je travaille pour une entreprise où notre référentiel source n'a pas été sauvegardé depuis plus de deux ans. Vous pouvez sauvegarder en faire une svndump puis copier le fichier résultant vers un autre emplacement. Vous pouvez aussi sauvegarder les dossiers dans lesquels votre référentiel existe et puis restaurer en cas de problème.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top