Nuestra experiencia en esta implementación de DevOps para WordPress
Con la intención de mejorar el control de versiones, la calidad y la seguridad, uno de nuestros clientes nos solicitó implementar DevOps para WordPress sobre Azure.
La implementación de un sitio web en WordPress utilizando DevOps no es algo nuevo, basta con darse un paseo por Internet para confirmar que ya se ha puesto en práctica. Pero una cosa es escuchar la experiencia de los demás y otra muy distinta es vivir la propia.
Nuestra experiencia con DevOps
Nuestra primera tarea fue buscar referentes sobre este tipo de implementaciones y nuestra primera sorpresa fue la ausencia de experiencias que hablaran sobre despliegues continuos o actualizaciones al sitio web. En las fuentes revisadas, que no fueron pocas, solo se mencionaba la implementación inicial.
De acuerdo con nuestra experiencia, al hacer actualizaciones de plugins o de elementos de configuración del website, no hay riesgo al hacerlo en desarrollo y enviarlo por el pipeline de DevOps. Si bien esto no genera mayor complicación, no sobra tener algo de precaución con los enrutamientos internos del sitio. Lo que sí puede convertirse en un problema mayor es cuando un sitio web en ya publicado, es alimentado por varias personas de manera simultánea en el ambiente de producción.
¿Por qué un problema que varias personas actualicen WordPress?
Los colaboradores agregan el contenido directamente al blog en el ambiente de producción, sin necesidad de pasar por el pipeline de DevOps y los cambios de configuración, diseño y plugins nuevos, se agregan en desarrollo y se despliegan en pruebas y producción a través del pipeline.

En ambos casos se toca la base de datos y esto representa un riesgo, pues la actualización implica sobreescribir y en ese proceso se puede perder contenido agregado en producción.
Así fue nuestra primera aproximación de DevOps para WordPress
Nuestra primera tarea consistió en identificar cuáles tablas eran alteradas por la instalación de nuevos plugins y extensiones, y cuáles eran alteradas por los contenidos. De este modo podríamos actualizar únicamente los datos adicionados por los plugins.
La investigación nos permitió deducir que tanto el contenido como las actualizaciones de plugins y extensiones agregan elementos a diversas tablas en la base de datos; en algunas ocasiones son las mismas.
Encontramos también que la complejidad, al actualizar cualquier detalle, se podría multiplicar si intentábamos buscar cada nuevo elemento en cada tabla de la base de datos. Esto debido a que hay muchos plugins que no tienen especificado en la documentación qué tablas de la base de datos utilizan para su funcionamiento.
Y aun teniendo la información de qué elementos de la base de datos, altera cada uno de los plugins, sería muy difícil automatizar este proceso.
Así lo resolvimos Devops para WordPress
Está claro que la prioridad es mantener los ambientes de calidad y producción actualizados, sin correr el riesgo de perder información. Para lograr este propósito encontramos un camino en el que calidad fuera espejo de producción para los contenidos. ¿Cómo lo hicimos?
Para lograr que el ambiente de calidad estuviera actualizado en todo momento, con los contenidos agregados en producción, usamos el plugin wp sistesync. Esta herramienta nos permite actualizar de manera simultánea el contenido en los dos ambientes.
En otras palabras: la base de datos de calidad va a estar actualizada en contenido gracias al plugin wp sitesync, mientras que el diseño y funcionalidad serán posibles gracias a las prácticas de DevOps implementadas.
Configuramos el Target de la herramienta wp site Sync para que apunte al ambiente de pruebas y nos aseguramos de, al momento de agregar una nueva entrada, actualizar en Update y en Push to Target.
Muchas soluciones son más simples de lo que podemos imaginar, pero llegar a ellas implica transitar por caminos complejos. Eso es lo que hacemos en Castor: recorremos todos los caminos posibles hasta encontrar las soluciones que mejor resuelvan los problemas.
Este artículo fue co-escrito junto con Fabio Oquendo quien es el cerebro detrás de toda la instalación.
________________________________
Enlaces de interés:
https://castor.com.co/lo-que-encontramos-al-comparar-dotnetnuke-dnn-vs-wordpress/
Mantente al tanto de nuestras publicaciones a través de nuestras redes sociales: LinkedIn, Instagram y Twitter.
2 Responses
Gracias por los comentarios sobre devops con wordpress les agradeceria que en el sitio agreguen como lo configuraron o lo que producen en sus lectores tecnicos es que terminen totalmente inconformes con el articulo y su experiencia sea terrible como me paso a mi por la perdida de tiempo que me ocasionaron.
Muchas gracias a ti por tu comentario Andrés. Lamentamos que el artículo te haya ocasionado una pérdida de tiempo. Lamentablemente no está pensado para ser una guía detallada paso a paso. La configuración se hizo similar a cualquier implementación, los problemas que tuvimos fueron ocasionados por la naturaleza de creación de entradas directamente en el administrador de WP. Las imágenes en el artículo puede que te ayuden un poco.