Cloud storages in the present day are an amazing various to storing knowledge on native laptop or in NAS storage. Began with Amazon S3, such options are supplied by a dozen of firms, together with Microsoft with their Azure Blob Storage.
The benefits of cloud storage are almost infinite storage capability (use as a lot as you want, not as you’ve got), the gap between the storage and your location (the information will not be misplaced in an accident or fireplace, and entry of third events to your knowledge is severely restricted), lowered price of information administration.
On the similar time cloud storage works in the best way that does not match common approaches to storage entry, resembling hierarchical file programs and relational databases. Internally designed as big tables with an index and BLOB subject for knowledge, they do not give sufficient flexibility that file programs or database administration programs can supply to the developer and consumer. The developer must carry out translation between the information he has within the utility and the back-end cloud storage.
Another vital drawback is a distinction between APIs, supplied by completely different providers. Whereas most of providers supply so-called REST API, this API is actually a format for requests and responses despatched over HTTP. Request instructions, parameters and features supplied by providers, differ considerably. As a consequence of this switching between cloud providers requires writing of separate code for every API.
Lastly, the principle issue of (in)acceptance of storage based mostly options is a query of guaranteeing knowledge security. Although service suppliers inform us about encryption used on their facet, such encryption is carried out on their programs and there isn’t any assure that it is actually dependable and whether it is even carried out. So security of the information is an actual drawback and never a fantasy of cloud storage opponents.
Fortunately, there exists a risk to handle the entire above issues in a easy and really cost-effective approach.
Strong File System (SolFS) provides the lacking items that match effectively into cloud storage structure.
As most file programs, SolFS is page-based. Which means that it operates not with random sequences of bytes, however with blocks (sectors on the disk, pages in reminiscence) of fastened measurement. This makes it straightforward to again SolFS with nearly any storage.
To make such backing doable SolFS helps callback mode, through which it asks your utility to retailer or retrieve the block to or from the back-end storage. So all it’s essential to do is implement two easy features “put the web page #X to the cloud storage” and “retrieve the web page #X from the storage” in your code, and that is all – you’ve got a file system within the cloud!
However that is not all SolFS can supply. The file system provides a number of superior options, resembling built-in encryption and compression (carried out in your facet, for those who bear in mind the cloud safety drawback referenced above), almost limitless prospects for storing metadata (numerous supplementary details about the principle file or knowledge), and to carry out SQL-like seek for information. Furthermore, for those who want customized encryption (eg. utilizing keys saved on cryptographic {hardware} tokens), that is doable with two different callbacks – “encrypt web page #X” and “decrypt web page #X”.
And what if you needn’t a file system, however a relational database? No issues both! You need to use your favourite DBMS and have it retailer it is information on the digital disk, created by SolFS (System Version). This fashion the database information are saved within the cloud storage, and your utility works with them through database administration system of your selection.
Another good thing about SolFS is that shifting from one cloud storage service to a different is so simple as rewriting two fundamental features for storing and retrieving of pages to and from the cloud storage.
You’ll be able to say that you simply nonetheless want the code, that works with the cloud. That is right, but it surely’s a lot simpler to write down the code that shops and retrieves fixed-sized information (every web page has the identical measurement) by web page quantity, than to attempt to implement a relational database or a file system within the cloud your self.
In case you do not wish to write cloud-specific code in any respect, we now have an answer for you too. It is CloudBlackbox – the elements that present uniform entry to numerous cloud storage providers. These elements each present uniform entry to cloud storages (Amazon S3, Microsoft Azure for the time being with extra to return) and supply enhanced encryption capabilities, resembling Azure certifications-based encryption of information. So in case you are shifting to the cloud, you needn’t discard established paradigms and current code. Updating them to trendy business choices is simple and quick.