Nel suo post “Infrastructure at Scale: Overview“,  Ning Zhang ingegnere capo di LinkedIn, illustra come sia stata resa scalabile l’architettura informatica del noto social network.

Come mostrato nella figura riportata di seguito, LinkedIn ha realizzato applicazioni native sia per Ios che per Android oltre alle versioni mobile e desktop del sito web.

InfrastructureatScale1

Le quattro interfacce utente accedono ai dati tramite delle apposite API, questo permette una forte consistenza dell’interfaccia grafica e delle sue funzionalità su tutti i dispositivi.

Il codice di ciascuna piattaforma viene gestito su quattro repository, così suddivisi: iOS, Android, Web (che prevede sia il codice della versione desktop che di quella mobile) e le API.

I repository gestiscono più di 5.000 files con più di mezzo milione di linee di codice.

Il modello utilizzato è il “Thrunk Based Development” che prevede un unico branch per ogni repository sul quale i programmatori eseguono le archiviazioni.

L’immagine di seguito illustra il processo di sviluppo:

InfrastructureatScale2.jpg

Il processo viene chiamato “3X3” in quanto il rilascio avviene 3 volte al giorno e non intercorrono più di 3 ore per la pubblicazione dopo il rilascio del codice.

Se vuoi approfondire l’argomento  sul “Thrunk Based Development” ti suggerisco il seguente libro

continuos