web-dev-qa-db-fra.com

Avez-vous des stratégies efficaces pour lancer une v2 d’un WP site?

Mon équipe et moi travaillons avec un client qui possède un site WordPress existant avec un contenu assez important et un thème personnalisé qu'ils ont créé. Il s’agit d’un blog de groupe, c’est-à-dire que plusieurs blogueurs du monde entier ajoutent et modifient du contenu tout le temps.

Notre travail consiste à créer un thème entièrement nouveau, avec quelques nouvelles fonctionnalités. Certaines de ces fonctionnalités nécessiteront de nouveaux widgets, plug-ins et champs de base de données personnalisés.

Nous travaillons actuellement sur nos propres machines de développement et les intégrons dans un serveur de développement unique. Tout le code est versionné en SVN. Notre administrateur de base de données désigné fusionne manuellement tous les changements de base de données dans la base de données dev dès maintenant, mais il espère pouvoir automatiser cela bientôt.

Nous venons juste de commencer à parler de notre processus de publication de la production. Signification: une fois que nous aurons terminé, comment allons-nous transférer tout notre code personnalisé sur le serveur de production (le serveur en direct) en douceur et avec le moins de perturbations possible?

Nous avons quelques projets en tête, mais j'aimerais savoir comment d'autres se sont également attaqués à ce problème. Existe-t-il des bonnes pratiques à suivre ou des pièges connus à éviter?

12
Mike Lee

Si vous suivez les conseils de SethMerrick, vous pouvez réduire considérablement le temps de basculement en abaissant le TTL des enregistrements DNS appropriés à 5 minutes ou plus, plusieurs heures (en fonction du TTL actuel]). avant de changer l'adresse IP.

En faisant cela, vous indiquez aux serveurs DNS distants de ne mettre en cache l'adresse que pendant 5 minutes. Une fois que vous avez changé l'adresse IP, vous pouvez augmenter le TTL à ce qu'il était auparavant. Pour minimiser davantage l'effet, effectuez la commutation pendant une période de faible trafic.

4
Aaron Terry

Je ne sais pas si cela est applicable, mais je viens de suivre un processus similaire de migration et de mise à niveau simultanées d'un site à fort trafic.

La stratégie de base consistait à travailler sur un serveur de stockage intermédiaire, puis, lorsque tout était prêt, d'effectuer un cliché mysql sur le serveur actif, de l'importer sur le serveur de stockage intermédiaire, d'effectuer tout nettoyage requis, puis de diriger les enregistrements DNS vers le serveur serveur de transfert pour devenir le nouveau serveur live.

Le problème est de fusionner ensuite toutes les données accumulées pendant la propagation DNS vers le serveur de transfert (qui est maintenant le serveur actif). En d'autres termes, si 30 heures s'écoulent entre le moment où vous effectuez votre vidage/mise à jour DNS mysql et la fin de la propagation du DNS, vous devrez fusionner de manière sélective 30 heures d'enregistrements de l'ancien site vers le nouveau.

Ce n'est pas un processus continu, mais au bout d'une semaine, tous les problèmes étaient réglés.

2
SethMerrick

@ Mike Lee: Excellente question, et l'un des Saint Graal de WordPress (ou de l'un des systèmes de gestion de contenu open source grand public que je connais bien, tels que Drupal, Joomla, et autres.)

Bien que ce ne soit certainement pas destiné à traiter votre cas d'utilisation, consultez ma réponse à une question connexe qui décrit un plug-in de niveau bêta que je viens de mettre à disposition via WordPress Answers Exchange appelé WP Migrer les hôtes Web (oui, je crains quand il s'agit de nommer les créations.)

Mais je veux aussi résoudre le cas d'utilisation que vous décrivez avec un plugin et réfléchis actuellement à la manière de le faire. Je pense que la meilleure façon de l’aborder est d’abandonner la résolution générique et d’adresser plutôt les modèles connus qui existent dans WordPress, puis de permettre à quiconque de " accrocher " mon plugin pour. cas d'utilisation spéciaux. Je pense aussi qu'une approche consiste à sérialiser les données et les structures dans WordPress en tant que données dans un fichier PHP, de sorte qu'un futur plug-in puisse appliquer ces modifications en tant que deltas, tout comme un système de contrôle de code source applique les deltas à arriver. à la version actuelle du code source.

Par conséquent, même si je ne réponds pas à votre question ni ne résous votre problème en entier, j'espère vous donner matière à réflexion et espérer que vous-même ou quelqu'un d'autre voudrez peut-être collaborer à une solution éventuelle.

2
MikeSchinkel