As storing data in the cloud has become ubiquitous and mature, many organizations have adopted a multi-cloud strategy. Eliminating dependence on a single cloud platform is quite a compelling case with benefits of increased reliability, availability, performance, and the avoidance of vendor lock-in and/or specific vendor vulnerabilities to name a few. In short, spanning multiple clouds ensures a business does not have all its eggs (i.e. data) in one basket.
But multi-cloud environments are not without challenges. Taking advantage of the benefits without increasing complexity requires a strategy that ensures applications are not tightly coupled to cloud-specific technologies. Supporting a storage abstraction layer that insulates the application from the underlying cloud provider’s interfaces allows an application to be easily used with multiple clouds. It allows storage features specific to a cloud to be exposed in a standardized manner and enables data to be transparently accessed and migrated as needed in order to take advantage of cloud-specific features without the application being aware of the underlying mechanics, thus reducing or eliminating the limits and vulnerabilities of any one cloud.