When translating the phrase «Highload systems» is not difficult to understand what we are talking about heavy duty engines. Another thing is to understand what they are and why they are loaded
Why do we need such a system and what they look like
Highload systems are the same websites, only with a very large audience, and as a result with a large load, requiring optimized server part of the web site. Qualitative characteristic for high-load system is the output of this system, it describes the amount of work that must be performed by the system per unit of time.
Examples of highly loaded systems can be such websites as Google, Facebook, Vkontakte, Flickr, Amazon, YouTube, Wikimedia, LiveJournal, Twitter, MySpace and many others. Also to heavy duty systems we can include browser-based multiplayer games.
A clear lower boundary, where highly loaded system end and usually websites begin, does not exist.
As for the usual site for highload system server is required (and more often multiple servers), where system will be located. The operating system for this server is generally used one of the Linux distributives. The most common – CentOS, Debian, Fedora, Ubuntu and Red Hat. Sometimes we use the server versions of Windows, but is rather an exception.
As a Web server, usually Apache and nginx are used. Model frontend / backend system in which acts as a frontend lightweight is web server nginx, and the backend presented by Apache. Such a model allows you to save system resources, due to the fact that requests are accepted by nginx, nginx passes the request to apache and quickly received a response, and then apache frees the memory, and then nginx interacts with the client (gives all page objects that do not require PHP work, such as pictures, style boxes, Java scripts), which is written for the distribution of static content, a large number of customers, with little consumption of system resources. In addition, such a bind facilitates scaling. For ordinary sites usually single Apache is used. This scheme makes administration easier.
PHP, Perl or Ruby on Rails are used as a scripting programming languages. The most common PHP.
MySQL or PostgreSQL are used as a databases. MySQL is more common and easier to configure. It is considered that PostgreSQL is more powerful database management system, but more complicated to set up. The choice is made depending on whether what operations are made with databases in each particular system.
This is an introductory article on the theme: «Highload systems». We will tell you more information about problems and solutions for Highload system in future articles.