Evolution of System Architecture

Source: Internet
Author: User

System Architecture Evolution Process-initial stage architecture


The initial stage of the small system applications, databases, files, and all the resources are commonly called lamp on a single server

Characteristics:
All resources, such as applications, databases, files, and so on, are on a single server.

Describe:
Usually the server operating system uses Linux, the application uses PHP development, then deploys on Apache, the database uses MySQL, gathers the various free open source software as well as a cheap server to begin the system development road.

System Architecture Evolution-separation of application services and data Services

Not long, found that with the increase in the number of system visits, webserver machine pressure in the peak will rise to a relatively high, this time began to consider adding a webserver

Characteristics:
applications, databases, and files are deployed separately on separate resources.

Describe:
The data volume increases, the single server performance and the storage space is insufficient, needs to separate the application and the data, the concurrency processing power and the data storage space has greatly improved.

System architecture evolution-using caching to improve performance

Characteristics:
A small subset of data accessed in the database is stored in the cache server, reducing the number of accesses to the database and reducing the access pressure on the database.

Describe:
System Access features follow the 28 law, which means that 80% of business access is concentrated on 20% of the data.
The cache is divided into local cache and remote distributed cache, where local cache access is faster but the amount of cached data is limited, while there is contention for memory with the application.

System architecture Evolution-Using Application server clusters

After doing the work of the sub-Library, the pressure on the database has dropped to a relatively low, and began to watch the daily traffic surge of happy life, suddenly one day, found that the system's visit began to slow trend, this time first to view the database, pressure all normal, then view webserver, found that Apache blocked a lot of requests, and the application server for each request is also relatively fast, it appears that the number of requests is too high resulting in the need to queue waiting, slow response

Characteristics:
Multiple servers provide services externally through load balancing, addressing the problem of single-server processing power and storage-space ceilings.

Describe:
The use of clusters is a common means of solving high concurrency and massive data problems. By appending resources to the cluster, it can improve the concurrency of the system, so that the load pressure of the server is no longer a bottleneck of the whole system.

System Architecture Evolution-Database read/write separation

Enjoy a period of time the system visits the high-speed growth of happiness, the discovery system began to slow down, this is what the situation, after looking, found that the database write, update some of these operations of the database connection resource competition is very fierce, causing the system to become slow

Characteristics:
Multiple servers provide services externally through load balancing, addressing the problem of single-server processing power and storage-space ceilings.

Describe:
The use of clusters is a common means of solving high concurrency and massive data problems. By appending resources to the cluster, the load pressure on the server does not become the bottleneck of the whole system.

System Architecture Evolution-Reverse Proxy and CDN acceleration

Characteristics:
Use CDN and reverse proxy to speed up system access.

Describe:
To cope with complex network environments and access by different local users, the speed of user access is accelerated through CDN and reverse proxies, while reducing the load pressure on back-end servers. The rationale for both CDN and reverse proxies is caching.

System Architecture Evolution-Distributed file systems and distributed databases

With the continuous operation of the system, the volume of data began to grow substantially, this time to find the library after the query will still be a little slow, so according to the idea of the library began to do the work of the sub-table

Characteristics:
The database adopts distributed database, and the file system adopts distributed File system.

Describe:
Any powerful single server can not meet the continuous growth of the business needs of large-scale systems, database read and write separation as the business development eventually will not meet the demand, need to use distributed database and distributed file system to support.
Distributed database is the last method of system database splitting, only used when the scale of single table data is very large, the more commonly used database splitting means is the business sub-Library, and the different business databases are deployed on different physical servers.

System architecture Evolution-using NOSQL and search engines

Characteristics:
The system introduces NoSQL databases and search engines.

Describe:
As the business becomes more complex, the need for data storage and retrieval is becoming more complex, and the system needs to adopt some non-relational databases such as NoSQL and sub-database query technologies such as search engines. The application server accesses various data through a unified data access module, alleviating the hassle of application management of many data sources.

Evolution of system architecture-business split

Characteristics:
The system is split by business, and the application server is deployed separately according to the business distinction.

Describe:
In order to deal with the increasingly complex business scenarios, it is common to divide and conquer the entire system business into different product lines, to establish relationships between applications through hyperlinks, to distribute data through message queues, and, of course, to form an associated complete system by accessing the same data storage system.

Split vertically:
Split a large application into smaller applications, and if the new business is more independent, deploy its design directly as a standalone web application

Vertical splitting is relatively simple, by combing the business, will be less relevant to the business stripping.

Horizontal split: Split the reused business and deploy it independently as a distributed service, and the new business only needs to call these distributed services

Horizontal splitting requires identifying reusable businesses, designing service interfaces, and standardizing service dependencies.


System Architecture evolution-distributed services

Characteristics:
The public application module is extracted and deployed on the distributed server for provisioning with server invocation.

Describe:
As the business becomes smaller, the overall complexity of the application system increases exponentially, because all applications are connected to all database systems, resulting in insufficient database connection resources and denial of service.

System Architecture Evolution History

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.