Nous parlons actuellement de déployer un site Web via rsync. Cependant, lors de la synchronisation, l'application est laissée dans un état incohérent, car certains fichiers peuvent déjà être synchronisés alors que d'autres restent avec l'ancienne version. Comment les gens traitent-ils ce problème? Je suppose que le même problème existe lors du déploiement via svn/git/cvs. Devrais-je simplement fermer le site, rsync, et ouvrir à nouveau? Ou les gens ignorent-ils simplement ce problème d'incohérence?Déployer avec rsync (ou svn, git, cvs) et ignorer un état incohérent pendant le déploiement?
Répondre
Utilisez un déploiement en deux étapes. rsync dans un répertoire de test, idéalement, testez-le, puis échangez les déploiements de production et de test. La première fois que vous effectuez cette opération, vous n'avez peut-être pas de répertoire de test prêt à l'emploi, mais vous pouvez résoudre ce problème simplement en effectuant un rsync de la production à l'essai.
Comment réaliseriez-vous un tel échange? Idéalement, cela ne devrait pas nécessiter de redémarrage du serveur Web. La seule façon de l'imaginer est de créer un lien symbolique entre la racine du document et l'environnement de production actuel. Ensuite, le commutateur serait de déplacer le lien symbolique. Est-ce possible sans supprimer d'abord le lien? – zedoo
Cela ne fonctionnera probablement pas très bien, voire pas du tout. Le meilleur moyen d'échanger deux serveurs Web est l'équilibrage de charge. Laissez les deux serveurs s'exécuter simultanément, supprimez l'ancien de la boucle et fermez-le lorsqu'il devient inactif (fin de la dernière réponse). Bien sûr, cette technique a des implications importantes sur la façon dont vous effectuez les mises à niveau. Par exemple, vos mises à niveau de base de données doivent avoir lieu à l'avance pendant que l'ancien système est en ligne, et doivent être bénignes du point de vue de l'ancien système. –
Ok, je vais réfléchir si cela vaut l'effort de mise en œuvre. Vous ne pouvez pas recommander un livre sur le sujet pouvez-vous? – zedoo
- 1. Compresser JS et CSS pendant le déploiement
- 2. Utiliser git pour déployer sur un cluster
- 3. Oracle: OALL8 est dans un état incohérent
- 4. Ignorer la révision sur git-svn fetch?
- 5. MSMQ État incohérent après redémarrage
- 6. Utiliser git-svn avec un repo existant manquant .git/svn/
- 7. git ou svn pour le serveur web?
- 8. Utiliser Git ou SVN avec un serveur web
- 9. CVS Bridge à SVN
- 10. état Git un peu déroutant
- 11. récursive CVS ajouter des fichiers/répertoires et ignorer les fichiers existants CVS
- 12. Git avec deux repos à distance, un git, un svn
- 13. Chargement de fichiers JAR pendant le déploiement ou le développement
- 14. git-svn et un grand projet
- 15. Utiliser git et svn avec plusieurs développeurs
- 16. java.sql.SQLException: OALL8 est dans un état incohérent Sur weblogic 9
- 17. Ignorer SVN ignore ... possible?
- 18. Utilisation de git-svn avec le projet svn existant
- 19. Un état incohérent est-il autorisé dans une transaction?
- 20. Personnalisé git diff pour ignorer certains conflits
- 21. Cloner plusieurs projets SVN avec git-svn
- 22. SQLException intermittent: OALL8 est dans un état incohérent
- 23. Déployer le code sans les liaisons SVN
- 24. Transférer SVN vers un référentiel CVS
- 25. Comment utiliser git pour le déploiement?
- 26. Comment ignorer des fichiers ou des dossiers dans un projet SVN
- 27. Points externes SVN dans un référentiel CVS
- 28. Git-SVN avec plusieurs succursales?
- 29. git-svn dcommiter un seul commit git
- 30. git-svn fusionne et commente
Non relatif à la programmation - appartient sur superuser.com? –