Developers and IT users want to simply use applications as opposed to installing and managing them. IT administrators want to offer a well-tested set of on-demand self-service applications to dramatically reduce their support burden. Project Murano is the OpenStack Application Catalog project that solves this problem for both constituents.
The project was pioneered by Mirantis and developed as an OpenStack community effort. Murano enables IT administrators to publish cloud-ready applications in an online catalog. Developers and IT users can use the catalog to deploy these on-demand applications, reliably and consistently, with a click of a button. Applications can be arbitrarily complex: from individual VMs to multi-node distributed applications with many dependent applications and services. Accessible via a GUI and an API, Murano also manages the application lifecycle.
Using the Murano Application Catalog
Let us take an example to illustrate the utility of Murano. MongoDB is a popular application used by developers, and let’s see the before and after picture.
MongoDB Deployment Example without Murano
- User decides on the mode – stand-alone, replica-group, sharded
- For sharded, user chooses shard count, nodes/ shard
- IT provisions each server with the right operating system and software packages
- IT sets up networking and storage and configure MongoDB to reflect user choices
- IT to set up backup & restore, point-in-time recovery, snapshot retention
- Users and IT monitor ongoing cluster operation and take care of scaling, healing etc.
- IT manually charges the user
MongoDB Deployment Example with Murano
- IT publishes Murano application catalog that encapsulates all of the configuration logic
- User answers few configuration questions
- Entire multi-node application with all its services, dependent packages, operating system, software configuration and underlying infrastructure in terms of compute VMs, virtual networking, and storage is deployed with a click of a button.
- Murano subsequently manages the lifecycle of MongoDB by auto-scaling, self-healing, providing usage statistics for chargeback etc.
Murano provides tools for defining and packaging applications on preconfigured Windows and Linux VMs. Applications can be arbitrarily complex: from individual VMs equipped for software development, testing or small-scale website deployments, to multi-tier applications that auto-scale onto many VMs, self-heal and provide robust support for Big Data analysis and other critical work.
In addition to helping the IT users and administrators, Murano is useful to third-party application developers. The Murano application catalog offers a way to publish applications, including deployment rules and requirements, suggested configurations, output parameters and billing rules, and to track billing and usage information. As customers start to require OpenStack compatibility, third party developers can differentiate themselves by having a ready-to-consume application catalog.
Learn about new features in Murano Kilo, including the new Application Catalog UI; and see how easy Murano is to use: first, creating and uploading an Apache Tomcat application package, then finding it in the catalog, configuring it to work with a database, and deploying it on OpenStack.
Murano Application Catalog UI
Murano features a very simple user interface, integrated with OpenStack’s standard Horizon web dashboard. The Application Catalog UI lets users find the applications they need based on category, tags and other attributes. For example, Apache Tomcat, a Java Servlet Container, can be found by searching for the tags: application service, java, servlet.
Once the desired application is found, it can be deployed immediately, or added to a Murano environment defining a multi-tier application, like a LAMP stack for web development.
Application Dynamic UI
Application creators can define and specify the form users fill out when an application is provisioned. The form is defined in a YAML-based file, describing UI entry fields, labels, hints and validation rules.
Specify Environment Configurations and Flavors via a Native OpenStack API
If you don’t want to use the Horizon UI, you also have the option of using an HTTP REST API service to create and use Windows and Linux environments, define services within them, and begin deployment. Any third-party service can use Murano to automatically deploy and dynamically update services on demand.
Provision Windows and Linux Environments with the Push of a Button
After you have selected the services and configured their properties, just push a button and Murano automatically takes care of the rest:
- Provisioning virtual machines in OpenStack, related storage and networking
- Installing Windows or Linux distributions
- Deploying the requested services
- Making all required configuration changes to make services available
Monitor Deployment Progress and Logs via the Horizon GUI
After your Applications are ready, use the logs to check events from any deployment attempt for a particular environment.
For example, if you are hosting a web application farm, you can check node creation, web server installation, domain controller creation, web application deployment, and other details.
Watch a video about Murano integration with Heat Orchestration Templates (HOT).
Murano vs. Heat
Murano deals with applications while Heat orchestrates infrastructure. In fact Murano utilizes an infrastructure orchestration layer such as Heat to provision the underlying VMs, networking and storage. With Murano Juno, it is possible to upload applications written in the HOT (Heat Orchestration Template) format. This format is supported by the Murano CLI tool, which automatically generates a proper Murano application package from the HOT template supplied by the user.
Application Lifesycle: Murano Application Actions
The Murano Juno release introduces the ability to define special workflows as part of a Murano application definition, exposing application-specific actions which should be performed as part of lifecycle management. Examples might include:
- Auto-scaling workflows to define specific scale-up and scale-down actions
- Application-level HA actions to orchestrate failover processes
- Database backup
- Disaster recovery and self-healing workflows
- Many other application-specific actions that can be performed on a running application
Learn about HA and Auto-Scaling with Murano.