Cloud computing is where software applications, processing power, data and artificial intelligence are accessed over the Internet. Many private individuals now regularly use an online e-mail application such as Gmail, as well as sharing photos and video on social networking sites like Facebook. However, these types of cloud computing activities are just the beginning. Indeed, it is likely that within a decade the vast majority of personal and business computing will be Internet based.
According to IDC, cloud computing was a $47.4bn industry in 2013, and will be worth $107bn by 2017 (IDC). Like it or loathe it, cloud computing is thereore far more than hype. In fact, I would suggest that cloud computing has now become such an unstoppable force that the only real choice for any of us is whether we want to be part of the cloud computing steamroller or the traditional computing road.
This section of ExplainingComputers.com provides an overview of cloud computing. In particular it focuses on the phenomenon's characteristics, how it works in practice, and the key factors that are driving its uptake. You can learn more by watching my cloud computing videos or by reading my book A Brief Guide to Cloud Computing.
So what, you may reasonably ask, is the cloud? Well, for years the Internet has been represented on network diagrams by a cloud symbol. When, around 2008, a variety of new services started to emerge that permitted computing resources to be accessed over the Internet, the label "cloud computing" therefore emerged as an umbrella term. Does this mean that we really ought to be talking about "Internet computing"? Well, perhaps. However, in the strictest sense, the "cloud" is a label for online computing resources rather than the entire Internet. The term "cloud computing" is also useful to separate the kinds of things we have been doing online for a couple of decades from a totally new age of online software and processing power.
I have already said that cloud computing is where software applications, processing power, data and potentially even artificial intelligence are accessed over the Internet. Building on this basic definition, it can also be stated that cloud computing is where dynamically scalable, device-independent and task-centric computing resources are provided online, with all charges being on a usage basis.
Cloud computing is dynamically scalable because users only have to consume the amount of online computing resources they actually want. Just as we are used to drawing as much or as little electricity as we need from the power grid, so anybody can now obtain as many or as few computing resources from the cloud as they require at any particular point in time.
Cloud vendors including Amazon Web Services (AWS) now quite literally sell computer processing power by the hour. For example, anybody can now rent "virtual server instances" from Amazon's Elastic Compute Cloud or "EC2" service for as little as $0.02 an hour (or indeed you even sign up for a one-year trial of the AWS Free Usage Tier for nothing). As Amazon explain, "EC2 reduces the time required to obtain and boot new server instances to minutes, allowing [customers] to quickly scale capacity, both up and down, as [their] computing requirements change".
Cloud computing is device-independent because cloud computing resources can be accessed not just from any computer on the Internet, but also any type of computer. Provided that it has an Internet connection and a web browser, it really does not matter if the computer being used is a traditional desktop or laptop PC, or a tablet, smartphone or smart TV. Such device independency is also a killer feature of cloud computing because it means that users can move between computing devices -- such as their work PC, home PC, laptop and tablet -- without having to worry that they will always have access to the latest versions of their files.
Cloud computing is task centric because the usage model is based entirely around what users want to achieve, rather than any particular software, hardware or network infrastructure. Users do not have to purchase or install anything before using a cloud computing resource. Nor do they have to maintain or pay for anything during periods in which no resources are being used.
The above means that cloud computing empowers its users to just get on with what they want to do. Today, nobody sits down to use a pencil. However, lots of people do still consciously sit down to use a computer. Cloud developments may, however, start to catalyze a mentality shift from tool-in-hand to task-at-hand computer application.
Due to the fact that cloud computing is charged on a usage basis, it has no fixed costs. A fixed cost is something that has to be paid regardless of the number of people who use something or a company's level of production. This compares to a variable cost that will change according to output levels. For example, the annual cost of renting a factory is likely to be fixed. However, the cost of staffing a factory and of the raw materials it consumes will vary according to how much it produces.
Traditionally computing has involved substantial fixed costs, such as those costs incurred in the building and equipping of a data centre. However, because cloud computing is dynamically scalable and task-centric, for users such fixed costs disappear. All of the costs of cloud computing are therefore on a per-usage or variable basis. As demonstrated by the earlier example of Amazon EC2, processing power can already be purchased from the cloud by the hour.
The fact that cloud computing has only variable costs is of extreme importance for small companies. This is because small businesses have traditionally not had access to the sophisticated, customised types of business application available to larger organizations. However, because they do not charge an initial fixed-cost outlay, cloud computing suppliers including Clarizen, Netsuite, Salesforce and Zoho are now levelling the software-access playing field by allowing companies of all sizes access to the latest types of business application.
As already mentioned, cloud computing can encompass activities such as the use of social networking sites and other forms of interpersonal computing as examined on the Web 2.0 page. However, most of the time cloud computing is concerned with accessing online software applications, data storage and processing power. The fundamental, practical building blocks of cloud computing are therefore what are known as software as a service (SaaS), platform as a service (PaaS) and infrastructure as a service (IaaS). As discussed in my Three Ways to Cloud Compute video (embedded below), anybody wanting to understand cloud computing really has to get to grips with what SaaS, PaaS and IaaS are all about. So take a deep breath and here goes!
SaaS, PaaS and IaaS all involve a cloud vendor supplying servers on which their customers can store data and run applications. However, there are differences in the level of control provided to the customer, as well as the type of cloud hardware on which a customer's cloud applications are run.
In very simple terms, when businesses opt for SaaS they can only run those applications that their cloud supplier has on offer. When they opt for PaaS they can create their own applications but only in a manner determined by their cloud supplier. And when they opt for IaaS they can run any applications they please on cloud hardware of their own choice. OK, that may at this stage be as clear as well stirred pond water! So let's now work through it again in more detail.
Software as a service is where computer applications are accessed over the Internet rather than being installed on a local computing device or in a local data centre. So, for example, people may use an online word processor like Google Docs, an online database application like Zoho Creator, an online photo editor like Pixlr, or an online invoicing application such as Zoho Invoice. Many SaaS applications are free to use, at least initially.
SaaS can provide its users with many benefits. These include the general cloud computing advantages of dynamic scalability and any device independence, as well as the benefit of being able to use an application without incurring fixed costs. Many SaaS applications are also collaborative. This allows multiple users to share documents and even to work on them at the same time. For example, in the Google Sheets spreadsheet different users can work on different cells simultaneously. The cells different users are working on are locked-off and highlighted in different colours. A real-time chat window can also be opened up alongside the spreadsheet to further enhance collaboration. For more information on collaborative working using Google's cloud computing apps, you can watch the now classic video Google Docs in Plain English.
Taking collaboration further still, the outputs of some SaaS applications can be embedded in other web pages as web service gadgets. For example, a Google Sheets or Zoho Sheet chart can be mashed into another website. There it will automatically update when the data in the online spreadsheet that is generating it is changed. SaaS applications are also constantly updated, which can free users from the "upgrade hell" of a major traditional software package revision.
The disadvantage of SaaS is that it is basically a take-it-or-leave-it form of cloud computing. This means that businesses and individuals who require direct access to cloud computing hardware on which they can run their own applications cannot use SaaS. Rather, they need to cloud compute at the platform or infrastructure level using either platform as a service (PaaS) or infrastructure as a service (IaaS).
A platform is a software environment used to develop and run applications. For example, Microsoft Word is an application that runs on the Microsoft Windows platform. When people choose to cloud compute using platform as a service or 'PaaS', they obtain access to an online platform provided by a cloud computing vendor. They can then use this platform to develop and deliver their own online (SaaS) applications.
Applications developed using PaaS may be used privately by just one or a few users within a particular company. However, they can also be offered free or for-a-fee to anybody on the web. This means that if you have a great idea for a new online application then you can use PaaS to turn it into a reality.
Several cloud suppliers now offer PaaS tools. These notably include Google App Engine, Microsoft Azure, and Force.com. All such offerings effectively provide their customers with a box of cloud computing Lego. New applications are then constructed from the plastic bricks on offer. With Force.com, some applications can even be built using a simple drag-and-drop interface. Relatively non-technical people can therefore create new online applications very quickly. Indeed, Force.com claim that their "simplified programming model and cloud-based environment mean [customers] can build and run applications five times faster, at about half the cost of traditional software platforms".
Whilst PaaS is great in many situations, its users do need to be mindful of the involved flexibility verses power trade-off. What this means is that whilst PaaS makes it relatively easy to create new online applications, users are nevertheless constrained by the particular programming languages and tools provided by their PaaS supplier. In other words, PaaS vendors have total control over which Lego bricks they allow their customers to build with. Whilst this ensures that applications built using the tools on offer will always function correctly, it is nevertheless restrictive. It is for this reason that many companies and some individuals choose to cloud compute at the infrastructure level.
Infrastructure as a service or "IaaS" is where a cloud supplier provides online infrastructure on which their customers can store data and develop and run whatever applications they please. IaaS therefore allows companies to move their existing programs and data into the cloud and to close down their own local servers and data centres.
Whilst computing applications run on platforms, platforms in turn run on computing infrastructure. So, for example, whilst the Microsoft Word application runs on the Microsoft Windows platform, in turn the Microsoft Windows platform runs on the infrastructure of an IBM-compatible PC.
The fundamental building block of cloud computing infrastructure is the server. Cloud computing servers are basically computers on which online applications can be run and data can be stored. When provided by an IaaS vendor, cloud servers can also be real or virtual.
Real or "dedicated" servers are individual, physical computers - known as blades - mounted within equipment racks in a data centre. In contrast virtual servers - also known as "virtual server instances" - are software-controlled slices of real, physical servers. Virtual servers are created by a process called virtualization that allows many users to share the processing power of one physical server.
Dedicated physical servers and virtual server instances can perform exactly the same functions. But there are also some important differences between them. For a start, virtual server instances are cheaper to supply as each does not require its own piece of physical hardware in a cloud data centre. On the other hand, virtual server instances are sometimes seen as less secure by those who do not want to share server hardware with other customers. For this reason, four categories of IaaS are available. These are most commonly known as "private clouds", "dedicated hosting", "hybrid hosting" and "cloud hosting".
The four categories of IaaS are represented in the figure below. In each case a large rectangle outlines a cloud data centre. In this data centre there are then a number of dedicated physical servers (shown as small rectangles), together with a number of virtual server instances (shown as circles within a cloud). Dedicated physical servers or virtual server instances in the figure are shown in solid rather than outline when they are part of a particular IaaS category.
Under the first IaaS category of a private cloud (or more fully a vendor managed private cloud), a customer rents a number of co-located servers in part of a data centre. This means that their cloud hardware is as separate as possible from that of other users. Private clouds are therefore considered the most secure form of IaaS. However, a private cloud cannot be dynamically scaled and is the most expensive form of IaaS as a block of servers is permanently dedicated to one customer. (As an aside, it should be noted that an increasing number of IT companies are also starting to use the term "private cloud" to refer to the building of a cloud computing infrastrucuture -- or "internal cloud" -- within a company's own data centre. Such a development is not really cloud computing at all, and may be regarded as a last-ditch attempt to maintain the status quo. Under any sensible definition, a "private cloud" has to be a cloud computing arrangement where the hardware concerned is owned and housed in a vendor's shared data centre. OK, rant over, and back to the three remaining IaaS categories!).
In the second IaaS category of dedicated hosting, a customer rents dedicated physical servers on demand from anywhere within a data centre. Whilst this means that the hardware they use is mixed-in with that of other customers, in this IaaS category once again customers do not share the particular servers they use with anybody else. As well as being less costly than a private cloud, dedicated hosting can therefore be dynamically scaled. This means that the customer is able to increase or decrease the number of servers they are both using and paying for on a daily or even hourly basis.
Under the third IaaS option of hybrid hosting, a customer rents on demand a mix of dedicated physical servers and as well as some less expensive virtual server instances. For example, a company may run all of its applications on dedicated physical servers, but store its data on virtual server instances. Or a business may rent virtual service instances by the hour to cope with occasional peak processing demands. Once again, the whole offering is dynamically scalable, with both dedicated and virtual servers able to be added or taken away as required.
Finally, in the last IaaS category of cloud hosting, a customer rents as many or as few virtual server instances as they require on demand. This means that customers share all of the servers they use with other customers. Some companies subsequently see this as too risky. However, cloud hosting is also the lowest-cost and by far the most technically and environmentally efficient form of IaaS. This is because cloud hosting allows an IaaS provider to run all of their physical servers in use to capacity and to close down those not required.
Many companies now offer IaaS services. For example, as already noted, Amazon has a product range called Amazon Web Services or "AWS". This falls under the fourth IaaS category of cloud hosting, with Amazon offering the rental of virtual server instances.
At the heart of AWS is Amazon Elastic Compute Cloud or "EC2". This allows customers to run either new or existing applications in Amazon's data centres. EC2 is described as "elastic" because customers can increase or decrease the infrastructure capacity they are using within minutes.
EC2 users can purchase and activate one, hundreds or even thousands of virtual server instances simultaneously. They do this by setting up Amazon Machine Images or "AMIs" that contain all of the applications, data and configuration settings that their virtual servers will need. AMIs can be created from scratch, or chosen from a range of pre-configured templates. AMIs can even be pre-loaded with licensed software from vendors including IBM.
Another key component of AWS is the Amazon Simple Storage Service or "S3". This enables customers to store data online in so-termed "buckets". As Amazon explain "S3 provides a simple web interface that can be used to store and retrieve any amount of data, at any time, from anywhere on the web. It gives any developer access to the same highly scalable, reliable, fast, inexpensive data storage infrastructure that Amazon uses to run its own global network of web sites".
Another IaaS provider is Rackspace, which provides private clouds, dedicated hosting, and cloud hosting services. The latter include Rackspace Cloud Servers (as a competitor to Amazon EC2) and Rackspace Cloud Files (as a competitor to Amazon's S3). IaaS services can also be purchased from most major players in the computing industry, including IBM.
Cloud vendors offering SaaS, PaaS and IaaS services now provide most individuals and organizations with a real alternative to running local computing resources in-house. There are also now three reasons why, within a decade, cloud computing is likely to be the only mainstream computing show in town. Specifically, the key reasons that cloud computing will become inevitable are that:
The above drivers of the Cloud Computing Revolution are explained below and in the following video:
The Competitive Cloud
Cloud computing will become essential for firms that wish to remain competitive simply because it will cost them less to cloud compute than to run an in-house data centre. Already many cloud computing vendors claim that their customers can reap cost savings of up to eighty per cent. Because cloud computing is dynamically-scalable, task-centric and does not require substantial fixed-cost investments, firms that cloud compute are also likely to be more competitively agile than their competitors.
In his classic cloud computing manifesto The Big Switch, Nicholas Carr compares the growth of cloud computing to the development of the electricity network around a century ago. Before that time, businesses had to make their own power using internal generators. However, when a reliable electricity grid became available, companies were increasingly freed from having to generate their own energy in-house. The opportunity to plug-in to cheaper electricity on-tap from a national power grid also offered two competitive benefits. Firstly, it saved companies money. And secondly, it allowed companies to focus their resources on other aspects of their business.
In a striking parallel to the Big Switch from local to central electricity generation a century ago, today we are entering a Cloud Computing Age in which businesses will be able to dispense with an internal data centre, and instead plug-in to cloud computing resources that will fuel their information processing requirements. For example, ThinDesk is now offering small and medium-sized companies in Canada the opportunity to move to a thin client / cloud infrastructure which it claims will provide them with up to forty per cent cost savings, coupled with increased reliability and productivity. Carbon footprint and energy reduction savings of up to eighty per cent can potentially also be achieved with a ThinDesk solution.
The Green Cloud
Talking of energy reduction and carbon footprint savings, cloud computing is also inevitable because it is more green. Today, most internal company data centres run their servers at around thirty per cent capacity. In contrast, the servers in a large cloud data centre typically run at eighty per cent capacity or more. This means that less energy is wasted, with the carbon footprint of each unit of computing power being reduced.
Cloud computing is also more environmentally friendly than traditional computing because it removes the need for most users to have high-power PCs and laptops. This is because lower-power computers based around processors are perfectly sufficient to run cloud applications. Their use can also cut end-user energy bills and carbon footprints by as much as eighty percent.
The use of cloud collaboration and virtual meeting tools may also allow some people to work from home a little more and to make fewer business trips. As more and more people and companies adopt cloud computing, it may therefore help to take some cars off the road and some planes out of the sky.
The Next Generation Cloud
As well as being more cost-effective and more green, cloud computing will be increasingly essential for many next-generation computing developments, such as Big Data and cloud-based AI services. In other words, cloud computing will be driven not only by a desire and necessity to do existing things in more effective ways, but by a demand to do entirely new things.
One of the defining characteristics of cloud computing is that it enables value to created via collaboration and data sharing. Local software and data inevitably constrain collaboration and the anytime, anyplace, anywhere use of information resources. As a consequence, we will be prevented from obtaining the benefits of new developments such as "crowdsouring" unless many of us cloud compute.
Crowdsourcing uses the Internet to help generate value from the activities of a great many people. Today, crowdsourcing mainly involves lots of people working together to tackle a problem that in the past would have been left to just one individual or a small team. This had already lead to many open source developments where all of the involved intellectual property is created and shared online for mutual benefit. Already crowdsourced, open source products and services in use or under development include computer software, robots, 3D printers, prosthetic limbs and electric cars.
The rise of cloud computing will make it easier for individuals to consciously work together on crowdsourcing projects. But the Cloud Computing Revolution will also be driven by the significant potential to crowdsource data from many of the things that people consume and the objects that they manipulate.
Soon there will be so many cameras, microphones and other sensors online that a great many objects will start to cast a constant data shadow in the cloud. Whilst this may raise concerns, it will also allow us to reap crowdsourcing benefits similar to those of online social networking. For example, satellite navigation systems will be able to advise on routes based not only on internal maps, but also the position and predicted intent of all other vehicles on the road. However, this will only happen if a great deal of data is pooled and shared in the cloud rather than being held and processed on local computing devices.
Developments in artificial intelligence will also depend on crowdsourced cloud data. Programming a mobile phone or a robot to recognise everything in view is likely to remain very difficult if internal data and processing power have to be relied on. However, a phone or robot with access to cloud resources including video feeds from other nearby cameras will be in a far better position to usefully make sense of the world around it. What this means is that for computers to be usefully smart they will require access to information from our immediate environment that can only be crowdsourced from the cloud. In turn, along with augmented reality, the development of artificial intelligence is likely to be a very strong driver for the mass adoption of cloud computing. Indeed, IBM already offers "cognitive cloud services" delivered via its Watson artificial intelligence (AI).
Cloud computing frees both individuals and organizations from the cost and hassle of installing, maintaining and constantly upgrading software applications on their desktops and in their data centres. It also allows companies to focus on their core competencies, rather than investing in centralized computing facilities that have to be maintained and upgraded and that may not be utilized at an optimum capacity. This said, the many critics of cloud computing point to the fact that users become totally reliant on a high quality Internet connection. Cloud computing also creates a reliance on external suppliers which may also raise potential business continuity, data protection and security risks.
The aforementioned concerns do have to be carefully considered. This said, our reliance on the Internet is now so great that even if most of our applications are locally installed then the disruption caused by an Internet outage is already highly significant. In a sense, a reliable Internet connection has now become as requisite a utility service for business and personal activities as a constantly available phone network and electricity supply. All that cloud computing is therefore doing is making us even more explicitly aware of this. Like it or not, we have already mortgaged our souls to the Internet.
Many of the fears associated with cloud computing security and data protection are also largely perceptual. Granted, using cloud computing makes individuals and organizations dependent on both their cloud vendors and the integrity of their Internet connection. However, anybody or any company that makes web searches or sends e-mail -- let alone who makes online purchases or does their banking online -- is already trusting both the quality of available online security, as well as the security of those they purchase from, not to mention the integrity of their Internet Service Provider. We should also not forget that storing data locally can also create data protection problems of its own. As events in the United Kingdom public sector have demonstrated time and time again in recent years, it is apparently very easy to loose thousands and even millions of highly sensitive personal records on lost or stolen laptops, USB keys or CDs.
One of the key things highlighted by cloud computing developments is the need for secure personal computing devices. Certainly, anybody using cloud computing services needs to take appropriate measures for ensuring safe web access. These include setting a strong password, ensuring antivirus, antispyware and firewall software are installed, and ensuring that their operating system and web browser(s) are always updated with the latest security patches. All users also need to be educated not to open suspicious e-mails that may contain and install malware. More information on appropriate online security measures can be found on the security page or from GetSafeOnline.org.
Somebody recently informed me that cloud computing sounds like a return to the age of centralized computing when dumb terminals were totally dependent on a centralized mainframe. To some extent there is more than a little truth in this. Yet there are also important differences to the previous mainframe era. For a start, cloud computing is levelling the playing field by bringing the potential benefits of remote and highly professional computing resources to all sizes of business. Any company and indeed anybody can now connect to software or hardware as an online utility, with fewer companies having to invest in a large-scale computing infrastructure.
As the above hopefully highlights, cloud computing significantly differs from the previous dumb-terminal/mainframe era in that users do not become reliant on a single, specific, centralized computing resource that their organization has to invest in and maintain. Rather, they become reliant on a far looser external web of resources which they will always to an extent be free to "mash" as their needs dictate. In other words, a competent use of the cloud by either an individual or an organization ought always to involve a loose rather than a tight-coupling of computing resources. Reliance on individual SaaS, PaaS or IaaS vendors ought therefore to be minimised in the same way that nobody obtaining power from a national electricity grid is dependent on the continuous functioning of an single, specific power plant.
In comparison to previous computing eras and paradigms, cloud computing potentially also offers many advantages. Not least, over the coming decade fewer individual users will be tied to a particular device when they want to access their data and applications. Collaborative working will also become far more common, with the benefits of using an online word processor or spreadsheet far outweighing the potential drawbacks in most circumstances. Cloud computing is also likely to be far more environmentally friendly than many currently mainstream computing practices. It will also enable the next generation of computing developments like augmented reality, visual search and artificial intelligence
To embrace cloud computing requires a new mindset. For too long computing has been about hoarding and putting up barriers -- both technologically and culturally -- rather than sharing and opening up communication and collaboration. For business, the computing industry, and the planet more generally, cloud computing ought therefore to be welcomed as a breath of fresh air that will become part of the solution rather than part of the problem. The world faces too many global challenges for us all to continue to compute by ourselves . . .