Most of us will have heard of "the cloud" and many of us will be aware that we are somehow using it in our day-to-day lives, even if that just means having the same email on our phone as our laptop. A few of us might even feel confident trying to articulate a description of this incorporeal, technological entity. With applications, services and products used by millions of people daily, from the likes of Google (Gmail, Docs), Amazon (Amazon Web Services), Apple (iCloud) and Microsoft (Hotmail, Office 365, Xbox Live), all falling under the broad umbrella of cloud computing, even those of us unaware that the cloud even exists, are living with our heads in it.
The basic premise is simply the offering of computing as a service, rather than a product. Instead of consumers or businesses plugging together processors, RAM, and hard drives; installing and maintaining operating systems; and running software themselves, they instead rely on a third party to worry about the complicated work behind the scenes, and simply enjoy the end result. Accessing the cloud still requires a computing device (desktop PC, laptop, smartphone etc.), of course, but the cost of this can be orders of magnitude lower than if the cloud were not available.
The roots of cloud computing stretch way back to the 1960s, and the Unix operating system (others pioneered similar ideas, but it is Unix that endures). One of the key features of Unix is that it enables multiple users to connect to the same computer at the same time, and get a share of the underlying hardware's computing resources, exploiting the fact that the large mainframe computers run by companies such as AT&T (the developers of Unix) spent most of their time sitting idle, waiting for the brief periods when their full power was actually needed.
The benefits of cloud computing to consumers and businesses are fairly different, but both are significant. In the case of home users, cloud computing provides services that simply would not be available any other way. Readily accessible, prevalent email is the canonical cloud computing success story. Before Hotmail, Gmail and their ilk came along, email was almost exclusively a business tool, now it's as indispensible to many as their mobile phone or car.
A primary advantage to the cloud is that the outsourcing of computing resources can reap significant savings when compared to an in-house solution, by removing the need for servers, software, and staff on the payroll simply to maintain those resources. Furthermore, whereas traditionally upgrades - critical security patches aside - tend to come at a price, in the cloud updates are applied almost continually, and included in the on-going cost.
Another important factor of cloud computing, is that most service providers tend to take much greater measures to ensure the security and durability of their resources than the average consumer or business likely would, even if it were feasible. User data is stored in multiple instances, in multiple data centres. Some even offer redundancy across multiple continents. Meanwhile, the measures taken by most cloud service providers to protect against unauthorised access, both physical and remote, is borderline paranoid.
Basically, most of the worries and considerations facing companies that manage their own servers become "Someone Else's Problem". The biggest complication the cloud introduces, is deciding what option to pick.
Amazon is famous in the cloud-computing world for building a business out of the cloud. In simple terms, Amazon Web Services (AWS) customers pay for a certain guaranteed level of 'virtual' computing resources, and Amazon takes care of the underlying hardware required to provide them. Customers pay for as much or as little 'computer' as they need (be that CPU, memory, database access, raw storage, and many others). Amazon then exploits the fact that many of these users can share resources (high CPU users can share with high memory users, for example) without impacting each other to provide many times more 'virtual' servers than it has real ones. What makes AWS more interesting than many VPS options (of which there are many) is that Amazon uses the AWS infrastructure itself to run its own services, such as Amazon.com and the Kindle WisperNet service.
Microsoft and Google (among others, such as Heroku) offer a further layer of abstraction on top of Amazon's with Azure and App Engine respectively. Both differ in a number of ways, but at their core they simply require that applications be developed in a particular way, which then enables them to be run on Microsoft or Google's servers. Users of Azure and App Engine then pay for the number of resources consumed by these applications, such as bandwidth, processing power, or database storage.
At the next level of abstraction up, we have services such as Gmail and Apple's iCloud. Some, like iCloud, augment traditional applications, such as Pages or Numbers, and add an online component that enhances their functionality. Others are so inextricably tied to the cloud that there is barely any offline use case at all; Google Docs, for example, has no desktop client that you can use when an Internet connection isn't available.
Although consistently ever-present Internet connections are more common now than ever - at least in the metropolitan, Western world - the online-only level of cloud computing is still a stretch too far for a number of use cases, and so it's applications that use, but do not require, the cloud that are seeing the broadest uptake currently. The cloud is integrated as seamlessly as possible, but if an Internet connection isn't available, as much functionality as possible is maintained
In the consumer space, one of the most popular of these is Dropbox, which simply (at least to the user) syncs a single folder across several computers - although it is the cloud that makes this possible, as far as the end user is concerned it happens as if by magic. Losing your connection stops any syncing from happening, but once it returns the application will pick up where it last left off.
In the business space, Microsoft is pushing a number of cloud computing enhancements to its pervasive productivity suite, in the form of Office 365. Additions to the core applications offer features such as a range of web-based editing applications (both a rival to Google Docs, and a useful way of making quick adjustments to a document when using a laptop without Office installed).
Office 365 also offers a couple of more cloud-reliant tools, including SharePoint Online (providing multi-user collaborative tools and storage), and Lync Online (offering video conferencing, instant messaging and a host of other communication options). Primarily Office 365 replaces software and services that previously requires a per user, up-front licence, with a more predictable monthly user-based fee. However, there is also a major fringe benefit - the 99.9 per cent service-level agreement provided by Microsoft is better than many in-house systems administration teams could ever hope to offer.
When you consider that Microsoft has built a software empire off the back of up-front, end-user licencing of its products, the fact that Office 365 turns that model on its head, proves that "software as a service" is here to stay. While desktop computing is far from dead, and there are still companies that do need to run their own servers, we are for the most part no longer constrained by the limitations of the hardware we have to hand, or could afford to buy. If ever a cloud had a silver lining, it's this one.