Stiamo iniziando il nostro primo progetto con Spring e java stack web. Questo progetto riguarderà principalmente la riscrittura di un ERP / CRM piuttosto ampio da Zend Framework a Java . Un fattore importante nella mia domanda è che provengo da php territorio, dove le cose (in termini di qualità) tendono ad apparire diverse rispetto a java world.
Fatcs :
- ci saranno 2-3 sviluppatori,
- almeno uno degli sviluppatori usa Windows, resto usa Linux,
- c'è una macchina remota basata su Linux, che dovrebbe gestire le istanze di test e produzione,
- dopo aver lottato con il codice legacy buggy, vogliamo introdurre buone pratiche di programmazione e sviluppo (CI, test, codice pulito e così via)
- client: modifiche logiche interne e frequenti,
- mischia, schieramenti giornalieri
Quello che voglio ottenere è un buon flusso di lavoro sul maggior numero possibile di fasi di sviluppo (coding - > commiting - > testing - > deploying). Il problema è che non l'ho mai fatto prima, quindi non so quali sono le migliori pratiche per farlo.
Quello che ho finora è:
- codice degli sviluppatori localmente,
- c'è un'istanza di
vagrantsu ogni macchina di sviluppo, gestita dapuppet. Contiene le stesselinux,jenkinsetomcatversioni come macchina di produzione, - durante la codifica, lo sviluppatore si distribuisce alla macchina vagabonda,
- dopo l'unione locale al ramo
test,jenkinsai test degli handle vagabondi, - quando tutto va bene, lo sviluppatore spinge il commit e si unisce
-
jenkinssulla macchina remota richiama il commit datestbranch, esegue test e così via, - se tutto sembra verde,
jenkinsdistribuisce atesttomcatistanza - La distribuzione in produzione è manuale (anche se può essere eseguita utilizzando gli script di aiuto) quando la logica di business viene testata da altre divisioni e tutto sembra a posto per il cliente.
Ora, la vera domanda: sopra ha senso? Cose di cui non sono sicuro:
- Macchina remota: non ci saranno problemi con due (o anche tre, come potrebbe essere necessario a Jenkins) istanze della stessa app su
tomcat? - Usare
vagrantper svilupparsi suphpenvironment è solo una morsa. Non è questo eccessivo utilizzo durante l'utilizzo di Tomcat? Voglio dire, c'è una maggiore probabilità chetomcatagisca allo stesso modo su ogni macchina? - C'è la sensazione di avere
jenkinslocale su vagabondo?