

Is it possible to make a enterprise website using PHP still? - robertross

I'm talking millions of requests a week, is there a way to scale PHP to handle this?<p>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.<p>Ideas?
======
elliottcarlson
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&...](https://docs.google.com/present/view?id=dcbpz3ck_25czcns2c2&revision=_latest&start=0&theme=blank&cwj=true))
than the actual platform.

------
bond
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.

~~~
rewind
Just don't forget to design for peak, not average (although this isn't PHP-
specific).

~~~
bond
Yes, you're right, peak is very important.

------
perucoder
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>

~~~
ze_dude
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.

~~~
ultrasaurus
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.

~~~
robertross
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>)

