Un compañero de trabajo y yo mismo nos hemos encontrado con un problema en el que tenemos múltiples opiniones.
Actualmente tenemos un repositorio de 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 scripts de Python pequeños y son esenciales para alguna actividad. Estamos utilizando un archivo fabric.py
para implementar y un archivo requirements.txt
para administrar los requisitos de todos los scripts.
Nuestro problema es básicamente: ¿guardamos todos estos scripts en un repositorio de 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 archivo requirements.txt
para todos los scripts, es difícil averiguar cuáles son las dependencias para 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 ser excesiva.
Una pregunta relacionada es, ¿usamos un archivo crontab grande 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 luego lo harían 20 archivos cron diferentes para realizar un seguimiento.
En resumen, nuestra pregunta y problema principal es si los mantenemos todos juntos como un solo repositorio o los separamos en su propio repositorio con sus propios requisitos.txt y fabfile.py? Sentimos que probablemente también estamos revisando una solución realmente simple. ¿Hay una manera más fácil de tratar este problema?