Pregunta

He visto piezas de este problema resuelto por la red, sin embargo, todavía estoy confundido, así que pensé que le pediría a la gente inteligente en desbordamiento de pila sobre esto.

Somos una empresa pequeña y en el momento de nuestro flujo de trabajo Desarrollo -> producción implica ftp-ción y acaba de subir el código prog.

El código dev está bajo control de la subversión - aunque no hemos aprovechado troncos / tags / ramas, ya que no tengo una buena idea de cómo utilizar mejor esta estructura. Siento que debería haber una perfecta integración con el sitio vivo que no me exige copiar y pegar carpetas y archivos.

He aquí algunos detalles: - el desarrollo de CakePHP + MySQL - alojado en Media Temple (GS) - los desarrolladores pueden utilizar tanto en Mac OS (Coda) y Windows (Dreamweaver)

Así que mi hacernos es: ¿cómo configurar un flujo de trabajo escalable adecuada

¿Fue útil?

Solución

Su flujo de trabajo parece adecuado para una organización pequeña que no tiene control de calidad. Yo aconsejaría invertir algunos recursos en

1) Construir comunicados de producción y tener un esquema de versión para que pueda realizar un seguimiento de sus comunicados de producción con precisión. Etiquetar cada lanzamiento, para que pueda seguirlo.

2) Construir un instalador. No recurrir a la copia de carpetas de forma manual, ya que podría cometer un error. Un instalador también hace que sea fácil seguir cuando algo va mal en la producción.

3) Haga un poco de control de calidad en la producción antes de implementar. Incluso un poco de control de calidad va un largo camino. Los desarrolladores no son buenos probadores ya que podrían estar sesgados hacia las "características" del programa.

4) No se moleste con ramas por el momento hasta que realmente tiene que usarlo. Sólo entonces será puesto de manifiesto la estructura que necesita. La subversión rojo-libro tiene algunas ideas sobre cómo estructurar sus ramas.

Otros consejos

Una forma que he hecho esto en el pasado es tener el código de producción en realidad sea un cliente de la subversión en vivo, sacando la rama 'producción'.

Por lo que hace su trabajo como de costumbre en la rama de desarrollo, y cuando esté listo, se corta una copia a la rama de producción. Sincronizar los servidores de producción, y que está vivo. Si algo va mal, siempre se puede sincronizar con la versión anterior.

Para obtener puntos adicionales, puede agregar una rama puesta en escena, por lo que puede capturar todas las cosas que cambiaron de que no son en el código. Luego se agregan a un script de implementación que ajustar los sistemas de producción, según sea necesario.

Creo que la clave que hay que tener en cuenta es incluir la mayor cantidad de procesos y flujos de trabajo que mejorará la calidad del código y reducir el esfuerzo de implementar. La clave es empezar a crear algunas de estas cosas cuando su código base se ha establecido. En los primeros días en que todo está cambiando rápidamente que van a pasar más tiempo en actualizar los scripts de lo que será el ahorro con las secuencias de comandos.

Yo recomendaría lo siguiente:

  1. Crear una secuencia de comandos de creación automatizado. Hay muchas tecnologías diferentes y lenguajes de programación que se pueden utilizar (yo prefiero Ant) para extraer los archivos de control de origen, incrementar automáticamente los números de versión, añadir las etiquetas y crear los paquetes de implementar. Esto puede tomar una gran cantidad de esfuerzo para configurar y desentrañar las tareas que los desarrolladores están haciendo actualmente, pero esto se verá recompensado enormemente en el largo plazo. Se debe liberar a los desarrolladores de la tarea repetitiva de la construcción y permitir que se enfocan en resolver sus problemas técnicos. Como saben, los desarrolladores se aburren haciendo lo mismo una y otra vez y cuando te aburres de empezar a hacer errores.

  2. instalación automatizada . Esta es una ventaja marginal, mientras que las cosas están todavía en una etapa de rápido desarrollo, pero en el largo plazo se liberarán los recursos que podría ser mejor gastado en otro lugar. Por lo menos, usted debe tener un paquete de instalación y pasos de instalación para el despliegue de su código.

  3. Staging Medio Ambiente . Se podría argumentar que esto no es necesario hasta que su base de usuarios es suficiente que empiezan sqawking grande cuando el sistema de producción desaparece cuando se implementa código. Es importante contar con un sistema que le permite probar los cambios sin discomforting su base de usuarios. Pero, por supuesto, esto también requiere un cierto esfuerzo de control de calidad. Es imprescindible disponer de algunas pruebas antes del despliegue. Los desarrolladores siempre asumen que tienen razón y nunca han perdido nada, pero nunca se debe creer. Siempre hay una ruta de código diferente o alguna nueva permutación de clics que nunca pensado.

  4. Copia de seguridad de SVN . Esto debería ser evidente pero trabajado para una empresa donde nuestro repositorio de código fuente no fue respaldada por más de dos años. Puede copia de seguridad al hacer un svndump y luego copiar el archivo resultante a otro lugar. También puede simplemente copia de seguridad de las carpetas en las que existe el repositorio y luego restaurar si se producen problemas.

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