I'm new(first post), and I want to know, if I have startup project, where to host it (I mean dedicate server)
I need to have possibility to easy-scale.
It don't have to be cheap, must be reliable, good cross-bandwidth and solid company (Europe-USA, so it could be in usa or europe, but with good bandwidth to other continent)
And some friendly folks at support
What is your budget? Do you have a server specs in mind?
Budget for server max $400/mo (for now) (Now using about 1,5GB ram (VPS) so RAM 4-8GB, CPU some Xeon 2 or 4 cores).
I want to have reserve, so low load, and after growth, when load will be higher, some load balancing (=> there's the thing -I don't know much about load balancing so I will prefer if company will be able to offer this in future)
Oh, and I good connection between USA-EU will be great (now in europe have connections to some providers in US just 90KB/s)
You can do load balancing for http stuff through various DNS providers which can do round-robin type of LB. For MySQL, you'll probably go for Master-Slave sort of setup, though it really depends on your application and what is the most sensible decision on how to scale it.
High Bandwidth Servers
Custom Hosting Solutions
PHP and MySQL (memcached) based applications for social network (facebook)
Growth is relative fast, and local VPS is not enought, so scaling in future is possible
You will need to do a little planning. Scaling out the web application has different considerations than scaling out the database. You may want to do both the same way by just adding load-balanced servers, or partition the db tables and distribute them among several servers.
On the other hand, you may just need to scale up by moving to bigger and bigger server over time.
Keep in mind, all this can be done among several VPSes also
If fast growth is a realistic expectation, and your budget and expertise allows for it, get a 1/4 rack and create your own infrastructure under your own management.
If you want a cost effective way to support unpredictable growth spikes you’ll need to go with an Infrastructure as a Service provider. Using a traditional dedicated server provider or collocating servers yourself mean that you’ll be paying for peak capacity all the time while you are using it or not (and pay the upfront and management costs). With a cloud server provider you can start with 2 or 3 servers to minimize costs and build your scaling strategy in from the beginning. So when you do need more capacity you can demand it, receive it minutes, and only pay for what you use.
To handle huge amounts of traffic the industry standards is hardware load balancers. Software load balancers max out at hundreds of connections per second and DNS based solutions offer little control in the event of a failure or for session management.
You should have 2 sets of serves (one for web apache/php, and one for mysql). Send all of your incoming HTTP connections to a hardware load balancer and it will proxy the connections to appropriate server based algorithm you select (round robin, lowest connections, fastest response, all with our without session persistence). With all server cloud providers you can create an Image of your web server that will enable you to scale your capacity up or down with a single click. Scaling MySQL is more complicated. You should start by using a single server and running everything through that one server for as long as possible. To handle hardware failure on this system replicate the database to a slave server and you’ll have a hot standby. The next levels of scaling for MySQL involve adding a MySQL query proxy and sending SELECT statements to slave database and UPDATE/INSERTS to a master. By the time you outgrow a single mysql server you’ll hopefully be making a ton of money (if not you should think about database optimization).
For your first configuration I suggest 2 servers (one for database and one for web each backing up the other). Your web failover can be handled by a hardware load balancer and your database failover can be handled with a script that modifies your application properties. Then build server images for your web server and database servers so that you can scale quickly when necessary.
wxdevice I am facing a very similar circumstance and the replies in this thread have been an excellent resource for us. I'm new here as well and this is also my 1st post. I've spent some time mucking about several threads and the quality of most responses here have been concise, relevant, helpful, polite and thorough. I'm really looking at the cloud solution but we're open to most alternatives with some minor exceptions. We also have situations where we need to plan fast scaling capabilities for SAAS products involving db's other than mysql although we have web apps running with mysql. Anyway, keep us posted on your decision making process and outcomes. I for one am extremely interested in the solutions you arrive at and the route you've taken to get there. Good Luck
All The Best
Last edited by skydivedad; 08-11-2009 at 11:37 PM.
Reason: stupid typo