Fattibilità della consegna continua con una combinazione di piattaforme di sviluppo

1

Quali sono i principali ostacoli (e potenziali soluzioni, se conosciuti) per implementare lo sviluppo di software "continuous delivery" quando un'applicazione si basa su vari linguaggi o moduli di programmazione ... specialmente quando lo stesso controllo di versione e / o pacchetti di test automatici non esiste per quelle piattaforme disparate?

Ad esempio, un'applicazione Java che è distribuita e in esecuzione su un host Linux , parlando con un back-end del database DB2 tramite JDBC , con chiamate occasionali a stored procedure che eseguono il wrapping dei programmi RPG o COBOL o C sullo stesso back- fine? Cosa succede se il codice per tutto ciò non può essere contenuto in lo stesso sistema di controllo versione / controllo sorgente ?

È possibile arrivare all'illusivo "rilascio push-botton" in questa situazione? O devi avere TUTTO nello SAME VCS? Inoltre, come si gestirà la creazione / modifica dello schema del database e i cosiddetti valori di controllo del soft-code nel database?

Esiste un lavoro pubblicato più o meno "canonico" su questo tipo di cose?

    
posta PattMauler 12.02.2013 - 16:03
fonte

2 risposte

1

Il fatto che tu abbia queste diverse piattaforme di sviluppo non dovrebbe essere un ostacolo in termini di consegna continua. La complessità dell'interazione con queste piattaforme è gestita dal tuo strumento di compilazione e molti strumenti hanno il supporto per gli ambienti / piattaforme che menzioni.

Ad esempio con CruiseControl.NET avresti un compito che controlla la tua app web Java (può interagire con git, hg, svn, fonte visiva sicura ecc.), che viene poi compilata secondo la definizione nel progetto di costruzione . Distribuirlo su un host Linux può essere fatto su percorsi ftp o UNC, infatti se lo si può scrivere in una riga di comando, è sufficiente utilizzarlo nella build CCNet.

La parte più impegnativa del CD è la migrazione del database, ma ancora una volta non si tratta di una limitazione del processo di compilazione: se è possibile eseguire lo script dell'attività, è possibile automatizzarlo con il server di scelta desiderato, sia CCNet, TeamCity , Jenkins o qualsiasi altra cosa. Nel mondo .NET la suite di strumenti RedGate è molto utile qui, usiamo SQL Compare per confronta la copia di sviluppo di un database con l'ambiente UAT e anche la copia controllata tramite SQL Source Control, genera uno script e invochiamo l'attività con l'interfaccia a riga di comando fornita. Questo quindi aggiorna il database. In realtà in DEV e localmente rilasciamo il database e lo ricreamo, quindi inizializzarlo con i dati utilizzando SQL Data Generator, ma non è difficile codificare i dati per compilare una copia pulita del database con. Per la produzione è ovviamente più difficile dato che non possiamo rilasciare il database e sono necessarie migrazioni e questi ci appoggiamo di nuovo sul gate rosso per, ma possono essere creati e rilasciati manualmente nelle risorse di build in modo che il build server possa applicarli come parte del CD .

In termini di una buona fonte di informazioni, controlla una serie di post di Roy Osherove che trattano alcuni dei migliori pratiche, o Consegna continua: rilasci di software affidabili attraverso l'automazione di build, test e distribuzione di Jez Humble

    
risposta data 12.02.2013 - 16:18
fonte
0

Il BuildMaster di Inedo è uno strumento progettato per gestire scenari come questo. Il "segreto" è che non si tratta di uno strumento incentrato sul progetto (come potrebbe essere un CI tradizionale), ma modella le applicazioni e i loro componenti utilizzabili. Come tale, ci sono molti utenti che hanno VCS multipli (da Git a ClearCase) per creare applicazioni su piattaforme multiple (Java, .Net, ecc.) Su più sistemi operativi (Windows o qualsiasi cosa supporti SSH).

C'è una versione gratuita di BuildMaster che probabilmente potrebbe gestire molti dei problemi che stai cercando di risolvere. Se hai familiarità con The Daily WTF , Alex ha scritto un articolo carino (ma lungo) che introduce la piattaforma . È dietro il sito e anche il fondatore di Inedo.

(Disclaimer: lavoro in Inedo)

    
risposta data 17.04.2013 - 06:43
fonte