From File Systems to the Cloud and Back
Cloud storages today are a great alternative to storing information on regional computer system or in NAS storage. Begun with Amazon S3, such solutions are offered by a dozen of business, including Microsoft with their Azure Blob Storage.
The benefits of cloud storage are nearly infinite storage capacity (usage as much as you need, not as you have), the distance in between the storage and your location (the information will not be lost in a mishap or fire, and gain access to of 3rd parties to your information is seriously limited), decreased expense of information management.
At the very same time cloud storage operates in the manner in which does not match routine approaches to storage access, such as hierarchical file systems and relational databases. Internally created as substantial tables with an index and BLOB field for information, they do not offer adequate versatility that submit systems or database management systems can use to the designer and user. The developer needs to carry out translation in between the information he has in the application and the back-end cloud storage.
Another substantial downside is a distinction between APIs, used by various services. While the majority of services offer so-called REST API, this API remains in reality a format for requests and reactions sent over HTTP. Request commands, specifications and functions used by services, differ significantly. Due to this switching between cloud services needs writing of different code for each API.
Finally, the main factor of (in) approval of storage based solutions is a question of ensuring information safety. Though provider inform us about file encryption utilized on their side, such encryption is carried out on their systems and there's no assurance that it's truly trustworthy and if it is even carried out. So security of the information is a genuine problem and not a dream of cloud storage challengers.
Thankfully, there exists a possibility to address all of the above issues in a basic and extremely economical way.
Solid File System (SolFS) uses the missing out on pieces that fit well into cloud storage architecture.
As a lot of file systems, SolFS is page-based. This indicates that it runs not with random sequences of bytes, however with blocks (sectors on the disk, pages in memory) of fixed size. This makes it easy to back SolFS with practically any storage.
To make such backing possible SolFS supports callback mode, in which it asks your application to shop or recover the block to or from the back-end storage. So all you require to do is implement two easy functions "put the page #X to the cloud storage" and "retrieve the page #X from the storage" in your code, and that's all - you have a file system in the cloud!
But that's not all SolFS can offer. The file system provides several sophisticated functions, such as integrated encryption and compression (performed on your side, if you remember the cloud security problem referenced above), almost endless possibilities for keeping metadata (numerous supplementary details about the primary file or information), and to carry out SQL-like search for files. Furthermore, if you need custom encryption (eg. utilizing secrets kept on cryptographic hardware tokens), this is possible with two other callbacks - "encrypt page #X" and "decrypt page #X".
And what if you need not a file system, but a relational database? No issues either! You can utilize your favorite DBMS and have it keep it's files on the virtual disk, produced by SolFS (System Edition). This way the database files are kept in the cloud storage, and your application deals with them by means of database management system of your choice.
Another benefit of SolFS is that moving from one cloud storage service to another is as basic as rewording two basic functions for keeping and recovering of pages to and from the cloud storage.
You can state that you still need the code, that deals with the cloud. This is right, however it's much easier to compose the code that stores and recovers fixed-sized files (each page has the very same size) by page number, than to attempt to execute a relational database or a file system in the cloud yourself.
If you don't want to compose cloud-specific code at all, we have a solution for you too. It's CloudBlackbox - the components that provide uniform access to various cloud storage services. These elements both provide uniform access to cloud storages (Amazon S3, Microsoft Azure at the minute with more to come) and supply improved encryption abilities, such as certificate-based encryption of data. So if you are relocating to the cloud, you don't need to dispose of established paradigms and existing code. Upgrading them to modern market offerings is simple and quick.
PLease visit our site: https://evrhub.com/10xdrive-review/
https://respectfulsuccubus.tumblr.com/post/190793036305
https://randomgirl543.tumblr.com/post/190793048237
Comments
Post a Comment