Mi equipo y yo estamos trabajando con un cliente que tiene un sitio de WordPress existente con bastante contenido y un tema personalizado que crearon. Es un blog grupal, lo que significa que tiene varios bloggers en todo el mundo que agregan y editan contenido todo el tiempo.
Nuestro trabajo es crear un tema completamente nuevo, con bastantes características nuevas. Algunas de estas características requerirán nuevos widgets personalizados, complementos y campos de bases de datos.
Actualmente estamos trabajando en nuestras propias máquinas de desarrollo y las estamos integrando en un único servidor de desarrollo. Todo el código está versionado en SVN. Nuestro DBA designado está fusionando manualmente cualquier cambio de base de datos en la base de datos de desarrollo en este momento, aunque esperamos que pueda automatizarlo pronto.
Acabamos de empezar a hablar sobre nuestro proceso de lanzamiento de producción. Significado: una vez que hayamos terminado, ¿cómo vamos a obtener todo nuestro código personalizado en el servidor de producción (en vivo) sin problemas y con la menor interrupción posible?
Tenemos algunos planes en mente, pero me encantaría saber cómo otros han abordado este problema también. ¿Hay alguna mejor práctica a seguir o escollos conocidos para evitar?
No estoy seguro de si esto es aplicable, pero acabo de pasar por un proceso similar de migrar y actualizar simultáneamente un sitio de alto tráfico.
La estrategia básica era trabajar en un servidor provisional, luego, cuando todo estuviera listo, hacer un volcado mysql en el servidor en vivo, importarlo al servidor intermedio, hacer cualquier limpieza requerida, luego apuntar los registros DNS al servidor intermedio, causando el servidor provisional para convertirse en el nuevo servidor en vivo.
El truco es fusionar todos los datos que se acumulan durante la propagación de DNS en el servidor provisional (que ahora es el servidor en vivo). En otras palabras, si transcurren 30 horas entre el momento en que realiza el volcado / actualización de DNS de mysql y cuando se completa la propagación del DNS, deberá fusionar selectivamente 30 horas de registros del sitio antiguo al nuevo.
No es un proceso continuo, pero para cuando teníamos una semana en el camino, todos los problemas se habían solucionado.
fuente
@ Mike Lee: Gran pregunta, y uno de los santos griales de WordPress (o cualquiera de los principales CMS de código abierto con los que estoy familiarizado para ese asunto, como Drupal, Joomla, et al.)
Si bien ciertamente no está destinado a abordar su caso de uso, consulte mi respuesta a una pregunta relacionada que describe un complemento de nivel beta que acabo de poner a disposición a través de WordPress Answers Exchange llamado WP Migrate Webhosts (sí, apesta cuando se trata de nombres creativos .)
Pero también quiero resolver el caso de uso que describe con un complemento y actualmente estoy pensando en cómo lograrlo. Estoy pensando que la forma de abordarlo es dejar de resolverlo genéricamente y, en cambio, abordar los patrones conocidos que existen en WordPress y luego permitir que cualquier otra persona " enganche " mi complemento para casos de uso especiales. También estoy pensando que un enfoque es serializar los datos y las estructuras en WordPress como datos en un archivo PHP para que un complemento futuro pueda aplicar esos cambios como deltas al igual que un sistema de control de código fuente aplica los deltas para llegar a la versión actual de la fuente código.
Entonces, si bien no estoy respondiendo o resolviendo su problema en su totalidad, espero darle una buena idea para pensar y también espero que usted u otra persona quieran colaborar en una eventual solución.
fuente