Answer the question
In order to leave comments, you need to log in
What is meant by "knowledge of the features of high-load projects"?
In some vacancies on hh.ru, there will be a very obligatory item for all candidates - this is experience and knowledge of the features of high-loaded projects. Googling leads to ambiguous results - all found articles interpret different approaches and priorities.
So what exactly should a web programmer know about the features of high-load projects?
Everyone knows about caching and Memcached, but surely these features also include a lot of everything?
Answer the question
In order to leave comments, you need to log in
DB.
Replication, normalization-denormalization, index optimization, ur. transaction isolation. Selection and separation of various data on various engines and types of storages. (NoSql, Couch, elastic...)
Code.
Profiling. Optimization. Evaluation of the complexity of the implemented algorithm and search for less costly solutions. Rewriting some tasks in another jap. (Haskel, scala, go, C ) Parallelization. Workers (gearman).
Deployment problems. Release policy.
Sharding, partitioning, features of database optimization, queries, DBMS settings.
The ability to design so that when there are 1000 requests per second, the base does not fall.
It is desirable to optimize scripts to know which functions consume more resources, which ones consume less.
Read a series of articles Academy of High Loads
Book HL++ book, 2010 - 2011
In fact, there is nothing wrong with highload, and it is strange to specifically require some kind of knowledge: everything is absorbed very quickly.
It is assumed that you worked in a project for which one server is not enough and faced the problem of decoupling a service and a database into a bunch of servers.
This is a combination of factors, hardware, software tincture and the actual code itself. Curvature in one will negate the advantages of the rest. So here cooperation should be an intelligent admin and webmaster
Personally, I would reformulate "experience and knowledge of the features of high-load projects" into "Ability to use Blackfire Profiler ".
In the vast majority of "type of high-load" projects, you just need to sit down and refactor bottlenecks, for example:
Now, of course, they can tell me that for highly loaded services, you need to design a separate application architecture, set up database replication, install two or more application servers and balance the load on them via DNS, etc. I agree with you that this is real and there is a highload, however, in the vast majority of projects with which I worked, there is no real high load and does not smell ... Just some junior, 3rd year student of a non-capital university due to lack of experience and the wild screams of the project manager about the overdue deadline wrote the code with a swollen head at 3 am under the 4th can of energy...
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question