[ZT] techniques used by Quora

Source: Internet
Author: User

Many teams are learning and researching Quora. Some time ago I saw this Quora's Technology examined, explained the technical architecture of Quora, and recorded and shared some important information.

Use cloud computing services

Quora uses Amazon EC2 and S3 services in large quantities. The operating system is deployed in Ubuntu Linux, which is easy to deploy and manage. The static content is cloudfront. service delivery: images are first transmitted to the EC2 server, processed using the pyhon S3 API, and then uploaded to S3.

The advantage of using cloud computing services from the very beginning is that it saves a lot of costs for manual maintenance of hardware servers. Of course, this practice is not feasible in our land.

Web layer and CMS

Haproxy serves as the front-end Server Load balancer, the reverse proxy server is nginx, And the nginx is followed by pylons (pylons + paste) to undertake dynamic Web requests.

The webnode2 and livenode internal systems are responsible for creating and managing content. webnode2 generates HTML, CSS, and
Javascript, and has mild coupling with livenode. Livenode is used to display web page content. Python, C ++, and
Written in JavaScript. Jquery and cython are used in particular. Livenode may be open-source.

Why python?

Some Python-related technical components have been mentioned earlier. Interestingly, Facebook's team actually uses python as the main development language. Quora explains this: Choosing PHP on Facebook is not the best choice, but it has historical reasons. The Quora technical team chose python after examining multiple languages. Of course there are a lot of reasons. In general, it seems that it is not very radical.

Communication Processing

Backend communication uses thrift, which is open source from Facebook. In addition to the simple development interface, thrift may also become more familiar. The comet server uses tornado, it is used to process long polling and push updates (what is unknown ?), Tornado is an open-source product of the former friendfeed technical team.

Real-time search

Because sphora cannot meet real-time requirements, Quora
The self-developed search engine is enabled. Only the thrift and Python Unicode libraries are used, and nothing else is used. Quora
Because you need to associate the input content with a valid prompt, you need to provide a better prefix indexing function.

The implementation of Quora search is quite technical, and the query request pressure on the backend is not small (maybe the current number of concurrent requests is not that large ). For this scenario, you may wish to study it carefully. If the general framework is similar, the final cause may be those details.

Data Persistence Layer

MySQL is widely used as the storage solution and memcached is used as the cache layer. No nosql products are currently popular. Quora has its own reason to do this. There is no need to use nosql for SNS websites with millions of users. Quora may be enabled later.

The Founders Charlie Cheever and Adam d'angelo were both on Facebook
Therefore, Quora has many Facebook genes. Quora
The team size is not large, and more than 10 people are estimated to be engaged in technology. Such a compact team has used so many technologies and products that many people are versatile. This is the place where Chinese technical teams need to learn from their foreign counterparts.
.

-- EOF --

Author:Fenng |Can be reproduced, but must be indicated in hyperlink formArticleSource and author information and copyright notice
Http://www.dbanotes.net/arch/quora_tech.html


Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.