Cloudy Saturday: Roll Your Own Cloud with Enomalism
As we saw with last week's column, plumbing is what cloud computing is all about. Your company will likely be using cloud computing techniques to manage computing resources very soon if you aren't already. These concepts apply equally well to big enterprise and small startups, companies that own their infrastructure and those that choose to use services like Amazon EC2 or Mosso. Puppet offers a great system automation framework, but how do you get up and running with those systems? That's where Enomalism comes in.
Enomalism is a provisioning and management system that gets rid of some of the complexity of building a cloud infrastructure. The product was written by Reuven Cohen of Enomaly, an open source consulting company based outside of Toronto. Pat Wendorf, the firm's marketing director, describes Enomalism as, "a turbogears, Python-based web server app that uses the libvirt library from Red Hat to manage multiple hypervisors." Enomalism tries very hard to make computing resources easy to access and provision based on the needs of the application, rather than the location of the resources themselves.
The genius of the product is that it is based on libvirt. This allows it to easily support new technologies as they become available and supported by the library. Enomalism currently supports the KVM, Xen, OpenVZ, Linux Containers and VirtualBox hypervisors and the Amazon EC2 service. The company plans on supporting VMware in the near future.
Enomalism allows you to manage your resources across any of its supported technologies from one dashboard. You can configure, provision and control virtual machines and logical groupings from this interface. It currently supports disk images from its own VMCast service, which publishes pre-made images for common Linux distributions with pre-configured application stacks. You can create your own disk images, but the process is not well documented or easy. The team plans on fixing this in a future release. Wendorf said, "We're working on stabilizing all of the features we have right now so that people can trust that things will work properly every time."
Looking forward, Enomalism will be able to provide many of the features of a commercial product like VMware VirtualCenter or Citrix XenServer. Wendorf says Enomalism is meant to go "the next step beyond virtualizing your environment. There is so much flexibility with cloud that you almost can't afford not to use it. Virtualization with management and monitoring on top of it just seems like the next step. I don't see it as a huge step for people to take, but it is the next step."
Next week, we'll talk about another approach to managing the cloud, Vertebra by Ezra Zygmuntowicz. It uses the XMPP protocol to manage clusters of Ruby applications and helps with scaling them - a novel take from the application layer, instead of the system layer.