Beta Update: EBS Snapshots, Custom JSON, Freeze/Unfreeze Configuration
2010/08/06
Even though it's Friday we're far from done introducing our new features. I'm going to focus on smaller but still rather interesting ones this time.
EBS Snapshots
The beauty of EBS is that you can take snapshots at any time. Once you taken one, all subsequent snapshots will store only the differences from the last snapshot, block by block. A very useful feature to get regular backups for your database server. We've added a way to get manual snapshots in Scalarium. Don't worry, automating them for you is already in the works.
You can find the details on every volume in your account either on the instance it's attached to, or on our "Assets" page. You should go ahead and create a snapshot right away.
We're showing you the progress as we get updated data from Amazon's API. Taking a snapshot can take a while depending on the the volume's size.
You can take as many snapshots as you like, but be aware that by default, your Amazon Web Services account can only have 500 EBS snapshots all together. You can contact Amazon to increase that number.
Now, the fun starts when you create a new volume. You can select existing snapshots that should be used to create the volume from. If you have a working backup snapshot of your database server, and want to create a new volume for your staging cloud, based on production data, that's how you can do it. No dumping and loading the database manually required.
Custom JSON
I already introduced "Custom JSON" in yesterday's tutorial on customizing your Scalarium Cloud using Chef. Be sure to check out the tutorial, but let's look at what custom JSON means. Every time we run Chef on an instance we send it a bunch of configuration information, wrapped in JSON.
So far the only way to customize the attributes was to write your own cookbooks, specifying the attributes in them. That falls apart though when you want to reuse cookbooks on different clouds, having different attributes. Say you want your MySQL server to have different buffer settings for your testing cloud, you had to have different cookbooks for both cases.
We also got regular requests from customers wanting to overwrite our default configuration settings. The answer is pretty simple, and it's called Custom JSON. You can specify a custom JSON string for every cloud within Scalarium. We'll merge whatever you specify into the configuration that's generated for each instance. So you're free to overwrite our settings, or to simply overwrite settings in your own cookbooks, or even just to overwrite the defaults in our example cookbooks.
You can find the setting on every cloud, by following the "Edit Cloud" link in the "Actions" menu.
Now you can specify a valid JSON string (we'll validate it before you save the changes, don't worry). I'm overwriting the cookbook's defaults for the maximum amount Redis' virtual memory system should use.
All subsequent events sent to the instances in this cloud will have the custom JSON configuration merged into them. Neat!
Freeze/Unfreeze Instance Configuration
Scalarium constantly manages the lifecycle of your cloud. Whenever an instance comes or goes, Scalarium notifies the rest to update their configurations accordingly, but only if necessary. Did you know that can utilize this event to write custom configurations?
But sometimes you want to just leave an instance be once it's fully set up, not having to bother with changes in its cloud. Scalarium sports a new feature to do just that. For every role you can now freeze and unfreeze the configuration for all instances in it.
Unfreezing a role will unfreeze all instances in it, even if you just froze one. Which you can also do on every instance's detail page.
Manually Trigger Lifecycle Events
Sometimes you just want to re-run the setup on an instance, say when you updated your custom cookbooks, or manually trigger the configure event to update configurations and what not. No worries, we've got you covered. On every instance's detail page you can trigger both setup and configure manually.
Note that you can trigger the configure event for instances with frozen configuration. Re-running the setup requires your Chef cookbooks to be idempotent, because it will re-run the whole setup procedure. If packages are already installed, Chef won't install them, if configuration files haven't changed, Chef won't update them. But if you for example download source packages and build them using Chef, circumventing the package system (a viable choice sometimes), be sure to include checks that those parts of the recipes don't re-run when the software has already been installed.
Disable Auto-Healing
Auto-healing is a neat feature. Should your instance become unresponsive, Scalarium will take notice and shut it down after a grace period, bringing up a new one automatically. It doesn't happen a lot, but sometimes EC2 has a glitch that can affect your instance. Don't worry, you usually won't even notice, as we're taking care of that automatically. But sometimes you just don't want that, and maybe dig for the root cause of the problem yourself. For that, you can now disable auto-healing for every role in a cloud, in a new tab "Role Settings". It's enabled by default for all roles and instances.
That's it for this week's feature showcase. Please don't hesitate to get in touch if you have any questions.