Last December, a company called GigaSpaces began demonstrating a unique kind of Java-based abstraction layer made for use within cloud platforms. Cloudify is a layer that abstracts the application platform from the cloud that it's running on. So you can literally do this: You can set up and fully flesh out your SaaS application on your local system, complete with middleware, just as though it's running in the cloud.
Then once it works, you relocate it. A unique cloud driver makes the homogenous application cloud run atop the specific platform cloud. The upshot is that if you can make your app run on the local platform, you can move it to Windows Azure just as easily as you can move it to Amazon EC2. (One payoff: running a Java app on the Azure cloud.)
On Tuesday, GigaSpaces concluded Cloudify's beta program, opening it up as a commercial service with an optional free tier. To be explicit, Cloudify is not a PaaS - it isn't a cloud in and of itself. It's a driver with services that enable you to deploy applications on cloud infrastructures you're already using, such as Amazon and Rackspace. What Cloudify Free Edition gives you for free are the tools to assemble your application components in a virtualized environment, and then deploy that environment to your cloud of choice.
Cloudify, writes GigaSpaces architect Sean Kumar, "makes any application agnostic to the underlying deployment environment. With Cloudify, the same application can be deployed to a cloud infrastructure, a non-cloud infrastructure or even a local machine without any changes to code. Deploying, managing and monitoring an application on any of this environment becomes very easy, and the look and feel of the management and monitoring tools remains consistent."
A self-service portal and 24/7 customer support, among other features, brings Cloudify's fee up to $1,000 per month. Actual cloud-based services in addition, which include the option of incorporating MongoDB, Cassandra, Tomcat, JBoss, and Oracle Web Logic in recipes, are offered as part of Cloudify's $5,000 premium tier.
Instructing the GigaSpaces cloud driver as to how your app is constructed - complete with underlying services and database, and various dependencies - is a text file called the recipe. It's assembled using a human-legible declarative language based on the Groovy dynamic language.
The recipe specifies how your application will be deployed and monitored. As Kumar goes on, there are two types of recipes. "The Application Recipe describes the application components, which are its services and their dependencies. The Service Recipe describes service characteristics, such as the number of service instances, lifecycle events, scripts that handle these events, monitoring configurations, scaling rules and custom alert rules."
Executing the recipe as a script is a component called the Universal Service Manager (USM). As Cloudify's documentation explains, "The life-cycle phases of the USM can be controlled by the user, allowing for a high level of customization. The USM life-cycle is split into phases, each contains one or more events. The recipe can implement any of these events and ignore the ones it does not need."
Those six phases are: Service Start, Initialization, Install, Start, Stop, and Shutdown. Each of those phases is divided into one or more events, with the start event being the only mandatory one. By giving these events names, Cloudify lets you define your recipe on a time-based scale, explaining exactly what happens, at what time, and under what conditions.
Monitoring running apps in progress takes place through a Web Management Console, which naturally runs from a browser.
The launch date for the official Cloudify Community - which is also part of the Free tier - is set for March 1.