Hacker News new | ask | show | jobs
Is it possible to make a enterprise website using PHP still?
2 points by robertross 5724 days ago
I'm talking millions of requests a week, is there a way to scale PHP to handle this?

The reason I ask is because I have a co-worker that told me Foursquare had changed from PHP to Vala because PHP was too slow.

Ideas?

3 comments

If you are able to build everything with a high-scalability mindset from the get-go there is no reason why PHP can't be used to such a capacity. There are naturally hurdles that you will overcome as well - but realistically there will be scalability hurdles in any dev environment you choose to scale to those kinds of numbers.

Remember to cache, load balance and minimize disk i/o and you already have a good head start.

On a side note, Foursquare is using Scala with the Lift framework, not Vala. And from what I understand, Harry wasn't the original developer when it came to the PHP version of Foursquare (and if I understand correctly, the original developer wasn't even an engineer). When the time came to move on to something bigger and better, Harry rewrote it using Scala because of various personal preferences (Java background, preference to compiled and typed code, etc). So the decision to move from PHP because of performance issues may be more related to poor quality of code (as stated in this slide deck: https://docs.google.com/present/view?id=dcbpz3ck_25czcns2c2&...) than the actual platform.

Sure it can handle millions of requests a week.

So 1week=7days=168hours=10080minutes=604800seconds

For 1 million requests/week= 1.65Req/sec

For 5 million requests/week= 8.26Req/sec

For 10 million requests/week= 16.53Req/sec

For this kind of traffic there's nothing to worry about. I'm not an expert so someone with more experience can say if this numbers are ok.

Just don't forget to design for peak, not average (although this isn't PHP-specific).
Yes, you're right, peak is very important.
Facebook uses PHP for the user-facing portion of the site. Here's a link where they discuss some of what they do

http://blog.facebook.com/blog.php?post=2356432130

However, Facebook uses HipHop (http://developers.facebook.com/blog/post/358) to make PHP faster (so it's not the plain-vanilla PHP).

From the linked article:

HipHop programmatically transforms your PHP source code into highly optimized C++ and then uses g++ to compile it. HipHop executes the source code in a semantically equivalent manner and sacrifices some rarely used features such as eval() in exchange for improved performance. HipHop includes a code transformer, a reimplementation of PHP's runtime system, and a rewrite of many common PHP Extensions to take advantage of these performance optimizations.

Although it's safe to assume you won't have scalability problems right out of the gate either.

Once you have tens of thousands of hits a week presumably you can port to HipHop yourself ( http://github.com/facebook/hiphop-php ). Needing to scale is a great problem to have.

I completely agree, the best problem in the web world. That's why I'm trying to think of it now because I open the doors to a project I'm developing for myself.

What about the projects that use PHP extensions in the .ini to speed things up (such as http://pecl.php.net/package/APC)