Cloud Servers

Can someone explain to me how Cloud Servers ACTUALLY work for web applications? I’ve watched many Youtube videos and many tutorials on it and I still do not understand how this model would work for websites?

Lets say I make a social networking website that has 100,000 page views a day. Obviously, I need a very powerful Dedicated Server. If i were to transfer this website to Cloud Servers, how exactly would that help me? I understand you can turn on servers whenever you need them, but how exactly does that work? Would I turn on a new server to store new files/databases, or would it automatically lighten the load on the existing servers by deviating files/databases?

I don’t understand. Someone please explain. All the videos I watch just explain how much the cloud is better than dedicated because everything is stored in the cloud…what? What the hell exactly is in the cloud?

The main advantage of “the cloud” or really “a cloud-style architecture” would have in that case is that you can very easily scale your social network out. Meaning add more web servers and such on the fly to handle load. In the case of your “very powerful dedicated server” you eventually hit a point where you can no longer add more resources to make the server handle more load, you will need more servers.

Note this requires designing your application to handle this sort of scenario which is why you see people talking about stateless, shared-nothing architectures and such.

The one that I can’t seem to get my head around properly, is how they run, say, beyond the number of cores or memory in a single host server. I can see the benefits and reasons to / against cloud based hosting, but from a web hosting point of view, once you hit some limits your website needs to know how to scale beyond that - in old terms, adding another server and splitting your load, how does a cloud handle this when you just throw more cpus/ram at your ‘instance’.

There’s a separation between hardware and software.

  • Hardware
  • O/S
  • Cloud Platform software
  • Your server instance

And then somewhere in there is all the networking stuff for load balancing, backups, and failovers.

Yeah, indeed… my point though, when you get “48 cpu cores and 128GB of ram” you aren’t getting something that can run on one physical server, obviously if you are running an ‘instance’, that is surely limited by the hardware of its host server - thats the bit i’m struggling to understand, how one “instance” can run across multiple servers keeping itself in sync properly etc :smiley:

That’s what the cloud platform is responsible for–coordinating all that and keeping everything synchronized. Essentially, it’s a magic black box. Each host has their own unique solution for it.

Facebook recently released the details of their computing environment, so it might have some of the details you’re after: Open Compute Project

Here’s some general information on cloud computing: HowStuffWorks “How Cloud Computing Works”

The other angle is your app doesn’t think in terms of cloud “instance” but typically as a number of nodes it adds or drops depending on what it needs to do.

Then that doesn’t become a single ‘server’ as such… your app needs to be aware of that setup :slight_smile:

Not quite…the cloud platform coordinates everything.

The applications in your account don’t care if they’re spread across servers–since they’re virtualized, they don’t notice it.

Cloud hosting can be considered or is the connection of multiple servers that work together as a network. And hence overcome the possibility of single server crash. So in cloud hosting if your server goes down the other servers in the cloud takes the job of making your website online and you will not find any downtime as it occurs in the single server hosting. It will be easy to upgrade the hardware components and expansion of your resources or website can be done easily.

this is exactly what the articles, youtube videos, etc… i’ve found says, but they still don’t tell us how exactly they do this.

In rackspace, they have a service called Cloud Sites. It’s description is as follows:

Quickly host scalable and reliable websites
Cloud Sites™ spreads your traffic across an entire cluster of servers. It’s web hosting without the hassles of managing a dedicated server or the poor performance common with shared hosting. Just code it, load it and watch it scale.

I’ve read this page from top to bottom but they do a poor job of explaining it to me. How exactly is it going to scale by itself if i’m not managing it manually? Do they have software that calculates the load of each of the servers and automatically balances the load? How do they balance the load? Do they copy all of my files from one server to the next and distribute the bandwidth that way? Do they have monkeys doing it for them? Some of these videos and info are so vague but people accept them for what they are. I don’t. =(

Sorry if I sound a bit frustrated. I’ve been researching this ever since “The Cloud” became a trend in the web development business and I’m still stumped at how it works.

As explained earlier it is like that it will be a connection of multiple servers. It will be made as a cloud environment with the help of some software, like in our case Onapp. And the software that is used itself does all the things you have asked.

What I’m doing is using Amazon to store my videos so I don’t have to do it on my own webhosting account. I use wordpress and use a plugin to upload it to the amazon cloud. You can also store all your images etc up there. As far as putting databases and php etc in the cloud I don’t know if that is possible or secure.