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


12

Mon équipe et moi travaillons avec un client qui possède un site WordPress existant avec un peu de contenu et un thème personnalisé qu'ils ont créé. Il s'agit d'un blog de groupe, ce qui signifie qu'il a plusieurs blogueurs du monde entier qui ajoutent et modifient du contenu tout le temps.

Notre travail consiste à créer un thème entièrement nouveau, avec pas mal de 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 seul serveur de développement. Tout le code est versionné en SVN. Notre DBA désigné fusionne manuellement toutes les modifications de la base de données dans la base de données de développement pour le moment, mais j'espère qu'il pourra bientôt automatiser cela.

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

Nous avons quelques plans en tête, mais j'aimerais savoir comment d'autres ont également abordé cette question. Y a-t-il des meilleures pratiques à suivre ou des pièges connus à éviter?

Réponses:


4

Si vous suivez les conseils de SethMerrick, vous pouvez réduire considérablement le temps de basculement en abaissant le TTL sur les enregistrements DNS appropriés à 5 minutes ou plus, plusieurs heures (selon ce qu'est le TTL actuel) avant de modifier l'adresse IP.

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


Nous avons juste commencé à faire ça, par hasard. Ça aide vraiment. Nous ne pouvons pas nous permettre une longue période de déploiement. Merci d'avoir ajouté cette astuce!
Mike Lee

Notez que vous devez modifier le TTL autant de temps avant de modifier réellement l'IP . En d'autres termes, si le TTL est d'une semaine, vous devez changer le TTL en 5 minutes une semaine avant de changer l'IP, afin que tout le monde soit sur le nouveau TTL quand vous le faites.
Daniel

2

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 transfert, puis lorsque tout était prêt, à effectuer un vidage mysql sur le serveur en direct, à l'importer sur le serveur de transfert, à effectuer le nettoyage requis, puis à pointer les enregistrements DNS sur le serveur de transfert, provoquant la serveur intermédiaire pour devenir le nouveau serveur en direct.

L'astuce consiste à fusionner ensuite toutes les données qui s'accumulent lors de la propagation DNS dans le serveur de transfert (qui est maintenant le serveur en direct). En d'autres termes, si 30 heures s'écoulent entre le moment où vous effectuez votre vidage / mise à jour DNS mysql et lorsque la propagation DNS est terminée, vous devrez fusionner sélectivement 30 heures d'enregistrements de l'ancien site vers le nouveau.

Ce n'est pas un processus transparent, mais au moment où nous avons eu une semaine sur la route, tous les problèmes se sont atténués.


Dans ce scénario, voudriez-vous rendre l'ancien site effectivement en lecture seule pendant que DNS est en transition pour empêcher les modifications du site qui ne seront pas migrées?
Trevor Bramble

Il s'agit d'une approche alternative, pour empêcher simplement l'ajout de nouvelles données à la base de données de l'ancien site pendant la transition. L'approche que je mentionne ci-dessus, cependant, laisse l'ancien site actif pendant la transition, puis fusionne manuellement toutes les entrées de base de données supplémentaires qui sont apparues pendant la transition (nouveaux messages, commentaires, etc.) dans le nouveau site. edit: je voulais juste mentionner que la suggestion d'acterry sur TTL Records est un conseil fantastique.
SethMerrick

Nous avons fait quelque chose de similaire à cela. Pas transparente, mais bon, ça marche.
Mike Lee

2

@Mike Lee: Grande question, et l'un des Saint-Graal de WordPress (ou l'un des CMS open source grand public que je connais d'ailleurs comme Drupal, Joomla, et al.)

Bien qu'il ne soit certainement pas destiné à répondre à votre cas d'utilisation, consultez ma réponse à une question connexe qui décrit un plugin de niveau bêta que je viens de rendre disponible via WordPress Answers Exchange appelé WP Migrate Webhosts (oui, je crains quand il s'agit de nommer des créations .)

Mais je veux également résoudre le cas d'utilisation que vous décrivez avec un plugin et je réfléchis actuellement à la façon d'y parvenir. Je pense que la façon de l'aborder est de renoncer à le résoudre de manière générique et de répondre aux modèles connus qui existent dans WordPress, puis de permettre à quiconque de " brancher " mon plugin pour des cas d'utilisation spéciaux. Je pense également qu'une approche consiste à sérialiser les données et les structures dans WordPress en tant que données dans un fichier PHP afin qu'un futur plugin puisse appliquer ces modifications en tant que deltas, tout comme un système de contrôle de code source applique des deltas pour arriver à la version actuelle de la source code.

Donc, même si je ne réponds pas ou ne résout pas votre problème dans son intégralité, j'espère que je vous donne matière à réflexion et j'espère également que vous ou quelqu'un d'autre voudrez peut-être collaborer à une éventuelle solution.


WP Migrate Webhosts ressemble à un plugin indispensable. Merci de partager cela et cette rétroaction!
Mike Lee

Oui, je le pense. J'espère obtenir une collaboration afin que moi et d'autres puissent la faire évoluer pour qu'elle soit très utile! Merci pour le vote positif.
MikeSchinkel
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.