0

I've finished programming an entire social network to replace an old one with already 60,000 users, (well after 6 years),but it has 100-300 users on-line at some times. I was going to start putting different concerns on different dedicated servers. But with this whole cloud trend I think I might be making the wrong decision. its that I would need on-demand horse power. I want to void putting an image and video server on another dedicated server, and another chat server. can I just put my php,mysql code on these hosts and they will take caare of the rest? or is there some sort of API involved that I have to program for!?

What are my options?

Neo
  • 369
  • 3
  • 11

2 Answers2

1

A lot of "Cloud Computing" is just marketing jargon for a VPS - sure it's extendable but it will require downtime and migrations between nodes usually impact server performance and result in downtime. Also, the default Apache, PHP and MySQL configuration out of the box for RedHat based systems is no good for small end systems and will require tweaking.

On top of that, don't forget that the "Cloud" is based on a real disk or SAN so will typically have slower than average disk writes and reads so if your application uses the disk a lot it could be impacted.

If you have written your code in a way that is easily scalable (for instance, having functions that return the current database to write to and possibly a different one to read from), I'd recommend starting out with one dedicated server and seeing how good it is for you. If you find your bandwidth is costing you a lot, go for Amazon S3 for storing bandwidth, videos etc. If you find that your database is causing a bottleneck, go for Master->Slave replication between 2 or more servers (writing to one only, reading from any other). If you find your server is running slowly and it's not the database, consider loadbalancing the website. If you find the site loads slow despite the server responding quickly (due to content), consider a CDN.

You should be able to add on any of these things afterwards if the code is flexible enough, if it's not you need to start making it flexible before you worry about scaling.

James L
  • 6,025
  • 1
  • 22
  • 26
1

Before remodeling your whole application to try and fit into the cloud model I would suggest moving your video and image files to a Content Delivery Network. Using a CDN has many benefits, the primary one being that it removes the burden of service large files from your server. For many applications, using a CDN will help you scale 10-100 times beyond what you would get from serving your content from a dedicated server. If you still have performance issues then you may need to look at a faster server or a horizontal scaling solution.

Greg Bray
  • 5,610
  • 5
  • 36
  • 53