Everyone can build a website, but not not everyone can build a good and popular website. If you can pull it off, you can enjoy benefits like building something people are using, recognition and – sometimes – money. It can be a good business, even your full time job. But bad things can happen, and you should be prepared for it. One of those things (well, actually this is not a bad thing!) is to have spikes in traffic… maybe as a result of getting on Digg.com, Reddit.com, Google News, or another major media outlet frontpage… or getting reviewed by Techcrunch or another major technology blog.
You want to be prepared for this, but you don’t want to spend tons of money on it. For example, having your own dedicated server costs more than a shared hosting account and requires you to have knowledge to administer it. Maybe you don’t have the knowledge or you don’t want to become a server administrator…and don’t have money to hire one. Even having your own dedicated server doesn’t guarantee it will survive the hordes of visitors coming from those major media outlets (having more than one dedicated server would help tremendously, but the cost also increases).
Imagine having the power of tens or hundreds of servers for the cost of a several shared hosting accounts. Sounds fantastic, right? Well, now it’s possible.
Welcome to the world of “cloud computing!” (or “grid computing” or “utility computing”, which are terms for the same thing).
What is “cloud computing?”
As Wikipedia describes it in technical terms:
Cloud computing is often confused with grid computing (a form of distributed computing whereby a “super and virtual computer” is composed of a cluster of networked, loosely-coupled computers, acting in concert to perform very large tasks), utility computing (the packaging of computing resources, such as computation and storage, as a metered service similar to a traditional public utility such as electricity) and autonomic computing (computer systems capable of self-management). Indeed many cloud computing deployments are today powered by grids, have autonomic characteristics and are billed like utilities, but cloud computing can be seen as a natural next step from the grid-utility model. Some successful cloud architectures have little or no centralised infrastructure or billing systems whatsoever including Peer to peer networks like BitTorrent and Skype and volunteer computing like SETI@home.
The majority of cloud computing infrastructure currently consists of reliable services delivered through next-generation data centers that are built on compute and storage virtualization technologies. The services are accessible anywhere in the world, with The Cloud appearing as a single point of access for all the computing needs of consumers. Commercial offerings need to meet the quality of service requirements of customers and typically offer service level agreements. Open standards and open source software are also critical to the growth of cloud computing.
As customers generally do not own the infrastructure, they are merely accessing or renting, they can forego capital expenditure and consume resources as a service, paying instead for what they use. Many cloud computing offerings have adopted the utility computing model which is analogous to how traditional utilities like electricity are consumed, while others are billed on a subscription basis. By sharing “perishable and intangible” computing power between multiple tenants, utilization rates can be improved (as servers are not left idle) which can reduce costs significantly while increasing the speed of application development. A side effect of this approach is that “computer capacity rises dramatically” as customers do not have to engineer for peak loads. Adoption has been enabled by “increased high-speed bandwidth” which makes it possible to receive the same response times from centralized infrastructure at other sites.
Or, put more simply, (Om Malik’s way), cloud computing means that the applications are running somewhere in the “cloud” (whether an internal network or the Internet). We, as users, don’t know and don’t care. Done right, cloud computing allows developers to develop, deploy and run applications that can easily grow in capacity (scalability), work rapidly (performance), and never – or at least rarely – fail (reliability), all without any concern as to the nature and location of the underlying infrastructure.
One pioneer who helped tremendously in developing the concept of virtualization/cloud computing was VMWare (now a public company). Others followed soon after (including Microsoft).
In a previous article we have presented a list of content delivery networks from around the world.
Let’s now present a list of companies which offers cloud computing/grid computing/utility computing.