Alessio Biancalana Grab The Blaster di Alessio Biancalana

#opencore - Quanto open source c'è dietro OverBlog

In questo periodo come sapete sono stato un po' impegnato con il progetto #opencore, di cui vi ho già parlato. Il mio trofeo più grande, ad ora, rimane quello di essere riuscito a porre qualche domanda al CTO di OverBlog, Xavier Hausherr, che si è dimostrato molto gentile ed ha risposto anche a questioni spinose sull'open source. OverBlog è una piattaforma ottima per aprire un proprio blog, ed ero proprio curioso di sapere come fosse composta l'infrastruttura alla base di questa piattaforma che, sin dal primo sguardo, mi ha sempre dato l'idea di uno strumento molto complesso e raffinato sul quale viene svolto ogni giorno tantissimo lavoro.

Ho quindi "marchiato" anche OverBlog con le mie cinque domande, grazie a Paolo Mulè, country manager italiano di OverBlog, che, all'idea dell'intervista un po' più da smanettone, si è subito offerto di fare da intermediario tra me e il team di sviluppo. Un grazie quindi a lui e a Xavier.

OverBlog

L'intervista

Come si pone OverBlog rispetto al concetto di libertà? C'è una roadmap specifica o più generalmente un atteggiamento mentale sul fatto di permettere agli utenti di "smanettare" più a fondo con la piattaforma?

Il nostro desiderio è far sentire i blogger a casa propria quando usano OverBlog. Per far questo, vogliamo offrire loro quanta più libertà possibile, attraverso la creazione e la personalizzazione dei temi, la flessibilità dei layout e l’organizzazione dei contenuti, il rilascio di una API e di alcuni widget che verranno configurati grazie ad un sistema contributivo. Quindi possiamo dire che sulla questione c’è una roadmap molto chiara.

Ogni piattaforma fa affidamento su una serie di applicativi più o meno critici, come un webserver e un'infrastruttra cloud. Questi sono generalmente descritti come uno "stack software". Com'è costruito lo stack software di OverBlog? Quali sono le applicazioni che ne sono alla base? Sono open source?

Il nuovo OverBlog è stato costruito per essere flessibile al massimo in termini di sviluppo e scalabilità. La colonna portante di OverBlog è la Service-oriented Architecture (SOA).

Ogni progetto è indipendente: da una parte abbiamo i cosiddetti “servizi core” (Blog, Commenti, Utenti, eccetera), dall’altra abbiamo i veri e propri “siti web” (nello specifico l’Interfaccia di Amministrazione e il Portale). Questa configurazione permette ad ogni progetto di sfruttare le tecnologie che meglio soddisfano le sue specifiche necessità, senza alcun limite.

Allo stato attuale, per quello che concerne il livello di backend, i nostri progetti sono costruiti in PHP con il framework Symfony 2. Utilizziamo, per lo storage di dati, i seguenti sistemi: Postgresql, MySQL, Redis e Memcache.

Il layer di frontend è anch’esso sviluppato in PHP con Symfony 2. Per il Javascript, usiamo il framework YUI, con un layer di housing chiamato Yoshioka (https://github.com/hadrienl/yoshioka.js), disponibile gratuitamente.

I nostri servizi comunicano l’uno con l’altro attraverso un layer di trasporto binario chiamato Thrift, creato da Facebook e incubato da Apache. Abbiamo fatto parecchio lavoro di ingegnerizzazione su questo punto in particolare, per assicurarci delle ottime performance, e siamo veramente soddisfatti del risultato.

Invitiamo a dare un’occhiata alle nostre slide, presentate al Symfony Live 2012 a Parigi, che spiegano questi punti dettagliatamente: http://fr.slideshare.net/xkobal/the-use-of-symfony2-overblog

Per tutti i server, utilizziamo la distribuzione Linux Debian. Le pagine sono distribuite tramite Apache. Il tutto è ospitato su dei server VmWare che ci permettono una grande flessibilità nel creare nuove macchine e questo, di conseguenza, aiuta tantissimo nella sfida per la scalabilità.

Parliamo di sviluppo e programmatori. Quali sono gli strumenti fondamentali (IDE, VCS, altro) usati dai developer di OverBlog? Puoi descrivermi la tipica workstation di uno sviluppatore di OverBlog?

La cassetta degli attrezzi di ogni sviluppatore di OverBlog comprende quasi sempre gli stessi tool:

- Lavoriamo tutti su piattaforma Mac, con una macchina virtuale Debian-based “fatta in casa” e una configurazione centralizzata grazie a Puppet. Questo rende il tutto molto facile da aggiornare. C’è anche installato tutto il software che serve per eseguire l’intera piattaforma OverBlog in locale!

- Sviluppiamo in PHP 5.4

- I developer del frontend usano NodeJS

- Tutti i nostri sorgenti sono ospitati su GitHub

- Per quello che concerne l’IDE, i nostri tool sono Netbeans, Textmate e, ancora, PhpStorm

Sarebbe carino se Timekiwi/OverBlog fossero open source. C'è qualche piano futuro per rendere tutto questo lavoro open source (sotto GPL, o Apache) e disponibile per i power user?

OverBlog non è concepito per essere open source. Ci sono parecchie ragioni per questa scelta, incluso il fatto che il codice deve in primis performare su un’infrastruttura estesa come quella che usiamo noi. Non è assolutamente inteso per essere utilizzato come motore per un blog singolo su un server, come fanno alcuni dei nostri competitor.

In ogni caso, essendo noi stessi fautori e fruitori di open source, rilasciamo alcune parti dello sviluppo che portiamo avanti e dei miglioramenti che apportiamo come Thrift (al quale abbiamo contribuito), parecchi bundle di Symfony, il nostro framework javascript Yoshioka.js e, sicuramente, un po’ di altri progetti nel prossimo futuro. Questi progetti sono disponibili su GitHub: https://github.com/ebuzzing

Hai 400 caratteri per dirmi qualsiasi cosa sull'open source e l'open culture.

Sin dalla sua creazione, nel 2004, OverBlog ha sempre usato o contribuito a progetti open source, come Postgresql, Symfony, Thrift, o altro. Un’espressione che ci piace, e che riassume il nostro pensiero, recita: “Perché reinventare la ruota quando qualcun altro l'ha creata così bene?”

L’open source ci aiuta a sviluppare OverBlog, il che sarebbe difficile da fare usando software proprietario: la piattaforma che abbiamo creato è estremamente specifica, e necessita di essere spinta molto più lontano di quanto qualsiasi software basilare ci permetterebbe di fare. E conosciamo tutti la difficoltà di far evolvere un software non libero!

In cambio, ripaghiamo la community open source pubblicando i miglioramenti che abbiamo apportato sviluppando il software stesso.

comments powered by Disqus

Member of

Previous Random Next