I must admit that I've been seduced by the siren song of public cloud storage. The thought of infinite scalability, on demand, without huge upfront capital expense sounds great to me. Cloud storage gateways like StorSimple's address the challenges of public cloud storage usage, object APIs and latency. Like some other cloud storage gateways, StorSimple's appliances present the cloud as iSCSI block storage, but its secret sauce is in the application plug-ins.
Just mapping a common storage interface such as CIFS, NFS or iSCSI onto a back-end cloud storage service is a nifty trick. By using the cloud storage back end as a tier (as opposed to a cache) and, more importantly, by deduplicating the data before sending it across the Net to the cloud, StorSimple's approach should minimize both the connection bandwidth needed to access cloud storage and the pesky data transfer charges most cloud storage providers charge.
Using the cloud as a tier means that StorSimple's appliances are the primary storage tier for your applications, pushing data to the cloud as you take snapshots rather than constantly flushing a cache to the cloud. If you have lots of bandwidth, a caching solution should get your data off to the cloud sooner, but StorSimple's approach will ensure that the data on the cloud provider is application-consistent by using Windows Virtual Storage Service.
Of course, treating the cloud as a tier means the appliance has to make intelligent decisions about what data should be included in the locally hosted tier(s) and what data can be demoted to the cloud.
Most storage systems that do automated tiering use block access frequency to make these decisions. Blocks that are frequently accessed are put in the fastest tier, and blocks that haven't been accessed in some time are demoted.