Unicorn è un server “leggero” che si adatta alla realizzazione di repository DVCS: è la scelta di GitHub, il popolare host di progetti distribuiti con Git. Sviluppato in Ruby, è stato concepito per alte capacità di banda in trasmissione e kernel a bassa latenza di risposta.
L’installazione richiede esclusivamente un compilatore C e le librerie di Ruby: le 2 soluzioni consigliate sono appunto Rack – un’interfaccia minimale per web server e framework di Ruby – e nginx. Al momento è supportato Ruby 1.8 e 1.9 (ed è pianificato il supporto a Rubinus): i sorgenti, rilasciati sono GPLv2, sono scaricabili dal repository ufficiale e/ dal mirror europeo.
Il sistema si pone di default in ascolto sulla porta 8080 ed è fornito di un wrapper per applicazioni Ruby On Rails precedenti a Rack: rispetto ad altri competitor come Thin e Mongrel, offre una struttura più snella rispetto ai proxy — creando un socket condiviso.
Ciò consente di monitorare meglio l’ammontare della memoria in uso e di uccidere i processi che ne richiedano più del consentito: la presentazione di GitHub descrive anche come sia – rispetto a ngnix + Mongrel – incredibilmente più rapido il forking dei progetti ospitati, relativamente all’uso di Git.
L’utilizzo di Unicorn non si limita necessariamente a Git, ma è applicabile a qualunque DVCS: è difficile prevederne un’implementazione su server che offrano soluzioni di diversa tipologia, poiché Unicorn è sostanzialmente un preforker che si occupa di gestire processi in crowdsourcing.
Foto | Ryan Tomayko
Anteprima del commento