"Turn" Stack overflow vice president of research and Development:. NET technology is not bad, just right for you

Source: Internet
Author: User
Tags qcon

The entire Web site architecture has a good concurrency processing power. We process 4 billion requests a month, with spikes of 3,000 times per second, 800 million SQL queries per day, and spikes of 8,500 times a second. https://www.sdk.cn/news/2378

Summary: At the Qcon New York Convention, David Fullerton, engineering vice president of Stack Exchange, delves into how to support a single-block application architecture for the stack overflow site using technologies such as C #, MS SQL, which has about 4 billion user requests per month.

At the Qcon New York Convention, David Fullerton, engineering vice president of Stack Exchange, delves into how to support a single-block application architecture for the stack Overflow Web site using technologies such as C #, MS SQL, which has about 4 billion users per month. Fullerton at the beginning of his speech that although the technical architecture used by stack Exchange's Web site is mediocre, it is interesting to know that it can still work well with such old technology. Stack Exchange Controls and operates several community-based "question and answer" style websites, including the popular stack Overflow developer quiz site.

The Stack Exchange team works in a remote way , and even when team members are working in the same location, the company encourages employees to use only remote collaboration with each other, such as using instant messaging tools and bug trackers. Fullerton said that it is because companies maintain a "hiring smart employees do not hinder their" mentality, so that the system administrator and the entire stack of engineers to form an effective team to build and maintain the smooth operation of the site.

Stack Exchange's sites are designed with an upgraded monolithic application (monolith Plus) architecture, and almost all application logic is implemented by the C # Web layer and the MS SQL database. There are some exceptions to this rule, such as tag-related logic, which has been extracted from a single-block application into a tag engine service, and the caching service is provided by several Redis servers, while the Elasticsearch server provides full-text search functionality.

The development team deploys the application of the website to two data centers, thereby increasing the overall fault tolerance of the system, the New York engine room as the primary data center, the Oregon computer room as a data center for redundancy. The development team updates the server for the entire Web tier in a rolling deployment of the app, which happens every day, from day to night. The testing of the new functionality is performed by a set of real users, who are automatically selected by a series of feature markers.

We'll start by trying (new features) on some sites and watching what's going on. This method is very effective for us. Our web page features a high read load on a single page, not as many personalized content as the pages of other sites, and we have a more tolerant user community.

The concept of Stack exchange is to "first use our familiar skills, measure problems, fix the slow places." The initial developers knew only C # and Ms SQL, so we are still using such a development stack today. Early Web applications leveraged several off-the-shelf tools: ASP. NET MVC,LINQ to SQL conversion, MS SQL full-text search and built-in cache. Fullerton says that in stack Exchange, performance is an important feature because of the customer experience and the positive weighting that search engines have on good-performing sites. Stack exchange typically tests under the actual load (no guesswork and assumptions are allowed), and the development team treats performance issues as a flaw that must be resolved as soon as possible.

The entire Web site architecture has a good concurrency processing power. We process 4 billion requests a month, with spikes of 3,000 times per second, 800 million SQL queries per day, and spikes of 8,500 times a second.

Fullerton says that over time, the main part of the initial technology stack has been superseded: the introduction of Redis to provide caching, the addition of Elasticsearch to improve full-text search capabilities, and the use of a custom intermediate language generation framework instead of the original entity-level object mapping method, This improves the efficiency of SQL access, taking into account both extensibility and new functionality requirements, extracting tag-related logic from the original monolithic application and forming a separate tag engine service.

Tools are useful for identifying and monitoring performance issues, such as Miniprofiler can analyze user requests and detect performance bottlenecks, opserver for monitoring, and dapper can decompose tracking requests. Fullerton says there are many benefits to the performance focus.

You can improve scalability by optimizing performance (almost free). The scalability of a single-block application is beyond your imagination.

Fullerton concludes that the architecture of this upgraded monolithic application is very successful in stack exchange. Although this architecture may seem stale and boring, the way the team adheres to this approach is very interesting. The style of the microservices architecture may be prevalent today, but Fullerton warns that over-use of this model must take on the various SOA costs inherent in this model (SOA tax).

SOA is not the only way to succeed. We need to know our own problem areas, in the process of solving practical problems, extracting services to solve the actual difficulties, rather than imagining the services of unreal.

"Turn" Stack overflow vice president of research and Development:. NET technology is not bad, just right for you

Related Article

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.