Introducing The Cloudify Player
The idea behind it is simple: visit a web page, click the play button, and voila, you have an application or an open source framework up and running on the cloud, available for you to play and work with.
The Cloudify Player mimics a “YouTube-like” user experience, in which applications or frameworks are “played” in a similar way to how you would play a video on YouTube.
Users can browse applications from a public catalog, share them or embed the player itself in their own blog or website.
By default, you’re not even required to use any cloud credentials. GigaSpaces, in cooperation with “(newwindow)HP Cloud Services”:http://www.hpcloud.com, will take care of allocating the resources for you, and give you a time limited trial to test drive the application or project you’ve chosen.
If you want to deploy the application or project into your own account, and not constrain yourself to the time and capacity limits of the free-trial mode, just type in your own HPCS credentials and easily deploy to your account exactly the same way.
Why We Built It
So you’re probably asking what made us create it. You can read the detailed explanation in “(newwindow)Nati Shalom’s post”:http://natishalom.typepad.com/nati_shaloms_blog/2013/05/using-the-cloudify-player-as-an-open-source-framework-for-building-your-own-cloud-application-marketplace-on-openstack.html, but in short, our motivation for building the Cloudify Player is twofold:
# Give open source project owners and framework developers an incentive to create Cloudify recipes and improve existing ones, by allowing them to let users try out their stuff without having to download, configure or install anything. This can be very useful since setting things is not very trivial in many cases. That’s why we made the player itself embeddable in any web page and “skinnable,” so that the project owners can use it in their own websites without having to send their users to other websites.
# Let people interested in Cloudify give it a test drive on the cloud, again without installing or setting up anything. By providing as many recipes as possible available right out of the CloudifySource community website, we’re making sure that most users will actually be able to test drive frameworks that they use in their environment.
How it Works
The Cloudify Player is an open source project, which is implemented using the Play framework and uses Cloudify as a foundation. What happens under the hood is that the player communicates with a Play Framework application on the server side. This app manages a pool of VMs deployed on the cloud (in this case HPCloud) and “bootstrapped” with a running Cloudify manager. Whenever a user “plays” a recipe, the server borrows a VM from the free trial pool, connects to the manager running on it over REST, and issues the recipe installation command. After 30 – 60 seconds, you have a running app or framework, available for you to try out for limited time period.
For users using their own cloud credentials, this mechanism is a bit different – they are allocated their own Cloudify management server, which then installs the recipes in production mode, with as many hosts and resources as needed (and obviously with no time limit).
Can I Set Up My Own Player?
If you would like to set up your own player and embed it in your website or blog, things are quite simple. All you have to do is follow the following steps:
# Create a Cloudify recipe for your project / framework / application of choice (make sure to check our recipe repository first to see if doesn’t exist already). If you already have a Chef cookbook or Puppet manifest, you can also use the Cloudify integration for one of these frameworks and define the recipe to invoke one of these tools.
# Register a new widget at “(newwindow)http://launch.cloudifysource.org”:http://launch.cloudifysource.org.
# Copy the embed code and paste into your web page of choice.
Click on the image below to see how this is done:
That’s about it. Your users can now launch your recipe with a single click, using the machine pool provided by HPCloud and GigaSpaces or their own HPCS credentials!
If you want your project included in our cloudifysource.org catalog, just drop us a note at info at cloudifysource.org and we’ll take it from there.
Can I Set Up My Own “Player Server” and Catalog?
If you’re into doing it on your own, you can grab the “(newwindow)source code”:http://github.com/CloudifySource/cloudify-widget from github, build the project and install it on your own environment. Check the “(newwindow)project’s wiki pages”:https://github.com/CloudifySource/cloudify-widget/wiki on github for more details.
By setting up your own server, you will maintain full control over which frameworks and apps will be included in your catalog, how long users can trial the software, and even the look and feel for the web interface (we’ve made it as extensible as possible).
If I Have My Own Player Server Setup, Can I Track My Users?
Another nice side-benefit of having your own player is that you’re now able to get deeper insights into what your users prefer most and how they’re using the catalog and individual entries in it. The player itself contains a user tracking layer (completely anonymous, so your users don’t have to worry). We chose “(newwindow)MixPanel”:http://www.mixpanel.com to do the tracking for the current setup, but you can easily implement your own tracking layer using some hooks in the source code (read all about it in the “(newwindow)project wiki”:https://github.com/CloudifySource/cloudify-widget/wiki). If you’re deploying your server, this tracking module allows you to tell the activity of users, what catalog entries they find most popular, if they bother at all to stick till the end of the trial, and even what other actions they’re taking after the trial.
What About Other Clouds?
Currently, the server is implemented using “(newwindow)jclouds”:http://www.jclouds.org and uses the “(newwindow)jclouds OpenStack API”:http://jclouds.apache.org/guides/openstack/ to deploy on HPCloud. However it’s quite easy to tweak it to use other clouds instead, since all it does is allocate and decommission VMs, which is quite straightforward in all IaaS APIs. If you’re intending to use an “(newwindow)OpenStack”:http://www.openstack.org based cloud (such as “(newwindow)Rackspace”:http://www.rackspace.com or “(newwindow)IBM SmartCloud”:http://www.ibm.com/cloud-computing/us/en/iaas.html), it’s a mere configuration change. For other cloud APIs, you’ll have to do some coding (we’ll soon release directions for that in the project wiki). In future releases of the server, we’ll have this integration baked right in so you don’t have to do anything but configure your cloud credentials for this.
I hope I managed to give you a good overview about this exciting new project that we’re launching. Whether you’re an open source framework developer, an application developer who wants to test drive new tools and frameworks, or are just generally interested in Cloudify, the Cloudify Player is a quick and elegant way for you to test drive things with the smallest amount of effort.