Using the Cloudify Player as an Open Source Framework for Building Your Own Cloud Application Marketplace on OpenStack
In my previous post I outlined the main lessons learned from the Amazon Cloud Marketplace and suggested an alternative approach for building an open marketplace.
In this post I’ll refer to a specific implementation of that alternative approach through a new Cloudify Service called the Cloudify Player.
Introduction to the Cloudify Player
Cloudify Player is a new patent-based service that makes the experience of trying and deploying even the most complex, multi-tier big data applications as simple as playing a video on YouTube. The new service currently supports OpenStack-based clouds and is available as a free online service from “(newwindow)HP Cloud Services”:https://www.hpcloud.com/ and GigaSpaces’ Cloudify. The source code for the service is also available as an open source project on Github. The Player was developed in collaboration with HP Cloud Services, GigaSpaces’ cloud partner and leading provider of OpenStack-based public cloud services.
Cloudify Player an End User Perspective
The Cloudify Player provides a user-friendly and hassle-free user experience in which applications are “played” in similar fashion to the way you play a video online. Users can choose and browse applications from public catalogs that are based on Github. Similarly to YouTube, users can share the applications or embed them easily on their blog or website.
Users can choose to play any application as a free trial or for full production under their account.
h3. Technical Overview
The Cloudify Player consists of the following components as outlined below:
Web Front End
The Web Front End is based on two main interfaces: a widget interface which allows users to browse through a list of applications and deploy them, and a widget management form is provided to allow users to easily publish new applications.
Users can use one of the two deployment options – a trial deployment provides a free non-gated experience for running the selected application on a single machine. Registered users can provide their cloud credentials and route the application into their cloud environment. In this way, they can also monitor the deployed instances through their cloud management console.
Multi-Tenant Orchestrator and Monitoring
The multi-tenant orchestration and monitoring service is responsible for parsing the selected application recipe and for executing the deployment of that application based on the description provided in the recipe. The web-based management allows users to monitor and manage the deployed application.
Application activities are sent into an analytics service that produce real-time usage reports on the most-active application, as well as the user experience activities.
Service Catalogue Repository
The Service Catalogue is based on a Github clone.
Users use the repository to store their application recipes, track versions, manage history of updates, etc.
Cloudify can be integrated with various public and private clouds using out-of-the-box plug-ins.
There are basically two main cloud pools that are used in this architecture:
# Free Trial Pool – The free trial pool is used to speed up the deployment experience during the trial stage. This pool is limited for time and is initially set for a single VM per deployment to avoid quick exhaustion of resources from the free pool.
# Production User Cloud – Users that pass their credentials could use the same interface for deploying application under their account. In this case they are not limited in time nor the number of nodes per application.
h3. Product Overview for IT Managers and DevOps
The Cloudify Player was designed to fit into a DevOps environment in which applications are expected to be modified on a continuous basis after they have been deployed. Users can add new applications easily by wrapping them with a simple script, called a recipe. Recipes can be based on either Chef or Puppet. Recipes can be modified after they have been published by each end user before the deployment takes place.
Users can monitor and manage their applications using a single management dashboard. The management dashboard allows users to monitor the application topology and behavior as well as view real time logging and even open SSH console if needed.
Summary of the Main Features
* Out-of-the-box support for 100s of products (Leveraging the existing Chef/Puppet support)
* Supports full life cycle of user experience from simple free trial to full production
* Specific support for Big Data clusters, including Database as a Service, Hadoop as a Service, MongoDB as a Service, etc.
* Can run clusters rather than just individual VMs
* Application can run outside of the marketplace using the same tools
* Users can easily customize the services from the catalog for their own purposes, including the possibility to run their own version of each item in the catalog. Advanced users can leverage the built-in Chef & Puppet support for advanced configuration management.
* Built in multi-tenant application management so that each user can monitor and manage all of the products under his/her account using a single application-centric dashboard
* Built-in integration with analytics tools to support tracking of user activity
Using Cloudify to Build Your Own Marketplace
The Cloudify Player was designed to simplify the deployment of applications in the cloud. The open nature of the Cloudify Player provides many of the features required for building a marketplace in your own environment under your brand and with the application of your choice. In addition, we’ve put a lot of emphasise on making the user experience simple while ensuring a smooth transition from a hassle-free trial to full production usage.
You can try out the OpenStack version that we launched in collaboration with HP at “www.cloudifysource.org”:www.cloudifysource.org.
For more information about the Cloudify Player and how it works, please see Uri Cohen’s blog post “Introducing the Cloudify Player”.