Marketplace is a tool to quickly deploy preconfigured applications and services in the cloud. The applications available in marketplace are templates (such as links to images, configuration templates, infrastructure build code, scripts, etc) used to build an application at deployment time. When a user launches an application, the platform will execute these instructions, creating a private application instance (also referred as a "Marketplace appliance") in the user's project.
At this time, the applications available in marketplace are free (means, you don't pay any licensing fees to use this applications). Your account is only billed for the resources used. Typical applications consists of an instance based on selected flavor, often times a volume to store the data, and floating IP to provide access to the application - those are the resources that the account will be billed for. For more details about how specific resources are charged, consult the billing section.
Building and managing Marketplace appliances
A marketplace application is a template to be used, and instructions (code) to be executed at the build time. Each time the application is deployed, you as a user will get a private copy of the application in your project. The application instance will not be shared with any other project.
Although technically the marketplace technology is not limited to deploying apps in compute instances, and can deliver any application that can be instantiated programmatically, majority of the current applications are built using compute instances.
Once built, a marketplace appliance is considered unmanaged. That means that you as a user are ultimately responsible for managing this application. While some of the applications may be shipped with the tools simplifying the application management (patches, monitoring, etc), properly leveraging these tools is still responsibility of the application administrator.
Creating an appliance
To create a new marketplace application, click on the "Marketplace" section in the left-hand navigation menu. Then, select an application to be deployed and click on it. You can review the application description and deploy it.
While each application has its own settings and configuration, some of them are common among many applications. Here are the typical examples:
- Name of the application.
- Flavor defining the instance size and performance.
- Key pair to upload to the instances, which will allow you to log in to the instances for debugging and troubleshooting.
- Network configuration of the application - which includes instance networking, floating IP.
- Volume configuration: Applications that store significant amounts of data are usually configured to use a dedicated volume to place the data on. You may have a choice to select volume size and tier for the application.
- Application specific configuration - usernames, passwords, database names, etc.
Once you click on "Launch" button, the marketplace will validate input parameters first (things like all mandatory parameters are provided, passwords are proper length and do not contain prohibited symbols, etc). After that, the deployment phase begins - the application instance (visible in the "Installed Apps" section). will be in the "Creation in progress" state.
Depending on the application complexity, the creation may take some minutes. Status change to "Stack creation completed" (green status bar) indicates a successful creation - the application is ready to be used. "Creation failed" status indicates a permanent build failure - application in this status cannot be "repaired" - instead, you should check the failure reason, fix the problem causing the failure and restart application creation.
Managing an appliance
In general, marketplace applications are self-managed - means, the application management is responsibility of the user (and often can be performed through the application web UI).
Note that some of the applications are designed to be "disposable". That means, if you need to reconfigure the application, you simply rebuild it with new parameters, discarding the previous instance of the application.
The platform does not currently support functionality to change input parameters (those provided when deploying an application) for already deployed applications.
Troubleshooting an appliance
When application fails to build, you need to figure out what is causing it, fixing the underlying problem and then trying again.
Reasons of the application build failure depends on the specifics of the application and how it uses cloud resources. However, some things are common:
- First, you may check the application status message (click on the context menu of the failed application and select "App Status"). The message may indicate reason of the failure.
- Problems with floating IP are often related to the incorrect network selection (the selected network may have no router connected, or the router has no external gateway configured). To fix it, select proper network to connect your appliance to ("default-network" usually works well unless its configuration was changed incorrectly). For more details, check the floating IP section.
- Status message like "WaitConditionFailure" may indicate that the script inside the instance have failed (and did not signal its successful completion to the platform within predefined time). To troubleshoot the issue, you may look at the instance console logs (on the management panel of the instance that was build in the application) - however, that requires you have some bash scripting skills.
If you have command line access set up to your project through "openstack" command, you can also troubleshoot your applications with Heat (which is Openstack orchestration service) tools. In the backend, marketplace applications are built as Heat stacks, and regular Heat troubleshooting tools apply.