2010-12-07 11 views
5

Estoy trabajando en una empresa de SaaS que lanza nuevas funciones y correcciones de errores a nuestros clientes cada seis semanas. Cuando escribimos cambios de código pasan por diferentes pasos (como una máquina de estados) antes de llegar a los servidores de producción. Los pasos son diferentes dependiendo de si el cambio se realiza en el ciclo de desarrollo normal o como una solución de emergencia. Actualmente estamos usando Harvest para administrar los pasos y rastrear qué código (funciones y correcciones de errores a través de paquetes) se está lanzando a los clientes y, en ese sentido, está funcionando bien.¿Cómo las empresas SaaS verifican y rastrean el código que lanzan a los clientes?

Desafortunadamente, Harvest es caro y difícil de usar desde el punto de vista de un programador. La ramificación y la fusión es una pesadilla. Así que estamos buscando cambiar a Mercurial. Mercurial parece sobresalir en esas áreas. Sin embargo, Mercurial no parece estar hecho para rastrear cambios o administrar el proceso mencionado anteriormente, solo lo hace SCM.

Q: ¿Qué opciones tenemos cuando se trata del proceso de lanzamiento, seguramente hay otras compañías de SaaS (por ejemplo, Google, Flickr, Facebook, LinkedIn) que quieren control de calidad antes de lanzar el código a los servidores de producción?

Q: ¿Es una mala idea intentar y construir el proceso en Mercurial o hay otras herramientas que debemos usar junto con Mercurial?

[Editar] Para aclarar, esta es nuestra (sugerido) branch structure.

Aquí está el flujo del proceso que tenemos actualmente en la cosecha:

Hotfix <--> Test Level 1 <--> Test Level 2 <--> Master (Production) 
Feature <--> Test <--> Release Test <--> Master (Production) 

No estoy buscando un gestor de fallos, sino más bien una herramienta de implementación que nos ayuda a llevar un registro y desplegar código que ha sido verificado por nuestro grupo de expertos (código en la rama de publicación). Si se está trabajando en más de un hotfix al mismo tiempo, necesitamos poder probarlos juntos y si uno rompe el código, tenemos que ser capaces de "degradar" los cambios en el código de un paso atrás en el flujo del proceso. Hoy es suficiente para que los dos desarrolladores "promocionen" sus cambios en el Nivel de prueba 1 y el sistema se puede probar con ambos cambios en conjunto. Si los cambios de un desarrollador solo rompen algo cuando está junto con el código del otro desarrollador, puede volver a degradarse desde el Nivel de prueba 1.

+0

Al "realizar un seguimiento de los cambios", ¿quiere decir "Quiero saber qué versiones cambian X forma parte de" o "para el lanzamiento X, qué cambios forman parte de ello"? –

+0

Este último. También es valioso saber qué cambios están en qué estado en el proceso de lanzamiento. – MdaG

+0

¿No es eso lo que normalmente usa un rastreador de errores para hacer? Lo siento si soy ignorante, no tengo experiencia con Harvest. –

Respuesta

0

Me he dado cuenta de que lo que estamos buscando no es un rastreador de problemas, sino más bien una herramienta de implementación para reemplazar ese aspecto de Harvest. Go y Anthill Pro son dos candidatos.

1

Sin embargo, Mercurial no parece estar hecho para rastrear cambios o administrar los mencionados anteriormente proceso, solo hace SCM.

Lo mejor es usar una herramienta separada para el seguimiento de problemas. De esa forma puedes usar la mejor raza para cada tarea. Solo asegúrese de seleccionar uno que se integre bien con su sistema de control de versiones.

Para dar algunos ejemplos: jira (comercial) y trac (gratis) ambos tienen complementos de integración mercuriales. También tienen estados de flujo de trabajo personalizables, lo que le permite modelar su proceso.

+0

Hasta ahora he descartado a Jira y Trac como meros rastreadores de errores. Algo para reemplazar Test Track cuando hemos hecho el cambio a Mercurial, pero según usted, ¿alguna de estas herramientas es mucho más que un rastreador de errores? Voy a investigarlos ahora. Gracias. :-) – MdaG

+0

he hecho mi mejor esfuerzo para leer en tanto Jira y Trac y ambos parecen ser "sólo" de control de errores. Cualquiera de ellos sería un gran reemplazo para Test Track, pero la funcionalidad que estoy buscando no es solo un seguimiento de errores. Me falta la palabra adecuada para eso. Creo que tendré que actualizar la pregunta original con un ejemplo. – MdaG

+0

@MdaG: por lo que [esto] (http://confluence.atlassian.com/display/JIRA/How+to+create+Custom+Workflow+Elements+for+JIRA+3) no es lo que está buscando? –

Cuestiones relacionadas