Existen varias herramientas que podrían usarse para la implementación automatizada, la sincronización de repositorios, la depuración remota o lo que no. Di una charla sobre una configuración de WordPress para grandes proyectos durante un WordCamp Boston alojado por MIT:
SiteGround admite SSH incluso en planes inferiores para que pueda manejar algunas partes de la automatización en consecuencia.
En primer lugar, puede clonar directamente un repositorio git allí . Tu también puedes:
- ¿Pueden existir algunos plásticos en buenas condiciones en un entorno criogénico, para una impresora 3D?
- ¿Se utiliza el aprendizaje automático en la ciencia forense?
- ¿Cómo funciona la cámara de araña utilizada en el cricket?
- ¿Cómo se verán afectadas las instituciones financieras tradicionales por la tecnología Blockchain en el futuro?
- ¿Cuáles son las características más disruptivas del Apple Watch?
- Empuje directamente al repositorio de producción desde su instalación local, o
- Empuje a un repositorio alojado GitHub / Bitbucket con un webhook que se implementa en producción.
Además de eso, hay algunas herramientas de implementación automatizadas maravillosas como Capistrano, Chef o Ansible que puede aprovechar, pero que requerirían una cuenta administrada, DPS o en la nube.
De cualquier manera, un repositorio de git resolvería la base de código .
En términos de copias de seguridad, realmente no necesita extraerlas localmente ni nada, solo asegúrese de tener copias de seguridad automáticas en ejecución y de que haya una manera viable de restaurar la producción en caso de que algo salga mal.
Quedan tres cosas principales:
- Archivos de configuración / configuración
- Base de datos
- Medios de comunicación
La configuración podría almacenarse en la base de datos (diferentes opciones para localhost, puesta en escena y producción) o dentro de su base de código (wp-config.php, sus complementos, el tema). Por lo general, establecemos algunas constantes locales en un archivo local wp-config-local.php que se incluye en el archivo principal wp-config.php.
Esto garantiza que cada desarrollador tenga un archivo de configuración local sin anular los datos de producción, y almacena algunas opciones específicas en consecuencia. Los complementos comprueban el WP_DEV más o menos constante y pueden cargar diferentes claves API, deshabilitar correos electrónicos de producción o realizar otras actividades dependientes del entorno.
Con respecto a la sincronización de la base de datos, esa es la parte más complicada de todas.
Combinamos diferentes enfoques, desde volcados de bases de datos regulares desde la producción (o simplemente exportando contenido desde el panel de control si es posible) hasta ejecutar una estrategia de “base de datos remota” con un servidor separado con una base de datos compartida.
El primer enfoque ( volcados regulares de la base de datos ) es más lento y podría automatizarse con un script bash conectado a capistrano. Un breve script bash puede ejecutar un mysqldump de su base de datos local, limpiar algunos datos confidenciales (cuentas de usuario, pedidos, compras), empujar a producción, importar.
La base de datos compartida tampoco es ideal, pero funciona para actividades de colaboración cuando tenemos de 6 a 8 desarrolladores trabajando en el mismo proyecto. Es más fácil que pedirles a todos que extraigan y sincronicen sus copias locales varias veces al día.
Hay un par de complementos de los que he oído hablar varias veces, pero aún no les hemos dado una buena prueba:
- RAMPA
- Sincronización de base de datos
Para los medios , a menudo eliminamos los medios en nuestras copias de seguridad, usamos una solución de medios remota (obteniendo medios de un recurso provisional en lugar de descargar decenas de gigabytes de carpetas de medios), o simplemente alojando en un cubo S3.
Cuando sincroniza sus entornos (especialmente con Amazon S3), puede ejecutar la misma versión de medios y activos localmente y en línea, lo que resolverá el problema con imágenes y videos.
Las soluciones más profesionales requieren mucho tiempo pero pueden automatizarse en consecuencia. Considere ejecutar un conjunto de contenedores Docker en ambos entornos que se sincronice fácilmente o configure un entorno VVV replicado localmente que se parezca lo más posible a su producción.