Un mio collega e io ci siamo imbattuti in un problema su cui abbiamo diverse opinioni.
Al momento disponiamo di un repository git che mantiene tutti i nostri cronjob. Ci sono circa 20 crons e non sono realmente correlati tranne per il fatto che sono tutti piccoli script python ed essenziali per alcune attività. Stiamo utilizzando un file fabric.py
per la distribuzione e un file requirements.txt
per gestire i requisiti per tutti gli script.
Il nostro problema è fondamentalmente, manteniamo tutti questi script in un repository git o dovremmo separarli nei loro repository? Mantenendoli in un repository è più facile distribuirli su un server. Possiamo usare solo un file cron per tutti gli script.
Tuttavia questo sembra sbagliato, in quanto i 20 cronjob non sono correlati logicamente. Inoltre, quando si utilizza un file requirements.txt
per tutti gli script, è difficile capire quali sono le dipendenze per uno script particolare e tutti devono utilizzare le stesse versioni dei pacchetti.
Potremmo separare tutti gli script nei loro repository, ma ciò crea 20 diversi repository che devono essere ricordati e gestiti. Molti di questi script non sono molto grandi e questa soluzione sembra essere eccessiva.
Una domanda correlata è, usiamo un grande file crontab per tutti i cronjobs o un file separato per ciascuno? Se ognuno ha il suo, come fa l'installazione di un crontab a evitare di sovrascrivere gli altri 19? Anche questo sembra un dolore, dato che ci sarebbero 20 file cron diversi da tenere sotto controllo.
In breve, la nostra domanda principale e il problema è che li teniamo tutti strettamente raggruppati come un unico repository o li separiamo nel loro repository con i loro propri requisiti.txt e fabfile.py? Riteniamo che probabilmente stiamo anche esaminando alcune soluzioni davvero semplici. C'è un modo più semplice per affrontare questo problema?