2011-05-19 3 views
0

Je me demande comment les gens gèrent le déploiement progressif des fonctionnalités et des versions dans un environnement de production. le scénario est où vous avez deux versions de code testé un déjà en production et un être déployé, ce sont les problèmes communs ..Déployer la nouvelle version d'une application Rails

  • différentes versions de code dans l'application même des rails.
  • différentes versions de l'application rails pendant le déploiement aux utilisateurs.
  • différentes structures de base de données entre la version
  • déplacement de données à travers de nouvelles bases de données et serveurs.

voici quelques idées pour ce qui précède pour la discussion

  • si déclarations constantes, les numéros de version dans les noms M, V, C
  • équilibrage de charge à différents serveurs d'applications (comment faire collante?), RVM
  • ont des champs anciens et nouveaux dans les tables comme temporaires ou migrent des enregistrements vers de nouvelles tables ou des bases de données
    .
  • pas moyen facile de déplacer des données entre serveurs.
+0

Avez-vous déjà trouvé des informations utiles à ce sujet? –

Répondre

0

Il semble que vous ayez besoin d'une bonne stratégie de branchement et de fusion. Si vous utilisez quelque chose comme Git ou SVN, alors n'importe quoi sur le maître ou le tronc, respectivement, devrait être la qualité prête pour la production. Si vous rencontrez des situations où le AbcController est bon et prêt à partir, mais XyzController est floconneux, alors le XyzController a probablement besoin de plus de tests et ne devrait pas être encore en maître.

Les migrations dans des rails suivent également cette règle, ce qui a conduit à votre structure de données. Si vous pensez que vous êtes prêt pour la production, il ne devrait pas y avoir de changements importants dans votre base de données. Peut-être que vous avez besoin d'ajouter une colonne ou une fonctionnalité, mais vous devriez être bien passé refactorings de base de données en gros.

Enfin, télécharger/mettre à jour des données est un problème dans toute situation de migration. Dans mon expérience, cela implique l'écriture de scripts SQL pour effectuer les mouvements, ou mettre à jour la base de données pour une nouvelle fonctionnalité. Ces scripts SQL devraient également être sous votre contrôle de source. Rails peut faciliter cela en écrivant vos scripts de migration dans le fichier de migration lui-même. Selon votre situation exacte, cela peut fonctionner.

+1

le scénario est où vous avez deux versions du code testé déjà en production et un à être déployé, cependant, vous déployez progressivement la nouvelle version signifiant à un moment donné que vous allez avoir des utilisateurs sur différentes versions de code, éventuellement avec différents exigences de bases de données. –

+0

Je ne pense pas que cela réponde à la question. Déployer les mises à jour du framework, les fonctionnalités, etc à 10% de votre base d'utilisateurs est idéal pour minimiser les risques. –

Questions connexes