Recent reading and system development and deployment process of some experience, and then against their previous experience, many are heard only, of course, there are some are already very familiar with, some are engaged, some future hope can be put into practice, leaving this record.
1. Load Balancer Server
The primary role of a load balancer server is to scale up certain types of servers. For example, the system front-end Web server and back-end database server, want to through the server to achieve n+1 scale-out, through multiple servers load sharing pressure, load balancing is essential.
2. Web server
Most commonly, memory requirements are not high but CPU requirements are high, and are primarily used to deploy a variety of Web applications, such as Web pages with interfaces, Web services without interfaces, WCF, and so on.
3. Cache server
Large and medium-sized web sites, distributed caches are standard, and cache servers are dedicated to deploying distributed caches, generally with high memory and bandwidth requirements.
4. Message Queuing server
The queue is the system decoupling weapon, is also the medium and large scale distributed system standard, does not have the queue, the business system is easy highly coupling, the system throughput also quickly encounters the bottleneck.
5. File Server
Distributed File system, designed to store all kinds of files, multimedia files, etc. required by business system.
6. Index Server
For Web site full-text indexing, search prerequisites. For high memory and CPU requirements, large Web sites typically also require support for master-slave backup and fault tolerance, and even multi-instance index clusters.
7. Search Server
Often need to deploy more than one, otherwise the performance of the query is not enough, the memory requirements are not high. Some small and medium-sized sites, index and search servers are both physically and logically the same server.
8. Job Server
Mainly used in the back-end application of large quantities of big data complex business logic of the timing of the operation, most Internet companies standard, some enterprises scheduled scheduling framework is directly deployed on the Web server, can reduce the so-called job server here.
9. Database server
Primarily used to store and query data. The database is in fact the standard of various systems, memory and CPU requirements are very high, network and hardware requirements are not low. Large and medium-sized web sites also need to support the database's master-slave backup and fault tolerance, even multi-instance db clusters.
Typically, large and medium-sized Internet applications experience a process from a single database server to a Master/slave master-slave server, to a vertical partition (sub-Library), and then to a horizontal partition (table, sharding). In this process, master/slave and sub-libraries are relatively easy, the impact on the application is not very large, but the table will cause some difficult problems, such as can not cross multiple partition join query data, how to achieve the DB load, etc. At this point, a generic DAL framework is needed to mask the impact of the underlying data store on the business logic, making access to the underlying data completely transparent to the application.
10. NoSQL Server
The rise of massive data processing, the emergence of a variety of NoSQL products, NoSQL server is mainly used for processing large amounts of data, support storage, query, sharding and so on.
In Web applications, there are two things that have been poorly implemented horizontally or are expensive to implement due to historical problems, as you know, a, database B, network bandwidth.
While some nosql issues are likely to solve this legacy problem, there are now NoSQL products that make up for the disadvantage that relational databases are inherently unsupported for scale-out, and are replacing relational databases in specific scenarios.
11. Other
Demand changes and application needs, some Internet enterprises may also derive a security-based authorization/Certificate Server, globally unique serial number server, session server and so on.
Reference:
<< Large web site technology architecture >>
<< build high-performance Web sites >>
Http://www.cnblogs.com/terryli/archive/2008/04/06/1139121.html
Http://www.cnblogs.com/ejiyuan/archive/2010/10/29/1796292.html
http://kb.cnblogs.com/page/99549/
Http://highscalability.com/blog/2014/7/21/stackoverflow-update-560m-pageviews-a-month-25-servers-and-i.html
Http://www.infoq.com/articles/perera-data-storage-haystack
http://lethain.com/introduction-to-architecting-systems-for-scale/
A few server knowledge that must be known in order to organize large site architecture