You are here: Home page > Computers > Cloud computing
Advertisement

IBM Blue Gene supercomputer floating in the clouds: a generic illustration of cloud computing.

Cloud computing

by Chris Woodford. Last updated: January 3, 2013.

History has a funny way of repeating itself, or so they say. But it may come as some surprise to find this old cliché applies just as much to the history of computers as to wars, revolutions, and kings and queens. For the last three decades, one trend in computing has been loud and clear: big, centralized, mainframe systems have been "out"; personalized, power-to-the-people, do-it-yourself PCs have been "in." Before personal computers took off in the early 1980s, if your company needed sales or payroll figures calculating in a hurry, you'd most likely have bought in "data-processing" services from another company, with its own expensive computer systems, that specialized in number crunching; these days, you can do the job just as easily on your desktop with off-the-shelf software. Or can you? In a striking throwback to the 1970s, many companies are finding, once again, that buying in computer services makes more business sense than do-it-yourself. This new trend is called cloud computing and, not surprisingly, it's linked to the Internet's inexorable rise. What is cloud computing? How does it work? Let's take a closer look!

Photo: Cloud computing: the hardware, software, and applications you're using may be anywhere up in the "cloud." As long as it all does what you want, you don't need to worry where it is or how it works. Composite photo by Explainthatstuff.com based on a picture of an IBM Blue Gene/P supercomputer, by courtesy of Argonne National Laboratory, published under a Creative Commons Licence, and clouds photographed somewhere over Dorset, England, in 2011.

What is cloud computing?

Cloud computing means that instead of all the computer hardware and software you're using sitting on your desktop, or somewhere inside your company's network, it's provided for you as a service by another company and accessed over the Internet, usually in a completely seamless way. Exactly where the hardware and software is located and how it all works doesn't matter to you, the user—it's just somewhere up in the nebulous "cloud" that the Internet represents.

Cloud computing is a buzzword that means different things to different people. For some, it's just another way of describing IT (information technology) "outsourcing"; others use it to mean any computing service provided over the Internet or a similar network; and some define it as any bought-in computer service you use that sits outside your firewall. However we define cloud computing, there's no doubt it makes most sense when we stop talking about abstract definitions and look at some simple, real examples—so let's do just that.

Simple examples of cloud computing

Most of us use cloud computing all day long without realizing it. When you sit at your PC and type a query into Google, the computer on your desk isn't playing much part in finding the answers you need: it's no more than a messenger. The words you type are swiftly shuttled over the Net to one of Google's hundreds of thousands of clustered PCs, which dig out your results and send them promptly back to you. When you do a Google search, the real work in finding your answers might be done by a computer sitting in California, Dublin, Tokyo, or Beijing; you don't know—and most likely you don't care!

The same applies to Web-based email. Once upon a time, email was something you could only send and receive using a program running on your PC (sometimes called a mail client). But then Web-based services such as Hotmail came along and carried email off into the cloud. Now we're all used to the idea that emails can be stored and processed through a server in some remote part of the world, easily accessible from a Web browser, wherever we happen to be. Pushing email off into the cloud makes it supremely convenient for busy people, constantly on the move.

Preparing documents over the Net is a newer example of cloud computing. Simply log on to a web-based service such as Google Documents and you can create a document, spreadsheet, presentation, or whatever you like using Web-based software. Instead of typing your words into a program like Microsoft Word or OpenOffice, running on your computer, you're using similar software running on a PC at one of Google's world-wide data centers. Like an email drafted on Hotmail, the document you produce is stored remotely, on a Web server, so you can access it from any Internet-connected computer, anywhere in the world, any time you like. Do you know where it's stored? No! Do you care where it's stored? Again, no! Using a Web-based service like this means you're "contracting out" or "outsourcing" some of your computing needs to a company such as Google: they pay the cost of developing the software and keeping it up-to-date and they earn back the money to do this through advertising and other paid-for services.

What makes cloud computing different?

It's managed

Most importantly, the service you use is provided by someone else and managed on your behalf. If you're using Google Documents, you don't have to worry about buying umpteen licenses for word-processing software or keeping them up-to-date. Nor do you have to worry about viruses that might affect your computer or about backing up the files you create. Google does all that for you. One basic principle of cloud computing is that you no longer need to worry how the service you're buying is provided: with Web-based services, you simply concentrate on whatever your job is and leave the problem of providing dependable computing to someone else.

It's "on-demand"

Cloud services are available on-demand and often bought on a "pay-as-you go" or subscription basis. So you typically buy cloud computing the same way you'd buy electricity, telephone services, or Internet access from a utility company. Sometimes cloud computing is free or paid-for in other ways (Hotmail is subsidized by advertising, for example). Just like electricity, you can buy as much or as little of a cloud computing service as you need from one day to the next. That's great if your needs vary unpredictably: it means you don't have to buy your own gigantic computer system and risk have it sitting there doing nothing.

It's public or private

Now we all have PCs on our desks, we're used to having complete control over our computer systems—and complete responsibility for them as well. Cloud computing changes all that. It comes in two basic flavors, public and private, which are the cloud equivalents of the Internet and Intranets. Web-based email and free services like the ones Google provides are the most familiar examples of public clouds. The world's biggest online retailer, Amazon, became the world's largest provider of public cloud computing in early 2006. When it found it was using only a fraction of its huge, global, computing power, it started renting out its spare capacity over the Net through a new entity called Amazon Web Services. Private cloud computing works in much the same way but you access the resources you use through secure network connections, much like an Intranet. Companies such as Amazon also let you use their publicly accessible cloud to make your own secure private cloud, known as a Virtual Private Cloud (VPC), using virtual private network (VPN) connections.

Types of cloud computing

IT people talk about three different kinds of cloud computing, where different services are being provided for you. Note that there's a certain amount of vagueness about how these things are defined and some overlap between them.

Advantages and disadvantages of cloud computing

What's good and bad about cloud computing?

Advantages

The pros of cloud computing are obvious and compelling. If your business is selling books or repairing shoes, why get involved in the nitty gritty of buying and maintaining a complex computer system? If you run an insurance office, do you really want your sales agents wasting time running anti-virus software, upgrading word-processors, or worrying about hard-drive crashes? Do you really want them cluttering your expensive computers with their personal emails, illegally shared MP3 files, and naughty YouTube videos—when you could leave that responsibility to someone else? Cloud computing allows you to buy in only the services you want, when you want them, cutting the upfront capital costs of computers and peripherals. You avoid equipment going out of date and other familiar IT problems like ensuring system security and reliability. You can add extra services (or take them away) at a moment's notice as your business needs change. It's really quick and easy to add new applications or services to your business without waiting weeks or months for the new computer (and its software) to arrive.

Drawbacks

Apple ][ microcomputer in a museum glass case

Instant convenience comes at a price. Instead of purchasing computers and software, cloud computing means you buy services, so one-off, upfront capital costs become ongoing operating costs instead. That might work out much more expensive in the long-term.

If you're using software as a service (for example, writing a report using an online word processor or sending emails through webmail), you need a reliable, high-speed, broadband Internet connection functioning the whole time you're working. That's something we take for granted in countries such as the United States, but it's much more of an issue in developing countries or rural areas where broadband is unavailable.

If you're buying in services, you can buy only what people are providing, so you may be restricted to off-the-peg solutions rather than ones that precisely meet your needs. Not only that, but you're completely at the mercy of your suppliers if they suddenly decide to stop supporting a product you've come to depend on. (Google, for example, upset many users when it announced in September 2012 that its cloud-based Google Docs would drop support for old but de facto standard Microsoft Office file formats such as .DOC, .XLS, and .PPT, giving a mere one week's notice of the change—although, after public pressure, it later extended the deadline by three months.) Critics charge that cloud-computing is a return to the bad-old days of mainframes and proprietary systems, where businesses are locked into unsuitable, long-term arrangements with big, inflexible companies. Instead of using "generative" systems (ones that can be added to and extended in exciting ways the developers never envisaged), you're effectively using "dumb terminals" whose uses are severely limited by the supplier. Good for convenience and security, perhaps, but what will you lose in flexibility? And is such a restrained approach good for the future of the Internet as a whole? (To see why it may not be, take a look at Jonathan Zittrain's eloquent book The Future of the Internet—And How to Stop It.)

Think of cloud computing as renting a fully serviced flat instead of buying a home of your own. Clearly there are advantages in terms of convenience, but there are huge restrictions on how you can live and what you can alter. Will it automatically work out better and cheaper for you in the long term?

Photos: Cloud computing: forward to the future... or back to the past? In the 1970s, the Apple ][ became the world's first, bestselling small business computer thanks to a killer-application called VisiCalc, the first widely available computer spreadsheet. It revolutionized business computing, giving middle managers the power to crunch business data on their desktops, all by themselves, without relying on slow, centralized computer departments or bought-in data processing. Critics are concerned that cloud computing could be disempowering—a throwback to the 1970s world of centralized, proprietary computing.

In summary

Pros

Cons

What is cloud hosting?

We've just had a quick and simple introduction to cloud computing—and if that's all you need, you can stop reading now. This section gives you a bit more detail about two very specific forms of cloud computing you might want to investigate if you run a website: cloud servers and cloud-based content delivery networks (CDNs). What are they, how do they work, and what benefits do they bring?

Cloud servers

Traditionally, web hosting came in two flavors: high-cost managed hosting, in which you have your own private server (an actual computer!) dedicated to running only your website and its applications, and low-cost shared hosting, where your site and apps run on a large server with a number of other sites run by other people. Now there's a third option, widely marketed as cloud hosting in which your site runs on a virtual server somewhere up in the cloud; depending on how it's set up, a cloud server might be an actual computer, but it's just as likely to be a chunk of a much bigger machine—as with other kinds of cloud computing, the point is that it shouldn't matter either way to you as an end user. Rackspace's Cloud Servers, Liquid Web's Storm on Demand, and Amazon's Elastic Compute Cloud (EC2) are three examples of this kind of cloud hosting—and there are many more.

Screen shot of Storm on Demand cloud server dashboard

An example cloud server

So what's a cloud server like in practice? It's relatively easy to sign up to cloud services and see for yourself. With Storm on Demand, one of the cloud services I've used, you simply create a billing account and then tick the kind of server you want from a list of common examples (running from 1GB memory and 1CPU up to 96GB memory and 32 CPUs). Then you tick the "server image" (essentially the software you want on the server at startup, including the operating system) and specify whether you want a managed server (where the Storm guys sort out operating system patches and so on) or a self-managed server (where you do these things yourself). Finally, you specify whether you want backups of your data and how you'll pay for bandwidth (either in large, specified blocks of GB or per GB used). When that's all done, you click to create the server and it's all "built" for you, on the fly, in a matter of minutes.

Once the server's created, you can configure it in the usual way (just like a physical server) with software like WHM and cPanel—or however you wish. If you decide you no longer want your server you can destroy it just as easily, and you simply pay for what you've used (an hourly rate for the server and a per GB rate for the bandwidth). It's extremely easy to use. Even with only previous experience of shared hosting and no experience at all of setting up standalone servers, I had this website up and running on a Storm cloud server in a couple of hours.

The brilliant thing about a cloud server like Storm on Demand is that you can scale it up or down at any time simply by revisiting the control panel and changing what you need to. Suddenly find you need more CPUs or more memory? No problem! Just tick the boxes and your server is automatically reconfigured and working at its new spec in a few minutes. That makes cloud servers a great choice for people who need supreme flexibility or whose computing needs are steadily changing. For example, if you're a fashion store, and you have a time of peak demand coming up—an end-of-season sale, perhaps—you could double or triple the power of your machine for a week or two before scaling back down again when traffic returns to normal. You can increase the power of your server at the click of a mouse but, because you're billed on a pay-as-you-go basis, you'll only pay for the more powerful "machine" for the period when you actually use it. Compare that to dedicated hosting: to get the same results, you'd need to anticipate every increase in server power you might need, invest in a more powerful machine in advance, allow time to get it set up and tested, and keep that powerful new machine running (at considerably greater cost) even if your traffic returns to lower levels again in future.

What are the drawbacks? If you run a small-scale website that has very steady or totally predictable traffic, you might find a cloud server is too expensive and demanding. If you don't need the flexibility, you're not worried about sharing a server with other people's websites, and you don't want to waste time monitoring the performance of your server, shared hosting will probably be a better solution for you than cloud hosting. The important thing to remember is that "cloud server" is essentially a marketing term and not a technical description or explanation; well-managed, traditional shared hosting can give you many of the benefits of cloud hosting, though without the flexibility or independence.

Photos: Liquid Web's Storm on Demand allows you to set up a cloud server in a matter of minutes, simply by ticking a few boxes. Every aspect of the service is pay-as-you-go. It's easy to use even if you have little or no experience of setting up or managing dedicated servers.

Cloud servers or virtual servers?

How do cloud servers work? Hosting products described as "cloud servers" are generally virtual slices of large, physical servers running what's called virtualization software (the most common types being VMware® and Xen® hypervisor for Linux and Microsoft® Hyper-V™ for Windows). In other words, they are effectively "virtual servers" (entirely independent virtual machines) running on a real, physical server. How is that different from shared hosting? The virtual servers are essentially independent of one another (though they do use the same processors and memory), so you're not at risk from other people's applications or websites. You have full root access to your virtual server (unlike on shared hosting, where different users' files are simply subdirectories of a single server running a single operating system) and your own unique IP address (so, unlike with shared hosting, there is no risk to your site if other people host "dodgy" websites on the same machine), and you can reboot or reimage, as you wish—you can even run entirely different operating systems on the same physical server. From the viewpoint of the hosting company, the main benefit of using virtualization is reducing the number of physical servers they have to buy and manage: it's a much more efficient use of resources. However, that doesn't necessarily translate into the cost savings you might expect because support costs may be higher and you may still need multiple software licenses for each virtual server.

Cloud-based content delivery networks (CDNs)

Your website can benefit hugely from cloud computing even if you don't want to migrate it to a cloud server. Information-rich sites like this one, with a lot of static content, typically use over 90 percent of their bandwidth serving up images (and other media) and CSS files that probably don't change from one month to the next. With traffic split equally between Europe, America, and Asia, there's no easy way to decide where to locate your main server: wherever you choose, some users will benefit and others will lose out. But putting the static content on a content delivery network (CDN), dispersed across the cloud, will benefit everyone. Simply speaking, a CDN makes multiple copies of your static files and stores them at many different places around the world (called edge locations) so that different users in different continents receive whichever files are nearest (and therefore quickest to download).

How do you set up a CDN in practice?

Suppose you want to speed up your website by moving all your images on to a CDN. You can sign up for a pay-as-go CDN in a matter of minutes (Amazon's Cloudfront and Rackspace Cloud Files are two popular, instant options, but there are plenty of others). Once you've sorted out the billing, you simply upload your files (in a similar way to using FTP) and you'll be allocated a web address (such as abcdefg123456789.cloudservice.whatever) that you can use to link to them. You can either use this address explicitly (referring to it directly in your IMG tags) or (more sensibly) refer to it through a CNAME (effectively a DNS alias) based on your own domain name. When people download your web pages, the images are no longer pulled from your main server but from one of the edge locations around the world—ideally one that's geographically close to where they happen to be.

How does it work behind the scenes? It's easy to see if you do a DNS lookup for whatever domain name you're using for your CDN. Instead of a single IP address, you'll find the name resolves to different IP addresses in different parts of the world. In other words, the files resolve to a different IP address depending on where the end user happens to be. So for a person on the West Coast of the United States, abcdefg123456789.cloudservice.whatever might resolve to a server in Mountain View, California, while for a user in Europe, the same domain might resolve to a server physically located in Paris, France or London, England.

Pros and cons? There is almost always a significant performance boost from moving to a CDN, but if you're paying a fixed-price for your web hosting (or server) bandwidth, using a CDN is going to work out as an extra cost. CDNs rely on your files being copied, periodically, from the central server where you upload them to the edge locations around the world where they're served to users and typically cached for anything from a few days to several weeks or more (you can generally specify the cache expiry time)—so file management and updating can sometimes be a problem. For example, suppose you set a 30-day cache on your main CSS file but suddenly want to change the way some aspect of your site is presented. You can either upload a new CSS file and wait up to 30 days for all the edge locations to reflect the change or rename your CSS file (and all the pages that reference it), then upload a completely new version of your entire website. Either way, you lose a certain amount of flexibility in file management and it's important to remember that different users in different locations may see different versions of the same file for a period of time. That's why CDNs work best for static (rarely changing) content.

Worth a go?

One of the best things about cloud services is that they're generally pay-as-you-go—so it's very easy to try them out, at relatively little cost, and see what difference they make.

Is cloud computing really better for the environment?

In theory, cloud computing is environmentally friendly because it uses fewer resources (servers, cooling systems, and all the rest) and less energy if 10 people share an efficiently run, centralized, cloud-based system than if each of them run their own inefficient local system. One hosting provider in the UK told me that his company has embraced cloud systems because it means they can handle more customers on far fewer physical servers, with big savings in equipment, maintenance, and energy costs. In theory, cloud computing should be a big win for the environment; in practice, it's not quite so simple.

Ironically, given the way we've defined cloud computing, it matters where your cloud servers are located and how they're powered. If they're in data centers powered by coal, instead of cleaner fuels such as natural gas or (better still) renewable energy, the overall environmental impact could be worse than your current setup. There's been a lot of debate about the energy use of huge data centers, partly thanks to Greenpeace highlighting the issue. In its 2011 report How Dirty is Your Data Center: A Look at the Energy Choices that Power Cloud Computing, Greenpeace ranked cloud computing providers like Akamai and Amazon on eco-friendliness, alongside companies like Facebook, Google, and Twitter whose services are underpinned by a massive global network of data centers. In the United States in particular, quite a few cloud (and web hosting) providers explicitly state whether their servers are powered by conventional or green energy, and it's relatively easy to find carbon-neutral service providers if that's an important factor for your business and its CSR (corporate social responsibility) objectives.

Histogram chart showing increase in energy use in data centers worldwide from 2007 to 2013

When it comes to overall impact on the planet, there's another issue to consider. If cloud services simply move things you would do in your own office or home to the cloud, that's one thing; the environmental impact merely transfers elsewhere. But a lot of cloud- and Internet-based services are encouraging us to use more computers and gadgets like iPads and iPhones for longer, spending more time online, and doing more things that we didn't previously do at all. In that sense, cloud computing is helping to increase global energy use and greenhouse gas emissions —so describing it as environmentally friendly is highly misleading. That's evident from a 2012 study by DatacenterDynamics (DCD) Intelligence, the British Computer Society, and partners (reported in Computer Weekly), which showed that global energy use from data centers grew from 12 gigawatts (GW) in 2007 to 24GW in 2011 and predicted it would reach 43GW some time in 2013; for the global environment, this bottomline trend is the one that really matters. It's no good congratulating yourself on switching to diet Cola if you're drinking four times more of it than you used to.

From Google searches to Facebook updates and super-convenient Hotmail, most of us value the benefits of cloud computing very highly, so the energy consumption of data centers is bound to increase—and ensuring those big, power-hungry servers are fueled by green energy will become increasingly important in the years to come.

Chart: Growth in energy use in data centers from 2007 to 2013. Drawn by us using data from the 2012 study by DatacenterDynamics (DCD) Intelligence published in Computer Weekly, October 8, 2012.

Find out more

On this website

On other sites

Books

Articles

Sponsored links

Please do NOT copy our articles onto blogs and other websites

Text copyright © Chris Woodford 2009, 2013. All rights reserved. Full copyright notice and terms of use.

Follow us

Rate this page

Please rate or give feedback on this page and I will make a donation to WaterAid.

Share this page

Press CTRL + D to bookmark this page for later or tell your friends about it with:

Cite this page

Woodford, Chris. (2009) Cloud computing. Retrieved from http://www.explainthatstuff.com/cloud-computing-introduction.html. [Accessed (Insert date here)]

More to explore on our website...

Back to top