I am still amazed from time to time to find that even very intelligent people who know a lot about software development, but nothing about cloud computing, don’t seem to know this truth about the cloud “world”: when a machine (VM) goes down, its data is gone forever, unless you take precautions in advance.
Clearly, no one would dare to go to production without using a backup/storage mechanism and in the cloud, it’s even more essential and critical.
Storing your data on a cloud is much cheaper than in your offices, but regardless of the price, it will lead to a disaster if you don’t define and implement automated backup and storage procedures.
Cloudify comes with “Storage API support”:/guide/2.5/developing/storage which is currently only available for the EC2 EBS and for “Openstack IaaS” storage.
h4(info). In the future, we will add full abstractions for Blob, Elastic IP, Network and Elastic Load Balancer.
In this post, I will show a slightly different approach to a storage solution.
I’ve enhanced the Cloudify “(newwindow)MySQL recipe”:https://github.com/CloudifySource/cloudify-recipes/tree/master/services/mysql to enable users to install MySQL on any cloud and then create a snapshot (mysqldump) and store it on “(newwindow)Amazon S3”:http://aws.amazon.com/s3.
h4(info). Both the installation and the snapshot can be done from any cloud.
I’ve used “(newwindow)s3cmd”:http://s3tools.org/s3cmd, which is a command line tool for uploading, retrieving and managing data in Amazon S3.
Users can modify the recipe’s code and use any other command line tool or storage API access of any cloud provider, not just EC2’s.
For example: the recipe can be tweaked a bit to support HP cloud’s object storage service.
You can easily enhance the recipe to create crontab tasks so that (for example) a snapshot will be created every two hours and stored on S3.
This also makes the recovery of data very easy: Just download the gzip file from S3 and import it to wherever you want.
The MySQL recipe itself is available in “(newwindow)GitHub”:https://github.com/CloudifySource/cloudify-recipes/tree/master/services/mysql