Mejorando nuestro entorno de desarrollo en el trabajo

En un futuro cercano, tendré unas 2 semanas para moverme y mejorar nuestro entorno de desarrollo en el trabajo.

Desarrollamos principalmente un gran proyecto PHP / MySQL con 2-10 desarrolladores.

Por el momento tenemos un server de desarrollo, ejecutando apache con mod_userdir, cada desarrollador tiene una carpeta / public_html en su hogar (accesible por Samba). Para VCS y Project Management / Issuetracking usamos Subversion y Trac. Testing / Deployment toma algunos pasos manuales, no mucha automation allí.

Mis planes para la nueva configuration incluyen los siguientes cambios a las cosas existentes:

  • Integración continua
  • Integre CI a Trac, cree / encuentre un complemento que le ofrezca iniciar acciones después de que el progreso de la construcción sea exitoso o no (es decir, deployment en etapas / en vivo)
  • Crear scripts de implementación automatizados (un clic)
  • Integrar ( Doxygen ) -Documentación en el progreso de construcción y de alguna manera en Trac
  • Agregar versiones automáticas
  • Agregue otra capa de monitoreo (monitoreo de nagios locales en nuestro sistema de producción-nagios)
  • Agregue un esclavo de replicación MySQL que funcione todas las noches, que luego los desarrolladores pueden usar para probar cosas en datos up2date
  • Revise los planes de respaldo
  • Documentar cómo y por qué configuré todo de esta manera

¿Tiene alguna sugerencia / sugerencia de qué se puede mejorar aún más? ¿Algo que deberíamos hacer de otra manera?

Me aseguraré de que escriba sus scripts de implementación automatizados de tal manera que puedan ser utilizados por su herramienta de continuous integration. Hudson (y CruiseControl, sospecho) básicamente envuelven estos guiones y proporcionan un ingenioso front-end.

Hundson es fácil de instalar y viene con un complemento de Trac , SVN, CVS, complementos de Git y un complemento de Doxygen y otros para casi cualquier cosa que se te ocurra. Advertencia: no he usado todos estos complementos y es posible que no hagan exactamente lo que quieres …

Si tiene un presupuesto para el software de CI, entonces vale la pena echarle un vistazo a TeamCity (¿o está usando Bitten ?).

Tienes una gran oportunidad, ¡así que buena suerte!

Mi única sugerencia no sería pasar mucho time en el

  • Documentar cómo y por qué configuré todo de esta manera

Este es el último elemento de mi list para mejorar nuestro entorno de desarrollo y todavía no lo he hecho.

Cada parte siempre se está modificando o mejorando para proporcionarnos una mejor funcionalidad o un uso más fácil. Sugiero tratar de mantener el "por qué" como comentarios tan cerca de donde realmente lo implemente como pueda. Este es el único lugar donde alguien que cambie su sistema lo necesitará.

Tal vez también un gran diagtwig que muestra enlaces y nombres de serveres físicos, pero aparte de eso, he encontrado que la documentation es una molestia.

Aclamaciones