Sunday, July 17, 2011

Cloud Event Processing on CloudBees RUN@Cloud PaaS

I did some prototyping of a Cloud Event Processor around a year ago that combined the open-source Esper CEP engine with Amazon's SNS and some code I wrote to create a loosely coupled event processor in the cloud.

Now, when I did this I used SNS to serve as the Cloud based loosely coupled messaging, but I did have the event processor itself running on a server on my network.  I noted then that because of using SNS and HTTP as the protocol between my server and SNS that the event processor could be deployed anywhere, but until today I hadn't actually moved it somewhere else.

What did I move it to?  I could have just found a hosting provider or gone the IaaS route and used AWS's free micro instance and configured the OS and installed a Web container, but with just a standard WAR file what I really wanted was a Java Platform as a Service (PaaS) offering I could just deploy to.  Doing this would save me the time and effort of setting everything up myself and having to maintain/upgrade it over time.  As much as the geek in me likes to play around with infrastructure and platform components, there isn't really much value in me spending time doing that in a situation like this.

So, I took a look at CloudBees and their RUN@Cloud offering.  It advertised the ability to develop like I'm used to and then instantly deploy to the Cloud.  Does it live up to this promise?  Based on my simple application and a very basic deployment, the answer is yes.

I signed up for a free CloudBees account which was very straightforward, and in a matter of minutes I had access and could create a new RUN@Cloud application.  Once created, I could then upload and deploy my WAR file and voila, I was deployed in the Cloud.  I didn't have to change a line of code or create/modify any descriptors or XML, it couldn't have been simpler.  I simply had to change my client and/or SNS URLs to point to the new server and it just worked.  And my initial goal of not having to deal with installing/configuring the platform was realized.

On top of it just working, I get some nice monitoring and administration tools that show me session, request, memory, and load statistics.  Very nice.

If you are looking for an easy to use Java PaaS, give CloudBees a look.