G
G
gresus2011-04-11 12:24:02
Web development
gresus, 2011-04-11 12:24:02

On what to write the project under the big loading?

Advise on what to write a project for a large load?
50-100k per day.
If it is possible with an explanation why the choice in favor of one or another solution?
At the moment I'm leaning towards Yii if php, friends advise Django. To what extent does it fit projects with a load? what about ruby ​​on rails?

Answer the question

In order to leave comments, you need to log in

24 answer(s)
H
holyorb2, 2011-04-11
@holyorb2

You need to write on what you can!

S
Sergey, 2011-04-11
@bondbig

50-100k per day.
What is this metric? Unique? Requests? Maximum online?

C
ChemAli, 2011-04-11
@ChemAli

No difference. Bottlenecks will still be not in the language and framework, but in architectural blocks and data exchange channels between them. The input data is not enough to give you an answer.

V
VlK, 2011-04-12
@VlK

The question is fundamentally wrong and somewhat amateurish: "I want a site so that a lot of people climb."
What site? Service a la Twitter? News, where you can generate static? Interactive a la social networks? Backend for flash toy? Distribute files / videos in large volumes?
It may look so different that even approximately it is not necessary to argue.

D
Denis Ilinykh, 2011-04-11
@greyhard

in Perl

I
iSlava, 2011-05-12
@iSlava

I can suggest python (django) + wsgi gevent server + memcached + haproxy (nginx is possible). all of which will withstand such a load perfectly. Python is a pleasure to write, and Janga has excellent documentation. further support will be easy

C
calg0n, 2011-04-11
@calg0n

IMHO, the language is absolutely not important. Each has its pros and cons. Won Stackoverflow on asp.net, VKontakte on php + xcache, LJ on perl.

B
Begetan, 2011-04-11
@Begetan

1. Do nginx right away
2. Don't suffer from premature optimization. In my amateurish opinion, High Load requires a fundamentally different approach to development. At the very least, you should have a working prototype in order to see the bottlenecks of the architecture on it and rewrite everything in the right way. Usually the bottleneck is SQL. So see Memcahed, Redis.
The development environment and the framework are secondary here, because, as already mentioned, they are not ready for a high load out of the box. Choose what is easier to finish later.

R
Rinat Shaikhutdinov, 2011-04-11
@rinat_crone

I would recommend Ruby on Rails. It is used on many large projects, in particular - on Twitter. Plus, the framework is very rich in functionality, so developing a prototype will be a breeze.

P
Puma Thailand, 2011-04-11
@opium

If you have 100 thousand uniques a day, then you can write on anything, it will still work, at least php + muscle, at least rock + mongo, at least asp + msskl.
In general, any platform makes it possible to provide for scaling, and it’s not appropriate to say that it’s better here, it’s better to write on what you know and can optimize.

A
ajaxtelamonid, 2011-04-11
@ajaxtelamonid

You are not a developer, but a customer? You didn't start your search from there. You can write on anything, the language is not important AT ALL. The speed is the same, all the same, everything will rest on the thoughtfulness of caching and the database (perhaps mysql is suitable for you, or perhaps it is better to pay attention to postgre).
Look for a professional, he will tell you what is best to do.
And here there are nuances - there are a lot of low-skilled personnel in php, as a rule, smart people are tied up in the field of junga or rails. So it's easier to find professionals there. But it will also cost more.

D
diostm, 2011-05-12
@diostm

Write on what you know best. The ruby ​​on rails twitter was written in its entirety. There was a need - they rewrote part of the functionality to either Scala or Java.

A
AlexeyK, 2011-04-11
@AlexeyK

What is the project? What kind of data will you be working with and what is the request rate/average response size?

F
Fafnir, 2011-04-11
@Fafnir

You see, application scaling is not a default feature of a particular framework or language. ) Moreover, premature optimization is evil. It’s better to do at least something first, otherwise competitors will catch up.

G
Gibbzy, 2011-04-11
@gibbzy

Here, in addition to the implementation, the work of the system admin team is also important, which should be able to configure the web server correctly.
The last time I wrote a project on Yii 50k visits per day, it’s nice and not difficult to work with caching in yii, the framework is smart, everything worked fine, of course you need direct hands, the absence of any incorrect sql queries, etc.
I will not undertake to speak for the rest of the frameworks because I am not competent.

A
admin4eg, 2011-04-11
@admin4eg

Quite rightly said, you can write on anything, the choice of new frameworks is for self-development, so I began to study Django, along the way I am writing one project.
about high load, I have a site that, at 1 thousand per day, began to take 2x processor zeon to 100%, with 4 gigs of memory ... then there were 2 years of optimizations and various layers of caching.
if you want advice, then perhaps
1 database scheme with “light queries” (and well, you also need to approach the choice of the database correctly so that there is no sparrows from the cannon
) one line in the config, although I'm sure it is in the rails).
- this is enough to understand whether it is necessary to get further into optimization and “whether it will start”
if you go further than
3, if that's just a hundred thousand per day, then perhaps the content blocks generated also go to the memcashed. (uh, maybe even noSQL in the first paragraph?), and well, I don’t think I can do without a CDN
, but in general it’s all nonsense, how many times I stepped on this rake, there ALWAYS came the moment “damn it’s easier to rewrite from scratch”

P
phasma, 2011-04-11
@phasma

50-100 thousand people per day can withstand the usual php + mysql + some memcached or even a regular file cache :)

K
kutanov, 2011-04-12
@kutanov

You have to write with your brain. If you know enough about the architecture of modern computers, the features of the language itself and the work of its interpreter, you can build on anything. Here the question is in the speed, complexity, ease of implementation of some individual mechanisms.

C
Co0l3r, 2011-04-12
@Co0l3r

Yandex uses django, ruby ​​is used on twitter, there are also examples with php. All these technologies have been tested in one way or another, but they also have their weak points. Look for specific problems that may appear in your environment and build on them.

I
Iliapan, 2011-04-13
@Iliapan

It seems to me that it is better to start by looking for a specific person - a specialist in the development of high-load systems. And let him write what he is used to.

E
easyman, 2011-04-13
@easyman

If there is a question of a working prototype: take something with a bunch of already implemented social functions and stretch your template. For example: Community server, Sharepoint 2010.
As for the real application: it will be necessary to evaluate what needs to be improved and how much.

A
andoriyu, 2011-04-13
@andoriyu

Spit on what to write the initial version. The main thing is to immediately think over a good application architecture. Separate the application into separate parts (like in Twitter, for example, their web interface itself works at the same level as other clients - through the API). Again, it all depends on the task. I decided to first do everything in ruby, if I hit the performance ceiling, then I will rewrite it in jruby, if I hit it there - erlang.
Again, it all depends on the task.

E
Evgeny Bezymyannikov, 2011-05-12
@psman

The language is not important, since the implementation of the logic is the second business for HiLoad.
The basis of everything will be a system for storing / retrieving / recording data.
If a request for user data goes to sql and arrives in 0.2 seconds, then 5 users per second will start to bring down the database.
And another tip, write everything down to individual actions:
writing information about the user,
showing the form for editing a personal profile
, etc.
and take it as a postulate that each action will be performed on a separate server, then the brain switches a little to the “how so” mode, and after a short period of system design, an understanding comes of how it should work, how it is possible to store different types of data in different databases, etc. P.

D
Dan, 2014-06-26
@golotyuk

A lot of useful information about development under load and optimization of Web applications:
ruhighload.com/sitemap

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question