For those of you that missed out, we held a Microsoft Azure Live Academy webcast last night titled Easy On-Boarding of Mission-Critical Java Apps to the Azure Cloud, where GigaSpaces Cloudify for Azure was introduced.

Cloudify for Azure is an enterprise Java application platform that is targeted at on-boarding JEE/Spring/big-data apps to Azure without architectural or code changes.

In this session, Nati  Shalom (our CTO) and Adi Paz (our EVP marketing)  provided an overview that demonstrated how to on-board a JEE app that uses Cassandra as its database to Azure using Cloudify.  The live demo shows how to on-board this app to Azure, and how Cloudify provides monitoring, self-healing, and scale-out capabilities for the application services. You can view the full webcast here, or the live demo in the video below.


Here's a summary of the Q&As raised during the session: 


Can I use the Azure management console to add new instances or do I need to use the Cloudify tools for that? and what about failover?

A:  Let's start with failover. Generally speaking when a node crashes within Azure – Azure recovers it automatically.  Using the Cloudify integration with Azure, we also make sure that all of the relevant Cloudify components are also restarted as the node is recovered.  In addition, the Cloudify platform reacquires them and makes use of them.  The other bit is that failures can occur in higher levels of the stack.  If your service instance crashes, for example if your Tomcat instance crashes or your Cassandra  instance crashes, what can be done here is that the Cloudify agent in each of those instances will take control and will restart those services automatically. 

In terms of adding or removing more instances, this can be done both ways. When adding a new instance to an existing role, for example the Tomcat worker role, Cloudify will identify that and automatically leverage the new instances.  When you use the Cloudify shell you can type the "add-instance" command – and under the hood what Cloudify will do is to instantiate a new Azure worker role VM, and place the application instances on top of it.

Can I use SQL Azure with Cloudify?

A: Most definitely.  Cloudify can handle any application stack that you'd like to use.  In our case, we demonstrated a recipe that includes Tomcat and Cassandra, but a recipe can also include a web app that actually leverages the SQLAzure capabilities.  So, instead of writing to the Cassandra database – it just uses JDBC on top of SQLAzure.  It's very flexible, not bound by any means to the stack demonstrated. If Tomcat is not your application server of choice you can choose other application servers. This is also possible for messaging server and data stores.  So, the platform basically enables you to choose any stack you would like.

What about GigaSpaces' own data grid spaces and data partitioning?

A: That will definitely be supported, GigaSpaces is a well-known player in the data grid arena.  Being able to provision any kind of stack or any kind of middleware service, also includes the ability to do so for the GigaSpaces middleware stack – you can definitely use our data grid which actually has built in data partitioning and content based routing. 

This will also be provided as a built-in recipe, so aside from the recipes already mentioned, we'll also be providing a built-in recipe to actually provision and use our data grid on the Azure platform.

What about log storage?  And can I manage tables, logs, and queues?

A: Yes.  The application itself can access any element in the stack of the Azure platform such as the queue or table service and the blob store service.  The Azure platform provides Java APIs for that, so you can access those services directly from your application.  

To summarize, Cloudify for Azure makes it really easy to run enterprise-grade Java/Spring applications on Azure.

With this purpose in mind, we defined four key goals for the platform:

  1. Enable users to easily deploy even the most complex Java apps onto Azure with zero code changes
  2. Provide an enterprise-grade production environment for your Java app on Azure through continuous availability, elastic scalability, production ready management and monitoring, and fully automated deployment
  3. Maximize the already powerful Azure platform capabilities with extremely tight integration
  4. Leverage our decade of experience in delivering application platforms for large-scale, mission-critical Java applications

I encourage you to give it a go through our beta program. Click here to learn more. 

Cloudify for Azure – On-Board Enterprise Java Apps to the Azure Cloud in a Snap!
Uri Cohen