LinkedIn Platform as a Service: il social network crea in casa la sua architettura cloud

Silicon è il sito di tecnologia dedicato alle strategie delle aziende IT che cavalcano i nuovi trend di mercato, dal cloud computing alla virtualizzazione, dal mobile al byod. Analisi, approfondimenti, prove di app e prodotti, oltre alle notizie quotidiane, fanno di Silicon l’appuntamento giornaliero per i manager che vogliono capire come la tecnologia possa aiutarli nel fare business. Su queste tematiche Silicon realizza interviste agli attori del mercato e reportage dai principali eventi, sia in Italia sia all’estero.

LinkedIn Platform as a Service è un ambiente virtualizzato che il social network ha sviluppato in proprio e che potrebbe avere ricadute open source

Tra le grandi aziende che offrono servizi online a milioni di utenti è ampiamente diffusa la tendenza del “fai da te” tecnologico-infrastrutturale di fascia alta: se le soluzioni offerte sul mercato non hanno le flessibilità e le funzioni che servono, tanto vale svilupparsele da soli. L’esempio più citato è probabilmente Facebook che si assembla il suo hardware server e di networking, ma i casi non mancano. Stavolta tocca a LinkedIn: la società ha dato qualche dettaglio sulla progettazione di LinkedIn Platform as a Service (LPS), un cloud privato nato per la gestione dei servizi del social network ma che avrà in futuro anche ricadute open source.

Come per molte altre aziende, anche per LinkedIn il problema da risolvere che ha portato alla progettazione di LPS è stato l’accrescersi della complessità. Il network eroga, dal punto di vista applicativo, una grande mole di servizi ed era diventato troppo difficile gestire in maniera ideale il loro ciclo di vita. Allo stesso tempo lo sviluppo e l’erogazione di nuovi servizi richiedeva troppo tempo e una buona dose di organizzazione tra team di sviluppo diversi. A tutto questo si aggiungeva la necessità di funzioni più evolute di automazione nella gestione dell’infrastruttura.

lpsSteven Ihde, Director of Engineering di LinkedIn, ha spiegato che nella prima fase di studio di una possibile nuova architettura della infrastruttura si è deciso di creare un proprio sistema ex novo perché nessuna delle opzioni disponibili sul mercato si adattava davvero bene alle necessità dell’azienda. La scelta è stata quindi quella di sviluppare in proprio combinando componenti open source con tecnologie che LinkedIn aveva già sviluppato, contando anche sul fatto che l’infrastruttura hardware garantisce comunicazioni a bassissima latenza grazie a un altro progetto di sviluppo interno – Project Altair – completato in precedenza.

L’ambiente LinkedIn Platform as a Service comprende quattro elementi principali. Rain è quello in qualche modo più importante e si occupa della “containerizzazione” e allocazione delle risorse. Non usa una piattaforma open source già definita ma direttamente i cgroup e i namespace di Linux. Il risultato è un sistema che permette di allocare le risorse di una unità hardware a più applicazioni pur garantendo a ciascuna la disponibilità delle risorse che ha richiesto. Il miglioramento apportato da Rain è tale che il tempo di implementazione di un nuovo servizio è passato da circa due giorni a una decina di minuti.

Un secondo componente è RACE (Resource Allocation and Control Engine), che si occupa della gestione delle applicazioni distribuite in una molteplicità di datacenter. Può spostarle in caso di guasti, aumentare il numero delle loro istanze al crescere del carico elaborativo, farle migrare da un datacenter a un altro come funzione di failover, eliminare le istanze quando non servono più. Tutto in maniera automatica. Accanto a RACE opera ORCA, una sorta di orchestrator che “raccoglie” le risorse lasciate libere da RACE e le usa automaticamente per compiti di breve durata o per processi di test.

lps2Il quarto componente fondamentale di LPS è Maestro. Mantiene un archivio delle impostazioni e delle configurazioni necessarie per abilitare le specifiche applicazioni sull’infrastruttura e “dirige” l’infrastruttura stessa in modo che si prepari ad eseguirle quando è necessario. L’obiettivo di LinkedIn è portare tutte le applicazioni sviluppate in proprio e i relativi servizi infrastrutturali a girare sulla LinkedIn Platform as a Service.

Per ora – spiega Ihde – LPS è un sistema proprietario per risolvere particolari inefficienze che abbiamo identificato all’interno di LinkedIn. È una decisione consapevole: vogliamo contribuire con codice pulito e ben documentato che abbia un impatto sostanziale e duraturo sulla comunità open source. In futuro decideremo quali parti del sistema potrebbero e dovrebbero essere rilasciate con licenza open source”.

Read also :