Large website records and website records
Reading experiences in "technical architecture of large websites: Core Principles and Architecture Analysis" (I hope you can correct the mistakes if any of the following statements are correct)
1. Machine Evolution
Initial architecture level 1: an application server contains applications, files, and databases.
Level 2: divided into three server application servers, file servers, and database servers.
Level 3: Create a cache to cache the most commonly used data, which is divided into two levels: 2.5 and 3. 2.5 depends on the large memory, and 3 depends on the remote distributed cache server.
Level 4: Cluster of the Application Server. A Server Load balancer instance is added for scheduling.
Level 5: When the database load is too high, use the master-slave separation technology to create a master database, a slave database, two types of direct data synchronization, and read and write separation.
Level 6: Accelerate network access in various regions and use reverse proxy and CDN for caching. 6.5. Database Service is split into databases to form a distributed database system. The necessary big data uses NoSQL and other technologies.
Level 7: MQ for data and Queuing Service for data submission (for example, seckilling and flash sales). Special Treatment in special circumstances
When the above architecture is deployed in clusters, there are already hundreds of servers.
Of course, no website is born to be big, and it is evolved step by step. At the beginning, there were no more considerations. First, let's do it first and then proceed with the architecture step by step.
2. Website Evolution
Do not describe the Business Achievement mode for the purpose of the model. Different business models are different. (This should be in chemistry. The model adapts to the business and can survive)
Layered means: application layer, service layer, data layer, and so on
Segmentation means: for example, the layer is the horizontal cutting of the cake, and the vertical cutting. Separate functional services to the extent that they can be deployed separately
Distributed: (that is, more computers can perform the same function. For example, if two computers deploy the same website, and the other computer places the database to provide the two computers) functions and functions are separated to fulfill their respective duties, just like a large factory, with the division of labor and cooperation in various pipelines.
Cluster: a cluster is also a collection of many servers. multiple servers can be automatically added for expansion. When one server is down or under too much pressure, other servers are not affected. When your business grows, you can add or delete servers. Distributed is a division of labor, and clusters are concentrated into a group and provide external services.
Disaster recovery: disaster recovery for data, data center Establishment, disaster recovery data
Automation: automated tools for websites.
Security: complete website security team for large websites
Performance: Concurrent processing, throughput, high-quality code, front-end optimization, File compression, reduced redundancy, server configuration, and other performance.
There is no silver bullet in everything. If one technology doesn't work, you can ask for another one, but whether it works is another thing. The book advocates the most: if one person is not good, two people will come, and then make reasonable scheduling to form a highly available website.