Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I'm trying to understand whether cloud computing is meant for small to medium sized companies OR also for large companies. Imagine a website with a very large user base. The storage and bandwidth demands as well as the number of database transactions are incredibly high. The website might be hosting videos, music, images, etc. that keep the demands high.

Does it make sense to be in the cloud when you know you need huge volumes of storage, bandwidth, and GET,PUT,etc. requests? (Each of these variables costs money in the cloud) OR does it make sense to build your own infrastructure? I can see the cost savings of cloud computing if you are a small business, but if you were aiming at the next big thing on the Internet, I can't quite see the benefits.

share|improve this question
add comment

3 Answers

up vote 7 down vote accepted

First off, remember that cloud computing doesn't fit all circumstances. There are forces for and forces against, and these vary from company to company according to the details of what they're doing. Also remember that there is a continuum between cloud computing and traditional hosting.

For a small or medium business, the big gain of cloud computing is that they can gain access to server-based computing without having to own all that physical infrastructure related to a properly set up machine room. This can be a gigantic saving; machine rooms are a big investment when done properly. Moreover, a cloud provider typically has much better network access than most small businesses. SaaS makes a lot of sense too at this scale, since it may well allow a small business to get away without hiring a full-time system administrator; at the small end of the scale, that's a substantial saving.

For a large business, the gain is more to do with being able to have more flexibility so that they can take up opportunities rapidly. They can also use the fact that there are many providers who are geographically distributed to reduce the risk of outage killing their customer-facing presence. (Not all do; resilience costs money.)

In all cases, the big wins have to do with not having to own a building that houses a server room, not having to maintain and insure that building and server room, possibly not having to purchase and maintain the hardware in the server room, etc. Moreover, a cloud provider is a specialist in hosting and so is well-motivated to focus on reducing costs through measures like using efficient solutions for power and cooling; most organizations – even large ones – won't have a lot of expertise in that area.

So in short, the win of cloud computing is the regular win of outsourcing supply of a service that is not a profit-center. Companies do that all the time (e.g., they probably outsource the cleaning of the offices too, and virtually everyone outsources non-emergency power generation if they can). Don't view cloud computing as different, view it as part of the same thing.

share|improve this answer
    
Eh, this seems to just be referring to vanilla web hosts, VPSes and so on. AFAIK, the defining characteristic of a "cloud" provider is that they can scale up and charge for the time you actually use, as opposed to paying a flat rate each month and having to keep your bandwidth/storage/CPU within hard limits. –  Aaronaught May 9 '11 at 20:50
    
@Aaron: It depends on the definition of “time you use” that the provider is using. That varies between providers, and providers often have many different definitions too (depending on which service and which SLA are in force). –  Donal Fellows May 10 '11 at 8:41
    
I realize there are differences between providers, but "cloud" does not mean "outsourced", it means "scalable". Maybe there are a few providers using it as a buzzword, but plans and SLAs aren't really all that different between the legitimate ones. A cloud is, by definition, a cluster of machines, and access to the cloud is agnostic of the specific machine. What you're describing here is just regular 3rd-party hosting; you don't need an expensive cloud service just for that. –  Aaronaught May 10 '11 at 13:35
    
@Aaron: I think I disagree on the grounds that nobody ever got excited over a scalable cluster beforehand. What matters is that the minimum length of hire dropped, enabling a whole new bunch of activities. Human affairs (especially business) are not scale-invariant in the time-domain. –  Donal Fellows May 11 '11 at 14:48
add comment

It's worth having a read of the section in Steven Levy's "In the Plex" on datacenter issues for Google - I think it would be illuminating for this question.

In simple terms, I would be against the implementation of a cloud solution for an operator on the scale you describe. However, it's possible that it might be worth considering on the way to becoming that operator, particularly if you lack expertise in managing infrastructure.

If your business is 100% data driven, then implementing a cloud solution puts someone else in charge of the delivery of your product. I don't think that's ideal regardless of SLA considerations, and if the business scales up to some large scale googlesque data serving behemoth, you really need to be on top of how you organise that infrastructure yourself.

Cloud is useful for those companies whose business is not in serving data on a huge scale; it's more a non-core service which can be bought in. Where the service is absolutely core to the business, outsourcing it releases an element of control and management that may perhaps be better retained.

share|improve this answer
    
Added link to the book –  Gary Rowe May 9 '11 at 12:41
    
@Gary Rowe - thanks: it should have occurred to me do that. –  temptar May 9 '11 at 12:52
add comment

The biggest advantage of cloud computing is elastic scalability. If you're dealing with physical servers, there is just no easy way to let's say triple capacity for 3 days, just because your company is hosting an event.

This is also important if you're "aiming at the next big thing on the Internet". If you overestimate your hardware needs, you'll end up spending lot more than in cloud. On the other hand, if you indeed are very successful, then traffic might grow beyond your estimations, hardware won't be able to handle that, ending up with your application giving bad user experience. In cloud you just set up auto-scaling and the problem is solved.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.