coreBOS Updater: concetti

Continuiamo con le traduzioni della serie di post di Joe Bordes dedicati a ripercorrere la storia di coreBOS. La versione originale è pubblicata sul blog ufficiale di coreBOS.

Buona lettura!

8ec854455f9472822b7fc2d3f09f4086e2f380ae-cbupdater.png

Ho scritto di coreBOS updater quando è stato lanciato, e l’ho anche documentato un po’ sulla wiki del progetto.

Ci sono molti esempi di cosa si può fare con coreBOS Updater su coreBOS, soprattutto perché sono ormai tre anni che lo utilizziamo con risultati eccellenti.

In questo post non scriverò di come funziona, ma di cosa ha dato all’applicazione, degli incredibili risultati in termini di manutenzione e distribuzione, del dinamismo e della facilità con cui sia gli sviluppatori che gli utenti possono aggiornare il loro corBOS, e di come abbia reso inutili le versioni.

Quando abbiamo iniziato a sviluppare coreBOS Updater volevamo trovare un modo per sincronizzare i cambiamenti sul database con il codice. Lasciate che cerchi di spiegarmi.

Nel momento in cui sviluppiamo nuove features e/o correggiamo errori, modifichiamo il codice e cambiamo il contenuto dei molti file del progetto. Alcune di queste modifiche richiedono dei cambiamenti sul database per funzionare. Al giorno d’oggi distribuire i cambiamenti effettuati sui file è generalmente molto semplice, e specialmente quando si usa git e tutti condividono file con struttura e contenuto simile, ma distribuire i cambiamenti effettuati sul database è complicato, ognuno ha contenuti diversi con identificativi dinamici e assegnati in modo diverso, campi personalizzati, ecc.

Per questa ragione la maggior parte delle applicazioni ha script di migrazione. Il produttore sa che ogni utente usa una versione del suo software, così crea uno script su misura con tutte le modifiche sul database per convertire ogni database alla versione successiva. Tutto questo è un processo che richiede tempo, è complesso e sensibile di errori. È un problema sia per il produttore che per la persona responsabile dell’implementazione dell’aggiornamento.

Era necessario che eliminassimo questo processo da coreBOS, così da poter utilizzare il tempo facendo cose utili.

coreBOS Updater sostituisce lo script di migrazione per molti piccoli script che sono inclusi nell’applicazione nel modo in cui sono necessari. In questo modo, se lo sviluppatore ha bisogno di operare una modifica sul database che consenta al codice di funzionare può farlo immediatamente: nel momento stesso in cui si accorge che è necessario, può registrare la modifica sull’Updater e passare oltre. Quando si aggiorna il codice si ricevono le modifiche sui file e anche l’aggiornamento del database, insieme ad ogni altro cambiamento consequenziale. L’Updater è abbastanza smart da sapere quali modifiche sono sospese in ogni database, così le contrassegna e consente di bloccare o eliminare i cambiamenti.

In breve, mantiene il database sincronizzato con il codice in piccoli passaggi graduali che sono di facile applicazione, eliminazione e controllo.

Si può immaginare un mondo pieno di installazioni coreBOS, ognuna di esse ad un punto diverso del processo di sviluppo, mentre coreBOS Updater sa precisamente di cosa ha bisogno ognuna di esse per essere aggiornata con l’attuale stato del progetto.

L’impatto che Updater ha avuto su coreBOS è più grande di quanto immaginassi.

Ci ha permesso di rilasciare features e aggiustamenti ad un ritmo incredibile, senza doverci preoccupare del database o del punto in cui ogni cliente ha la sua installazione. Possiamo destreggiarci facilmente tra un numero infinito di installazione e… anche voi! Ha anche eliminato completamente la necessità di versioni, e questo sarà l’argomento del mio prossimo post.

A presto!

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s