Un compañero de trabajo y yo nos hemos topado con un problema sobre el que tenemos múltiples opiniones.
Actualmente tenemos un repositorio git en el que mantenemos todos nuestros cronjobs. Hay alrededor de 20 crons y no están realmente relacionados, excepto por el hecho de que todos son pequeños scripts de Python y esenciales para alguna actividad. Estamos utilizando un fabric.py
archivo para implementar y un requirements.txt
archivo para administrar los requisitos de todos los scripts.
Nuestro problema es básicamente, ¿mantenemos todos estos scripts en un repositorio git o deberíamos separarlos en sus propios repositorios? Al mantenerlos en un repositorio, es más fácil implementarlos en un servidor. Podemos usar un solo archivo cron para todos los scripts.
Sin embargo, esto se siente mal, ya que los 20 cronjobs no están relacionados lógicamente. Además, cuando se usa un requirements.txt
archivo para todos los scripts, es difícil determinar cuáles son las dependencias de un script en particular y todos tienen que usar las mismas versiones de paquetes.
Podríamos separar todos los scripts en sus propios repositorios, pero esto crea 20 repositorios diferentes que deben ser recordados y tratados. La mayoría de estos scripts no son muy grandes y esa solución parece exagerada.
Una pregunta relacionada es, ¿utilizamos un gran archivo crontab para todos los cronjobs, o un archivo separado para cada uno? Si cada uno tiene el suyo, ¿cómo evita la instalación de un crontab sobrescribir los otros 19? Esto también parece una molestia, ya que entonces habría 20 archivos cron diferentes para realizar un seguimiento.
En resumen, nuestra pregunta y problema principal es ¿los mantenemos todos juntos como un único repositorio o los separamos en su propio repositorio con sus propios requisitos.txt y fabfile.py? Sentimos que probablemente también estamos buscando alguna solución realmente simple. ¿Hay una manera más fácil de lidiar con este problema?
fuente
Respuestas:
A menos que exista una razón específica para que piense que cada uno de ellos merece un repositorio invidual (¿crecerán mucho? ¡Probablemente no!) Parece más razonable ponerlos a todos en un repositorio y ahorrarse la molestia de clonarlos de ellos de 20 repos.
Mantener cada uno en un repositorio separado parece ser el camino para crear un problema donde no existe un problema.
No cree trabajo extra para usted (y para otros).
fuente
A menos que haya una buena razón para la división (rendimiento; preocupaciones abrumadoras de organización / seguridad, etc.), mi instinto es mantener los documentos de origen juntos en el mismo repositorio.
La división de los sistemas en repositorios separados generalmente crea barreras que inhiben la reutilización; Dado que la reutilización es casi la única forma en que una organización tiene que amortizar el costo de desarrollo, cualquier cosa que se interponga en la reutilización es ipso facto algo malo.
fuente