Arquitectura de Servidor para Subversion, TeamCity y Servidores de Desarrollo

Trabajo para una compañía de desarrollo web .Net CMS más nueva y ahora estamos reuniendo una estrategia de control de versiones. Actualmente nos estamos inclinando fuertemente hacia la subversión como el sistema de versiones con TeamCity para mantener nuestro server de desarrollo actualizado (y controlar nuestras comstackciones para control de calidad y producción).

Estoy tratando de encontrar qué tipo de architecture se sugiere para tal configuration. ¿Deberíamos tener serveres separados para cada uno? ¿Qué pasa con TeamCity Server y los agentes de compilation? Me parece que la mejor manera de hacerlo sería configurar un server para ejecutar subversión, uno para ejecutar TeamCity Server y otro para ejecutar los agentes de compilation de TeamCity. Sin embargo, nos gustaría evitar ejecutar tres serveres separados para esto, de posible.

¿Alguien puede decirme qué han usado antes y qué funciona bien? ¿Qué sugieres y por qué?

ACTUALIZACIÓN: Tendríamos que apoyar a unos 10 desarrolladores. Estamos un poco por debajo de eso en este momento, pero esperamos contratar un par / pocos en el próximo año.

ACTUALIZACIÓN: Una pregunta más. Al leer la documentation, parece que lo más probable es que no necesitemos más que los tres Agentes Build que van junto con la licencia de Servicios Profesionales, según la cantidad de desarrolladores que empleamos. Parece que esto tendría que boost si tuviéramos muchos más desarrolladores, pero no necesariamente por la cantidad de proyectos activos. Es esto exacto?

Tenemos

  • un server que aloja TeamCity y actúa como agente de compilation
  • un server para el almacenamiento de server sql. La database de TeamCity no es la única database allí.
  • dos serveres más para los dos agentes de compilation adicionales.

Construimos una cantidad de proyectos para múltiples equipos.

Inicialmente, solo había un puñado de desarrolladores en un equipo. Estamos bien con un server que actúa como server de TeamCity, agente de TeamCity y server de database.

No necesita múltiples agentes a less que desee build varios proyectos a la vez, o tiene una compilation muy larga. Hemos descubierto que el número de desarrolladores no es un factor directo. El número de comstackciones que se ejecutan simultáneamente es más importante. Eso podría estar relacionado con el número de desarrolladores, pero no es en nuestro caso. Tenemos un time de compilation corto (3 minutos) y limitamos a una compilation por proyecto a la vez.

Depende del tamaño de tu equipo. Mi empresa tiene 12 desarrolladores.

  • Tenemos un server web TeamCity que también es un agente de compilation.
  • La database de TeamCity está en otro SQL Server que ya teníamos.
  • Subversion está en otro server que ya teníamos.
  • Usamos dos máquinas de desarrollador como el segundo y tercer agente de compilation.

Pero para un equipo pequeño, probablemente podrías ponerlos a todos en un server bastante poderoso. Tendrás que ver qué funciona para ti.