Tag Archives: Open Source

Altro

Le tecnologie dietro ad un sito che serve milioni di utenti

Interessante l’elenco delle tecnologie che Foursquare utilizza per servire i sui 15 milioni e passa di utenti, si trova nella pagina about: “I’m really into technology. What’s Foursquare built on?“.

Si tratta prevalentemente di soluzioni open-source, ci sono un po’ tutte le tecnologie più in voga del momento, dai database NoSQL, alle analisi sui dati con Hadoop, a Backbone.js e tutto sta su Amazon Web Services.

Per maggiori informazioni c’è il loro blog tecnico.

foursquare

Copio e incollo da Foursquare:

I’m really into technology. What’s Foursquare built on?

A causa della nostra crescita piuttosto folle, abbiamo progettato il nostro software su vari livelli in uno stack, in modo che risultasse il più possibile flessibile e scalabile. Questo ci ha permesso di crescere da poche migliaia di utenti ad oltre 15 milioni, ed anche di permettere a nuovi e fantastici tecnici di entrare a farne parte e collaborare da subito.

Foursquare è attualmente ospitato all’interno del servizio di Amazon EC2 , utilizzando centinaia di server che eseguono una versione base di CentOS Linux . Usiamo NGINX per indirizzare le richieste e servire contenuti statici e HAProxy per bilanciare le richieste web e API da molte macchine.

Ora arriviamo alla parte divertente. Salendo di livello nello stack, i dati in tempo reale del sito vengono memorizzati in MongoDB (anche se usiamo Memcache per memorizzare in cache un piccolo insieme di calcoli dispendiosi). Per l’analisi off-line dei dati effettuiamo regolarmente un’istantanea dei nostri dati in tempo reale e la importiamo in un cluster Hadoop. Abbiamo alcune operazioni personalizzate MapReduce, ma ci affidiamo soprattutto alla semplice sintassi di Hive e di uno scheduler delle attività realizzato appositamente per i calcoli abituali. Usiamo Solr e Elasticsearch per far funzionare la ricerca di luoghi, consigli, utenti. La nostra indicizzazione geografica usa la libreria s2 di Google per memorizzare gli identificativi di cella all’interno del nostro indice di ricerca. Usiamo PostGIS e il meraviglioso insieme dati digeonames.org per convertire a ritroso gli indirizzi codificati geograficamente in coordinate, il che ci consente di collocare i luoghi su una mappa e renderli disponibili per una ricerca basata sulla posizione. Kestrel costituisce la nostra coda per attività asincrone che intendiamo eseguire su gruppi di richieste degli utenti. Le foto realizzate dagli utenti vengono memorizzate su Amazon S3 con invio dei contenuti tramite Akamai. L’intero meccanismo è un po’ più complesso di così se si scava più a fondo, ma in sostanza tutto questo è il suo cuore.

Quasi tutto il codice per il sito web, le API e l’elaborazione in batch è scritto in Scala. Il web e le API si basano su Lift web framework. Inoltre, utilizziamo un bel po’ di Python e Bash script per l’automazione delle build, la distribuzione ed altre attività operative. Infine, il contenuto dinamico sul sito è scritto in javascript con un mix di jQuery, Backbone.js per i modelli di oggetti e Soy per i template.

We use beautiful maps by MapBox created using data provided by the wonderful © OpenStreetMap and contributors, and licensed Open Data Commons Open Database License. The interactive maps are generated using the open-source library Leaflet.

Altro

Falling in love with Cloud Computing

I Spy Sky Eyes

Photo by Fort Photo

Seppur qui non ne abbia parlato molto è da qualche mese che ormai utilizzo gli Amazon Web Service (AWS), in particolare EC2 e S3, anche io, come Andrea, ne sono rimasto folgorato.

I tempi di provisioning praticamente nulli sono effettivamente sconvolgenti per chi come noi sul lavoro si deve spesso imbattere nei tempi imposto dai fornitori di hardware e di servizi.

Andrea nel suo post pone la questione di come il modello delle licenze Oracle non sia al passo con i nuovi modelli di business resi possibile da AWS e come invece il mondo open source sia più pronto:

[...] Questi processori virtuali sono paragonati ad uno Xeon 1.0Ghz. Visto che Oracle si licenzia tipicamente sulla base del numero di processori… se si dovesse licenziare per 20 processori equivalenti ad uno Xeon 1.0Ghz… beh, diventerebbe quantomeno poco conveniente. E ancora di più: ma se io la macchina virtuale la voglio usare solo per 1 ora al giorno nella configurazione da 20 processori?

Mi son fatto l’idea che gli AWS sono così innovativi che solo il mondo open source può stargli dietro al momento. [...]

Secondo me il modello di business che verrà via via attuato, anche dai big vendor, assomiglierà alla proposizione che Red Hat ha fatto per EC2, ossia pagamento orario on top ai servizi Amazon, proprio vero il mondo open source è sempre più pronto a seguire i cambiamenti, anche MySQL ed OpenSolaris si sono mossi!

Per la verità Oracle potrebbe anche in futuro proporre una propria soluzione di virtualizzazione on demand simile a quella di Amazon, stiamo a vedere ….

Altro

Ubuntu Eye for the Debian Guy: Running Linux on Linux

Con un po’ di ritardo segnalo questo articolo un po’ tecnico su come eseguire un distribuzione di Linux all’interno di un’altra distribuzione di Linux. Nella fattispecie Ubuntu all’interno di Debian.

L’autore dell’articolo è stato il mio capo in un’attività di consulenza durata parecchio tempo … beh complimenti!

Take a journey around the world of Ubuntu 7.10 without exiting from Debian. Along the way, you’ll learn how to run multiple Linux-in-Linux instances for development and study.
by Roberto Giorgetti

Altro

The Dojo Offline Toolkit

Ecco cosa il 2007 porterà di nuovo nel mondo delle sviluppo web: “The Dojo Offline Toolkit”

The Dojo Offline Toolkit will be a small, cross-platform, generic download that enables web applications to work offline.

SitePen sponsorizzerà Brad Neuberg per tre mesi, in modo che possa gettare le basi su quella che oggi è solo un’idea…in bocca al lupo!!!

A me suona come qualcosa di estremamente promettente!

Altro

Brindiamo con una tazza di caffè

javaJava è diventato ufficialmente open-source, oggi l’annuncio da parte di Sun.