Design of large-scale high-performance ASP. NET System Architecture

Source: Internet
Author: User
The large-scale dynamic application system platform is mainly designed for the underlying system architecture built for high-traffic and high-concurrency websites. The operation of large Websites requires a reliable, secure, scalable, and easy-to-maintain application system platform to ensure the stable operation of website applications.

Large Dynamic application systems can be divided into several subsystems:

Web Front-end system

Server Load balancer System

Database Cluster System

Cache System

Distributed Storage System

Distributed Server Management System

CodeDistribution System

Web Front-end system 

 

To share servers of different applications, avoid spof, centralized management, and unified configuration, all servers are used in a unified manner instead of servers, each server can provide services for multiple applications. When the access volume of some applications increases, the performance of the entire server cluster can be improved by adding server nodes, which also benefits applications. 

TheWebFront-end system based onIIS/ASP. NETProvidesPHPProgramRunning environment. The server is transparent to developers and does not require developers to intervene in server management. 

Server Load balancer System

 

Server Load balancer systems are divided into hardware and software. High Hardware load balancing efficiency, but expensive, suchF5. The software Server Load balancer system is cheaper or free, and the efficiency is lower than that of the hardware Server Load balancer system. However, the software Server Load balancer system is sufficient for websites with higher or higher traffic, suchLVS, nginx. Most websites use hardware and software Load Balancing systems. 

Database Cluster System

 

BecauseWebThe front-end adopts the Server Load balancer cluster structure to improve the service validity and scalability. Therefore, the database must be highly reliable to ensure the high reliability of the entire service system, how to build a highly reliable database system that can provide large-scale concurrent processing?

We can use the following solution: 

1)UseSQLDatabase, consideringWebThe application database has the features of reading, writing, and less data. We mainly optimize the read database and provide a dedicated read database and write database, read operations and write operations are performed in the application to access different databases respectively. 

2)UseSynchronizationMechanism to quickly migrate the master database(Write Database)To the slave database.(Read Database). A master database corresponds to multiple slave databases, and data in the master database is synchronized to the slave database in real time. 

3)There are multiple write databases, each of which can be used by multiple applications. This can solve the performance bottleneck and spof issues of the write database. 

4)There are multiple read databases, and load balancing is achieved through the load balancing device, so as to achieve high performance, high reliability and high scalability of the read database. 

5)The database server and Application Server are separated. 

6)Use from databaseBigipLoad balancing. 

Cache System

 

Cache can be divided into File Cache, memory cache, and database cache. In largeWebThe memory cache is the most used and most efficient in applications. The most common memory cache tool isMemcachd. Using the correct cache system can achieve the following goals: 

1The cache system improves access efficiency, server throughput, and user experience.

2Reduces the access pressure on databases and storage set servers.

3,MemcachedThere are multiple servers to avoid spof, provide high reliability and scalability, and improve performance.

Distributed Storage System

WebThe storage requirements on the system platform have the following two features:

1)The storage capacity is large, which often reaches the scale that a single server cannot provide, such as photo albums, videos, and other applications. Therefore, a professional large-scale storage system is required.

2)Server Load balancerClusterEach node in may access any data object, and each node's data processing can also be shared by other nodes. Therefore, the data to be operated by these nodes can only be a whole logically, it is not an independent data resource.

Therefore, a high-performance distributed storage system is an important part of large-scale website applications.(A brief introduction to a distributed storage system is required.)

Distributed Server Management System

As Website access traffic increases, most network services provide external services in the form of a server Load balancer cluster. As a result, the scale of clusters expands, in the past, the single-host server management model could not meet our needs. New requirements must be centralized, grouped, batch, and automated for server management, execution Plan tasks that can be quantified.

There are some excellent software in the distributed server management system software, one of which is idealCfengine. It can group servers. Different Groups can customize system configuration files, scheduled tasks, and other configurations.

It is based onC/SAll server configuration and management scripts are stored inCfengine ServerAnd the managed server is runningCfengine ClientProgram,Cfengine ClientPassSSLEncrypted connections regularly send requests to the server to obtain the latest configuration files and management commands, script programs, patch installation, and other tasks.

WithCfengineWith this centralized server management tool, we can efficiently implement large-scale server cluster management, managed servers andCfengine ServerIt can be distributed anywhere and can be quickly and automatically managed as long as the network can be connected.

Code Distribution System

As Website access traffic increases, most network services provide external services in the form of a server Load balancer cluster. As a result, the scale of clusters expands, to meet the batch distribution and update of program code in the cluster environment, we also need a program code publishing system.

This release system can help us achieve the following goals:

1)Production Environment servers provide services by means of virtual hosts, without the need for developers to intervene in maintenance and direct operations. The publishing system can deliver programs to the target server without logging on to the server.

2)We need to implement internal development, internal testing, production environment testing, production environment release4Development stage management, the publishing system can be involved in the code release of each stage.

3)We need to implementSource codeManagement and version control,SVNThis requirement can be fulfilled.

Common tools can be used hereRsyncTo implement Code Synchronization and distribution between server clusters by developing corresponding script tools.

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.