Back in May of 2006, Amazon, introduced Simple Storage Service (S3) as file storage for their Elastic Compute Cloud (EC2) computing environment. Despite some short-comings, the pricing flexibility and the web-scalability offered by S3 made it an instant hit with the software development community.
For the first time, a large pool of storage was available for use, with three significant attributes: access via Web services APIs on a non persistent network connection, immediate availability of very large quantities of storage, and pay for what you use.
For many years, the Internet has been represented as a “cloud”. The term has now been extended to include the web scale computing capacity that is available via services offerings like Amazon EC2. As a result the term “cloud computing” was coined, and includes files storage, referred to as “cloud storage“.
As is the case with most nascent industries and technologies, there is no shortage of definitions. Some are the result of vendors seeking ways to include their unique features in the discussion. Vendors offering online file sharing claim to have a cloud storage offering; others doing online backup stake their claim as cloud storage vendors; even companies offering enterprise clouds believe (at least in public) that they also have a cloud storage offering! This statement is very difficult to understand for some, and easy for others, depending on your definition. We seem to have as many definitions for cloud storage as there are vendors and users. However, it seems like the marketplace is beginning to coalesce around some basic requirements for a cloud storage definition.
In my opinion, notwithstanding the complexity of the technology, the concept of cloud storage is fairly simple and straightforward. Here is how I define it: cloud storage is storage accessed over a network (internal or external) via Web Services APIs.
What is interesting about this approach are the benefits it brings to the table.
By exposing storage through a Web Services API, cloud storage enables the application developer or user to connect to an abstracted layer of storage as opposed to the storage device directly. As you can imagine this simplifies integration and development, and facilitates the introduction of many desirable features and options.
Certain elements of cloud storage functionality drive the ability to rapidly scale the amount of storage available to any user. Other capabilities enable a storage provider to bill for used storage versus allocated and available storage. It is worth noting that these two commonly accepted features of cloud storage service offerings are as much associated with the service provider’s business model as they are with some of the technological capabilities of cloud storage. For this reason, we do not include these features in our definition.
Depending upon how it is deployed, cloud storage can be as simple as a place to store and retrieve files (thus the use of “simple” in the Amazon offering), but it can also be designed to provide advanced functionality. These advanced capabilities, available with the storage layer of the infrastructure, will ultimately differentiate cloud storage offerings and drive their consideration for use, but the specific features do not need to drive our definition. It is important to note that these capabilities have a much more important role than simply differentiating vendor offerings, they will accelerate new applications, make mash ups easier, drive increased adoption of this approach to storage, and create new opportunities for the use of computing. This is the classic, game changing result of innovation in our industry. It is exciting, and timely.
Cloud Storage, like any other emerging technology, is experiencing growing pains. It is immature, it is fragmented and it lacks standardization. Vendors are promoting their particular technology as the emerging standard. While a standard doesn’t exist yet, we are confident that one will emerge soon. We believe that a set of Web Services API based capabilities, accessed via non persistent connections on public and/or private networks, provides the fundamental frame of reference and definition for cloud storage. The definition allows for both public service offerings and private (or enterprise) use, and provides a basis for expansion of solutions and offerings, versus a limitation.
Thanks for giving your consideration and input to our definition.