Pregunta

Aquí es cómo nuestra solución de desarrollo de PHP actual está configurado:

Cada obra desarrollador en su máquina local. Cada desarrollador cometer su cambio a un servidor SVN común (intranet). Un gancho de cometer cargar el cambio en el servidor de ensayo y realizar tareas validaciones. Cuando el producto está listo, manualmente desplegarlo en el servidor de producción a través de SFTP.

Nota:. La mayoría - si no todos - de las veces no tengo acceso SSH al servidor, sólo se SFTP

Podría automatizar el despliegue en el servidor de producción de la misma forma en que el servidor de ensayo se actualiza pero esta solución sólo funciona en un solo sentido. ¿Cómo puedo volver a una revisión anterior en caso de problemas?

¿Cómo puedo mejorar esta solución?

Gracias y lo siento por mi Inglés.

¿Fue útil?

Solución

Si se puede configurar el servidor de producción para acceder al repositorio SVN a través de un canal seguro, como https con WebDAV tal vez intente lo siguiente:

Crea una secuencia de comandos en el servidor de producción que le permite entrar en un directorio de la etiqueta y / o el número de revisión / fecha y realizar una exportación SVN. De esta manera, el servidor prod está tirando de los cambios de SVN.

Ahora, si usted tiene una manera de tener este script llamado de forma segura desde, digamos que un script confirmación. Voila, usted tiene la automatización.

Lo más importante es que no desea una actualización automática realizada al servidor prod que no estaban planeando para.

Para resolver este:

El script comprometerse sólo debe llamar al script de actualización prod cuando se compromete a algo "/ ruta / a / etiquetas / release / dir"

Marca personal de control de cambio sólo es apropiado segura (o quien actualmente controla el deplyment prod manual) tener la capacidad de realizar una copia de SVN a este directorio en el repositorio.

Por ejemplo, supongamos que su cesión temporal se constituye como:

/yourWebsite
--> /branches
--> /trunk
--> /tags
----> /releases

El compromiso que activaría el despliegue automático de prod sería algo así como:

svn copy https://mySvnRepo/yourWebSite/trunk \
   https://mySvnRepo/yourWebSite/tags/releases/x.y \
   -m "Tagging for production deployment"

Deshacer puede lograrse al hacer un commit a un directorio de las versiones anteriores. Tenga en cuenta sin embargo, que esto no hará que los nuevos archivos que se han añadido que revertirse.

Por supuesto, su experiencia puede variar; esto es sólo una sugerencia para su investigación . Debe tomar tiempo para considerar las implicaciones de seguridad y el potencial para el desastre si se configura incorrectamente.

Espero que esta ayuda, aunque sólo sea para conseguir que pensar en otras soluciones.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top