¿Cuál es la pila tecnológica de Quora?

En Quora usamos principalmente Python para nuestro desarrollo. Python es un excelente lenguaje de programación por muchas razones (vea la respuesta de Adam D’Angelo a ¿Por qué Quora eligió Python para su desarrollo? ¿Qué desafíos tecnológicos enfrentaron los fundadores antes de decidirse por Python en lugar de PHP?). Hay muchas herramientas de código abierto en el ecosistema de Python, y utilizamos varias de ellas. Cuando las herramientas existentes no proporcionan lo que necesitamos, implementamos las nuestras y, en algunos casos, también intentamos abrirlas a la comunidad (consulte Programación asincrónica en Python).

Además de Python, usamos C ++. Quizás el único inconveniente de Python es que, dado que es un lenguaje interpretado, es difícil obtener la eficiencia que puede obtener con lenguajes como C ++. Entonces, en Quora usamos este lenguaje cuando necesitamos exprimir al máximo nuestras CPU. Un claro ejemplo es cuando implementamos algunos algoritmos de aprendizaje automático (consulte QMF de código abierto para la factorización matricial).

Finalmente, también usamos Javascript para el front-end y, por supuesto, tenemos que usar algunos Objective C para iOS y Java para el desarrollo nativo de Android.

En cuanto a las bases de datos, usamos MySQL como nuestra base de datos de uso general. Sin embargo, cada vez más, hemos trasladado muchos de nuestros casos de uso a soluciones que no son SQL, principalmente HBase. En casos muy específicos, hemos tenido que usar bases de datos en memoria como rocksdb. También usamos Memcache para el almacenamiento en caché con mucha frecuencia.

En la capa de gestión de datos y flujos, utilizamos Scribe para el procesamiento de registros (consulte Registro y agregación en Quora), Kafka para flujos de datos y Spark para administrar grandes datos en general. En el pasado utilizamos Hadoop Map Reduce, pero ahora hemos movido casi todos los casos de uso a Spark.

Desarrollamos todo en la nube y más específicamente en AWS (aunque tenemos algunos casos de uso más pequeños en Google Cloud). De hecho, no hay un solo escritorio o estación de trabajo en Quora. Todos los desarrolladores tienen una “máquina” remota en la nube donde desarrollan su trabajo utilizando una computadora portátil como interfaz.

En cuanto a las herramientas de trabajo en equipo, utilizamos herramientas estándar como Git para el control de origen. Utilizamos tanto Phabricator como Asana para la gestión de tareas, pero el primero está más cerca de nuestro proceso de implementación continua (consulte Implementación continua en Quora). Para otras cosas, como la gestión de pruebas unitarias, hemos desarrollado nuestras propias herramientas internas.

Podría estar dejando algo fuera, pero esto le dará una visión bastante buena de nuestra “pila de tecnología”.

Los productos que componen la pila tecnológica de Quora incluyen: Adobe Flash, Amazon (EC2, S3, SQS, EBS, Route 53), Apache HBase, C ++, Git, Google Maps, JavaScript, Memcached, MySQL, Phabricator, Python, Redis, Zepto. js, AWS Elastic Load Balancing, Brightcove VideoCloud, Dyn DNS, eNom Domain Registration, GeoTrust SSL, Graphite, HAProxy, Instart Logic, nginx, reCAPTCHA y Ustream.

Además, aquí hay una lista de otros productos de software que Quora está usando internamente:

  • Marketing: Google Apps for Work, Hootsuite, Scribe, SendGrid
  • Ventas y soporte: SurveyMonkey, Zendesk
  • Producto y diseño: Adobe Typekit, Asana, Google Fonts, Replicon
  • Análisis: Apache Hive, Mixpanel, Mouseflow, Qubole
  • HR: AnyPerk, CrowdFlower, AngelList Jobs, Lever
  • Productividad: HipChat, Quip, Slack

Para obtener una lista completa del software utilizado por Quora, consulte: Pila de Quora | Siftery

(Descargo de responsabilidad: los datos anteriores se obtuvieron de Siftery y han sido verificados por personas que trabajan en Quora)

Aquí hay una descripción general rápida de algunos productos de software interesantes que Quora está utilizando internamente:

  • Comercialización: Hootsuite, Scribe, SendGrid, TINT
  • Atención al cliente y éxito: SurveyMonkey, Zendesk
  • Desarrollador: C ++, JavaScript, Python, Redis
  • Devops y TI: Amazon (EC2, EBS, Route 53, S3, AWS), Instart Logic, nginx, reCAPTCHA
  • Producto y diseño: y DeAdobe Typekit, Asana, Google Fonts, Replicon
  • Analytics: Google Analytics, Mixpanel, Mouseflow, Qubole
  • HR: AngelList Jobs, AnyPerk, HackerRank, Lever
  • Productividad: HipChat, Quip, Slack

Para obtener una lista completa del software utilizado por Quora, consulte: Pila de Quora | Siftery

(Descargo de responsabilidad: los datos anteriores se obtuvieron de Siftery y han sido verificados por personas que trabajan en Quora)

Quora está escrito en Python. Puede encontrar más detalles al respecto aquí, donde el fundador de Quora responde sobre por qué decidieron ir con Python.
¿Por qué Quora eligió Python para su desarrollo? ¿Qué desafíos tecnológicos enfrentaron los fundadores antes de decidirse por Python en lugar de PHP?

Phil Whelan, tecnología de Quora examinada
http://www.philwhln.com/quoras-t

More Interesting

¿Cómo está cambiando la tecnología a los niños?

¿Qué elementos (fuera de la tecnología) que son comunes hoy en día habrían existido en la década de 1950 y han sido súper raros y caros?

Audio digital: ¿Qué tipo de archivo tiene la tasa de bits más alta?

GaAs ha sido descrito como "la tecnología del futuro y siempre lo será". ¿Los semiconductores compuestos se convertirán en la corriente principal?

¿Cómo se vería Tamriel si alguna vez llegara a la tecnología que tenemos hoy?

¿Por qué las compañías tecnológicas almacenan información fuera de los Estados Unidos?

¿Cuál es el límite teórico del desarrollo tecnológico?

¿Es bueno el MacBook Air para programar? ¿Es bueno para la multitarea y la programación de Matlab, Visual Studio, Scala y C ++? Tengo un Dell Inspiron 14R con 4GB de RAM e i3 (2da generación). ¿Qué haría una mejor actualización: MBA o MBP (sin retina)?

¿Cuántas generaciones / años se necesitan para que un teléfono quede obsoleto?

¿Cómo serían los extraterrestres tan inteligentes para nosotros como lo somos para los monos?

¿Cuáles son las probabilidades de que volvamos a un estado medieval en el futuro cuando nos demos cuenta del daño que la tecnología IoT está causando en nuestras vidas?

Con el viaje en el tiempo posible, he sido elegido para ir a la edad oscura e impartir tanta ciencia / tecnología del siglo XXI como sea posible. ¿Dónde / cómo empiezo?

¿Qué tecnología es mejor, Microsoft Azure o AWS?

¿Qué productos básicos eran muy caros antes pero baratos ahora (no tecnología)?

¿Qué cosas nuevas podemos hacer a través de la pantalla de doble borde del Samsung Galaxy S6?