With all the hoopla surrounding the release of Google’s new personal cloud-storage service, Google Drive, one could now reflectively observe just how far under the radar its enterprise-class counterpart, Google Cloud Storage, has flown. Also, given the popularity of a number of file hosting services, like Amazon’s S3 (Simple Storage Service), not to mention the great advances Google has achieved with their Google Apps, Apps Marketplace, and App Engine services, some might find it even more remarkable that Google Cloud Storage isn’t one of the more commonplace storage platforms for developers, especially Google’s third-party developers. Perhaps everyone needs to get off the Google Drive kick in order for Google Cloud Storage to get the accolades it deserves. However, regardless of its place in the on-demand storage market, developers looking to build enterprise applications in Google’s cloud need to understand that this can’t be achieved with the Google Drive SDK. Reason being, is that Google intends to preserve Google Cloud Storage as its platform for enterprise data, not Google Drive.
What Google Cloud Storage offers to enterprises
On the periphery, Google Cloud Storage is a RESTful web file hosting service with high reliability, availability and scalability for application developers looking to store extremely large amounts of data. Secondly, it also includes support for ACL and file sharing schemes, as well as flaunts Google’s robust network for data redundancy and a 99.9% uptime SLA guarantee. Storage is accessible through GCS’s REST API, or by way of its web-based user interface called Google Cloud Storage Manager, as well as through its command-line GSUtil tool, where one can accomplish more advanced tasks. Either Google Cloud Storage Manager and/or GSUtil can accomplish:
- the creation or deletion of projects (for dispersed authentication, monitoring, and other API settings) and buckets (the containers that hold all of your data).
- the uploading, downloading and deleting of object data and metadata.
- the moving, copying and renaming of objects.
- the setting of object and bucket ACLs.
Requests to the Google Cloud Storage API are made through ubiquitous HTTP methods like GET, PUT, DELETE, HEAD and POST. Furthermore, one can use HTTP headers with these methods in order to stipulate or extend the type of request being made (e.g., the x-goog-acl header can be used to specify any predefined access control list that is to be applied to a bucket or object). Lastly, query strings can also be used to limit or scope requests. Aside from handling requests, the Google Cloud Storage API is also able to return standard HTTP/1.1, custom, and built-in status code response headers. In terms of upload operations, objects are atomic, or either completely available or not available. Therefore, objects are never downloaded in a corrupted or partial state. The API also provides a feature that allows one to resume a data transfer after any communication failure or interruption. This is especially useful when performing very large data uploads, where the risk of some kind of data interruption is obviously much higher. This also helps to reduce bandwidth costs since a user will never have to restart a lengthy upload of all of his/her data once again. Some other features that might entice an enterprise-class audience to Google Cloud Storage is its support for streaming transfers, automated versioning of modified objects, the geographical specification of bucket data center locations (U.S. or Europe), and even experimental support for Google App Engine API.
To get started with Google Cloud Storage you must first have a Google Account and create a Google API Console project. Then, navigate to the Services tab from within the API Console to turn on the Google Cloud Service. Lastly, you’ll need to activate Billing through the Billing tab, in order to activate the underlying GCS service. However, don’t get jaded by the threat of rising costs as Google is running a promotional free trial for your first project, with a fairly sizable quota of 5 GB of storage.