php - tipos - objetivos de un ciclo de vida de un proyecto
¿Cómo se gestiona el ciclo de vida de desarrollo de proyectos de PHP? (5)
He trabajado en varios proyectos de PHP y siempre tengo problemas para organizar mi trabajo. ¿Dónde desarrolla su aplicación, en localhost, servidor remoto o tal vez en producción (!)? Cuando trabajo en mi servidor local después de hacer una ruta importante, envío nuevos archivos por ftp, pero a veces se olvida de un archivo y es agotador navegar por varios directorios para copiar archivos modificados. ¿Qué mejores prácticas propones?
Así es como administramos nuestro sitio comercial:
- Desarrollar en una caja de arena local
- Check-in a SVN
- Creación / prueba automatizada desde SVN en el servidor de desarrollo interno
- Implementación con scripts utilizando rsync para el servidor de transferencia para QA / UAT
- Implementación con scripts en servidores de producción.
Los servidores de almacenamiento y producción están alojados por el ISP y son compatibles con el hardware y la versión, y ejecutan RHEL; el servidor Dev interno es compatible con CentOS.
De esta forma, cuando el código llegue a los servidores de producción, no debería haber sorpresas desagradables, ya que incluso los scripts de implementación se revisan en la etapa 4.
Desarrolle en su máquina local la misma configuración exacta que su entorno de desarrollo (es decir, mod apache, extensiones php, etc.), utilizando un sistema de control de versiones (prefiero SVN) para hacer un seguimiento de los archivos modificados y otras cosas.
Luego puede escribir un script en su entorno de producción o prueba para copiar / actualizar archivos del repositorio a la ruta del servidor web.
Estoy desarrollando en una máquina de desarrollo que tiene un entorno idéntico al de producción, que evita algunos comportamientos diferentes debido a las diferentes versiones o configuraciones. Después de terminar, simplemente muevo todos los archivos al servidor de producción.
Winmerge es una herramienta de Windows agradable y gratuita para diferenciar tus archivos entre la máquina de desarrollo y la de producción.
Google App Engine tiene una herramienta adecuada que carga automáticamente a los archivos del entorno de producción que se modifican; no sé si hay algo similar para PHP. Por lo tanto, hacer un script dev2prod (un script que hace esto automáticamente) debería ser una buena solución.
Para hacer una administración de archivos fuente local, todos pueden sugerirle que use un sistema de control de código fuente .
Probablemente me digan que me redirecciona una publicación anterior, pero he aquí cómo lo hago usando herramientas gratuitas:
Uso Netbeans, Git, bitbucket, árbol de fuentes, gitflow y FTPloy.
Bitbucket.com: regístrese para obtener una cuenta gratuita. SourceTree: libre de bitbucket. Gran herramienta para administrar repositorios git. Todos los commits, merges y pulls se pueden hacer aquí. Los problemas en bitbucket se pueden rastrear.
En sourcetree, tome la rama principal y haga clic en "git flow" - google gitflow: es un flujo de trabajo fantástico de funciones, revisiones, desarrollo y ramas de publicación y sourcetree ayuda a automatizar el proceso.
FTPloy.com automatiza la implementación de su rama principal. Gratis es un repo / servidor. Pero vale la pena la actualización si desea impulsar la rama de desarrollo a un entorno limitado del servidor para realizar pruebas.
Espero que esto ayude a alguien a buscar en la web.