varie, 1 ottobre 2015
APPUNTI SULL’ALGORITMO DI GOOGLE PER ULISSE
COSIMO ALFREDO PINA, WIRED.IT 17/9/2015 -
Ma cosa si cela dietro a strumenti tanto semplici quanto potenti? A rispondere è Rachel Potvin di Google che, durante una conferenza di ingegneri informatici, ha spiegato come dietro a tutti i servizi web di Google, come ricerca, Maps o Gmail, ci siano ben 2 miliardi di righe di codice.
Se la cifra non vi avesse colpito abbastanza potete usare come confronto Windows, uno dei software più complessi mai realizzati, a cui bastano 50 milioni di righe di codice per funzionare.
La cosa forse ancor più sorprendente è che tutto il codice di Google viene gestito in un’unica repository, ovviamente riservata ai 25.000 dipendenti dell’azienda ma dalla struttura simile a quelle di GitHub. Gli unici progetti esclusi dal gigantesco contenitore di codice sono quelli per Android, Chrome OS e l’algoritmo per l’indicizzazione delle pagine.
Ovviamente dietro al sistema unificato di Google ci sono cifre notevoli: circa 45.000 commit (cambiamenti al codice) quotidiani e 85 terabyte di dati, gestiti anche grazie a Piper, un sistema di controllo versione che si occupa di evitare conflitti e sovrapposizioni.
I numeri sono certamente sorprendenti, ma il web ancora in piena espansione e l’approccio modulare adottato da Google fanno pensare e anche sperare, che questa enorme repository possa ancora crescere.
*****
HDBLOG.IT 17/9/2015 –
Difficile davvero poter avere un’idea d’insieme di cosa sia diventata ad oggi Google (o Alphabet che sia), un vero e proprio conglomerato partito da un ’semplice’ motore di ricerca web ed esploso rapidamente in tutte le direzioni: dai palloni aerostatici che danno rete dalla stratosfera alle ricerche in campo medico. Tuttavia c’è un modo per definire Google in termini più pratici, lo ha esposto Rachel Potvin, della stessa casa di Mountain View, nel corso di una conferenza d’ingegneria tenutasi lunedì in Silicon Valley: non è altro che circa 2 miliardi di righe di codice.
Il calcolo vale per tutti i suoi servizi web, da Gmail a Maps, Youtube e così via, una quantità spaventosa che assume ancor più significato se comparata con Microsoft Windows (non è specificata quale versione), uno dei sistemi operativi più diffusi e complessi al mondo che si basa su ’soli’ 50 milioni di righe di codice. La cosa curiosa è che tutto questo, un ecosistema tanto complesso ed intricato è racchiuso all’interno di un unico contenitore digitale, un cosiddetto ’repository’ disponibile a tutti i 25 mila ingegneri Google.
La Potvin lo ha definito come il più grande repository in uso nel mondo, d’altronde cosa altro potrebbe essere più esteso, nemmeno GitHub si avvicina ed è il primo repository pubblico open source dove ingegneri possono condividere quantità illimitate di codice. A differenza di quest’ultimo, dove migliaia di persone lavorano ad altrettanti, se non milioni di diversi progetti, il codice di Google è un’unica cosa, un monolite digitale su cui lavorano costantemente 25 mila persone.
Per gestire tutto è stato creato appositamente un sistema di controllo, una piattaforma chiamata Piper, accessibile in tutte le strutture Google e spalmata in almeno 10 data center. Gli ingegneri possono accedere alla porzione di codice che interessa, effettuare la loro aggiunzione o modifica e aggiornare tutto, istantaneamente, con ovvie limitazioni: le parti di codice più sensibili, come quelle relative all’algoritmo di ricerca e PageRank risiedono in repository dedicati, delle ’casseforti’ digitali accessibili soltanto per alcuni dipendenti più fidati e specializzati.
Non proprio tutto si trova all’interno di questo enorme blocco di codice, Android e Chrome OS sono infatti disconnessi dalla rete e sono quindi tenuti sotto chiave all’interno di altri sistemi di controllo diversi da Piper.
Ma diamo qualche numero: Piper gestisce 85 TB di dati e i 25 mila ingegneri Google già citati eseguono circa 45 mila variazioni nel repository ogni giorno. E ancora: Linux è costituito da 15 milioni di righe di codice sparsi su 40 mila files software, mentre gli ingegneri Google modificano 15 milioni di righe di codice e 250 mila files ogni settimana.
Ma è impossibile avere occhi dappertutto, specialmente se parliamo di 2 miliardi di righe di codice, per questo Piper ha sostituito il vecchio sistema di controllo chiamato Perforce, ed è in grado di rilevare automaticamente bug e sistemarli senza l’aiuto di coders in carne ed ossa. Piper non scrive direttamente codice, puntualizziamo, ma raccoglie dati e li fornisce a chi di dovere per mantenere il codice in buona salute.
Oltre Google ci sono anche altri giganti del settore che utilizzano sistemi simili, ad esempio Facebook che vanta ben 20 milioni di righe di codice per la sua applicazione principale. L’obiettivo di entrambi è di creare un sistema come Piper che possa essere a disposizione di tutti, una piattaforma che si prenda cura del codice e dia accesso sicuro solo a determinate porzioni modificabili, senza intaccarlo interamente.
Google e Facebook stanno costruendo una nuova versione del sistema di controllo basato su Mercurial, già esistente ma limitato nelle dimensioni. La finalità è quindi quella di far lavorare quest’ultimo su scala più ampia, abbracciando ad esempio blocchi di codice immensi come quello di bigG. A lavoro sul progetto pare ci siano tutti i guru del settore che gravitano già tra le due case californiane, tra questi anche Bryan O’Sullivan (Engineering Director at Facebook) ed altri.
Una prospettiva nuova dalla quale osservare queste realtà, masse di codice in continua evoluzione che al momento dettano le regole sul web e nel mondo dell’economia.
*****
HWUPGRADE.IT 18/9/2015
Il codebase di Google è composto da circa 2 miliardi di righe di codice, tutte stipate in un’unica repository. A rivelare la particolare informazione è stata Rachel Potvin, engineering manager per la compagnia di Mountain View, durante la conferenza @Scale. La dirigente sostiene che con molte probabilità quello di Google sia il più grande codebase presente sul pianeta.
Con il termine si intende tutto il codice sorgente appartenente ad un’applicazione o servizio scritto in proprio, quindi scevro dal codice ad esempio recuperato esternamente o generato attraverso tool specifici. Nel caso di Google, questo è necessario per eseguire tutti i servizi online offerti dalla società, e la sua complessità ci fa capire quanto siano intricate le procedure che stanno dietro ad una ricerca Google, o ad un percorso calcolato da Google Maps.
"Dietro una semplice pagina di risultati si nasconde un sistema complesso e progettato in maniera certosina che supporta più di cento miliardi di ricerche ogni mese", scrive Google. E tutto questo grazie ad un "enorme, singolo codebase" che viene eseguito su 10 differenti datacenter. Google lo chiama "modello monolitico di repository", con il quale gestisce tutto il software online proposto agli utenti, partendo da Google Docs per arrivare a Maps, Gmail o YouTube. L’accesso al codice è limitato ad un numero ristrettissimo di sviluppatori interni.
Stando alla dirigente del colosso americano, se confrontato con la complessità di un sistema operativo desktop, come ad esempio Windows XP, il codebase di Google è grande almeno 40 volte quello di Microsoft (circa 50 milioni di righe di codice), e circa 100 volte quello di Facebook. Gli ingegneri di Google modificano e aggiornano circa 15 milioni di codici ogni settimana, sia come "manutenzione" che per seguire l’evoluzione della rete, ma naturalmente questo avviene con l’ausilio di bot sviluppati ad-hoc.
Google ha progettato un sistema di controllo chiamato Piper per ospitare l’intero codebase e permettere a circa 25 mila sviluppatori di contribuire attivamente: "In circa otto anni, la nostra repository è cresciuta di interi ordini di grandezza praticamente in ogni aspetto", ha dichiarato Potvin. "E ci sono state volte nella storia di Google in cui non eravano sicuri di essere in grado di sostenere questo livello di crescita". Per maggiori dettagli sui numeri di Google vi invitiamo a visionare il video (in lingua inglese) riportato nella pagina.