Cloud computing delivers software applications, data storage, processing power or other computing resources over the Internet. Gartner predict that the cloud services marketplace will be worth $206.2 billion in 2019, and will grow to $278.3 billion in 2021. IDC predict a similar market size of $210 billion in 2019, rising to $370 billion in 2022. Ten years ago, many people claimed that cloud computing was a fad that would never catch on. But today there can be no doubt that cloud computing is a very significant and growing computing trend.
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 in my cloud computing videos, the most recent of which is embedded below, 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 storage and other computing resources are delivered 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, right now cloud computing is mainly concerned with accessing online software applications, data storage and processing power. The fundamental, practical building blocks of cloud computing 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 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 the Salesforce Platform. 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. 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, Salesforce have claimed 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".
Cloud vendors offering SaaS, PaaS and IaaS now provide most individuals and organizations with a real alternative to running local computing resources in-house. For many years now, there have also been three key reasons to migrate to the cloud:
The Competitive Cloud
Cloud computing is increasingly essential for firms that wish to remain competitive. This is simply because it costs less to access basic computing services (such as e-mail) from a cloud vendor than to run them in-house. 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. Secondly, it also allowed companies to focus their resources on other aspects of their business. And now, 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.
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 server utilization or more. This means that less energy is wasted, with the carbon footprint of each unit of computing power being reduced. You can accesss a Microsoft report called "The Carbon Benefits of Cloud Computing" via this article.
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, quantum computing (quantum computing as a service or QCaas), and cloud AI services, or "AIaaS" (artificial intelligence as service). Or in other words, cloud computing will increasingly 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. Ten years ago, cloud computing was the disruptive computing trend. But today, it is becoming the delivery platform for a much broader range of digital transformation (DX). You can learn more about cloud AI services and digital transformation in my following videos:
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, 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 . . .