Is it possible to make a enterprise website using PHP still?
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.
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.
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.
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
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.
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.
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)
What about the projects that use PHP extensions in the .ini to speed things up (such as http://pecl.php.net/package/APC)
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?