tecnología de mapas y BBDD . ¿Sobre qué se creó foursquare?


Foursquare se aloja actualmente en el servicio EC2 de Amazon y usa cientos de servidores que ejecutan una versión muy limitada de CentOS Linux. Usamos NGINX para enrutar las solicitudes y brindar contenido estático y HAProxy para equilibrar la carga de solicitudes web y de API a través de muchas máquinas.
Luego viene la parte divertida. Subiendo en la pila, los datos activos del sitio se almacenan enMongoDB (aunque usamos Memcache para almacenar en caché un pequeño conjunto de cálculos caros). Para el análisis de datos fuera de línea, habitualmente capturamos nuestros datos activos y los importamos a un clúster de Hadoop. Tenemos algunos trabajos personalizados de MapReduce, pero se basan principalmente en la sintaxis de consultas sencillas de Hive y un planificador de trabajos especialmente creado para cálculos habituales. Usamos Solr y Elasticsearch para impulsar la búsqueda de lugares, tips, usuarios y eventos. Nuestra indexación geográfica de búsqueda utiliza labiblioteca s2 de Google para almacenar ID de celda en nuestro índice de búsqueda. Usamos PostGIS y el maravilloso conjunto de datos de geonames.org para convertir las direcciones de geocodificación a coordenadas, lo que nos permite situar los lugares en un mapa y ponerlos a disposición de búsquedas basadas en la ubicación. Kestrel es nuestra cola para tareas asincrónicas que queremos realizar fuera de la banda de las solicitudes de los usuarios. Las fotos generadas por el usuario se almacenan enAmazon S3 y el contenido se entrega a través de Akamai. Existe mayor complejidad si se profundiza más, pero eso es lo básico.
Casi todo el código del sitio web, API y procesamiento por lotes está escrito en Scala. La web y la API se crearon sobre el marco de trabajo web Lift. También utilizamos una buena parte de secuencias de comandos de Python y Bash para la automatización de tareas de creación, implementación y operaciones. Por último, el contenido dinámico del sitio web está escrito en Javascript con una mezcla de jQueryBackbone.js para modelos de objetos y Soy para las plantillas.
Usamos hermosos mapas de MapBox creados con los datos proporcionados por el maravilloso ©OpenStreetMap (y) colaboradores, CC-BY-SA.

No hay comentarios:

Related Posts Plugin for WordPress, Blogger...