Jump to: navigation, search

Difference between revisions of "Murano"

m (fixed small typo)
(Documentation)
 
(126 intermediate revisions by 15 users not shown)
Line 1: Line 1:
== Project Background ==
+
= Murano =
Enterprise customers frequently use Windows based Environments for their internal and external products.  
+
The Murano Project introduces an application catalog to OpenStack, enabling application developers and cloud administrators to publish various cloud-ready applications in a browsable categorized catalog. Cloud users -- including inexperienced ones -- can then use the catalog to compose reliable application environments with the push of a button.
Configuration of the Windows Environment is a complex task which usually requires a lot of efforts from the administrators. Windows setup consists of numerous services which might be tightly coupled to each other. Windows services installation might be automated pretty straightforward but service configuration itself might be a hard to automate because it requires to have well designed Windows Architecture and deep knowledge in Windows Services configuration.
 
  
Currently there are several projects that aim to solve the same problems. In the world of OpenStack there is a Heat project that is similar to Amazon Cloud Formation. Heat is an excellent tool for managing OpenStack cloud resources like VM instances, security groups etc. It allows defining all cloud resources in a single JSON template and later maintain all the resources by editing that template. Although declarative template approach suites well for OpenStack resources it quickly turns to be too complex when it comes to application management. The reason is that services running on the VMs are not controlled by OpenStack.  The only way for Heat to do something on a VM is an init script. A 3-rd party tool can be used for doing a software configuration.
+
The key goal is to provide UI and API which allows to compose and deploy composite environments on the Application abstraction level and then manage their lifecycle. The Service should be able to orchestrate complex circular dependent cases in order to setup complete environments with many dependent applications and services. However, the actual deployment itself will be done by the existing software orchestration tools (such as [[Heat]]), while the Murano project will become an integration point for various applications and services.
  
There are configuration management tools like Chef or Puppet that can be used for that purpose. These tools are flexible but require to have a special knowledge in scripting and  require efforts to manually script or modify cookbooks for the specific environment configuration. This fits well when an environment is stable but it becomes time-consuming and involves manual script coding when one needs to deploy various environments with rapidly changing configurations. Also Chef and Puppet require additional infrastructure to support them. Windows services may require coordinated multi-step configuration changes among several machines. That might be hard to achieve on a large scale deployment without external orchestration.  
+
For latest releases of Murano please refer to http://releases.openstack.org
In addition to what was presented above, script based tools like Chef and Puppet do not come with UI which would allow to build an environment without writing or uploading a script.
+
For release notes of Murano projects please refer to release note pages for [http://docs.openstack.org/releasenotes/murano/index.html murano], [http://docs.openstack.org/releasenotes/murano-dashboard/index.html murano-dashboard], [http://docs.openstack.org/releasenotes/python-muranoclient/index.html python-muranoclient], and [http://docs.openstack.org/releasenotes/murano-agent/index.html murano-agent].
==Proposal==
 
Mirantis propose to introduce a new service which will allow non-experienced user to deploy reliable Windows based environment in “push-the-button” manner. The key goal is to provide UI and API which will allow to deploy and operate Windows Environments on the Windows Services abstraction level. The Service should be able to orchestrate complex circular dependent cases in order to setup complex Windows Environment with many dependant services.  
 
  
The service will address following use cases:
+
===Main Info===
* Self-provisioning of predefined Windows services with their dependencies
+
* [[Murano/ApplicationCatalog|Application Catalog Project Overview]]
* Automation of administrative tasks during data center roll-out
+
* [[Murano/Roadmap|Roadmap]]
* Custom windows application as a windows service
+
* [https://git.openstack.org/cgit/?q=murano Source code]
 +
* [https://launchpad.net/murano Bug and Feature Tracker]
  
The solution will provide higher level of abstraction for manipulation Windows Environments. Key concepts are:
+
===Documentation===
* Windows Service  - is a service like Active Directory, MSSQL, IIS which usually consist of multiple virtual machines and has multiple dependencies.
+
<h5>[[Murano/Screencasts|Murano Screencasts]]</h5>
* Windows Environment - is a logical unity for all services and represents a classical Windows Datacenter
+
<h5>Current documentation</h5>
 +
* [http://docs.openstack.org/developer/murano Developer documentation]
  
The Key Features of the Service are the following:
+
<br/>
# Native to OpenStack
+
See full list of [[Murano/Documentation|documentation per release]]
# Introduces abstraction level for Windows Environments
 
# Supports Availability Zones and Disaster Recovery scenarios
 
# Uses native Windows features for HA solutions
 
  
==Architecture Details==
+
==== Subpages ====
The Glazier Service communicates with the following OpenStack components:
 
* Horizon - provides GUI with ability to use all of Glazier features;
 
* Keystone - authenticates users and provides security token that is used to work with the OpenStack, hence limiting user abilities in WinDC by his OpenStack privileges;
 
* Heat - is used to provision VMs and other OpenStack resources  for Windows Environment;
 
* Glance - Windows Server VM images are stored there, each image containing an installed OS and a set of scripts
 
* Agent - an agent software which communicates with Orchestration Engine and executes tasks on VMs
 
[[File:Glazier architecture diagram.png]]
 
  
 
+
{{Special:PrefixIndex/:Murano/}}
=== REST API ===
 
This is a core component which evaluates the Object Model change and creates a plan for implementing these changes on the instances or in the cloud. This component will support extensions via plug-ins. Plugin can add a new service and extend existing services for integration. Currently there are two services which are already implemented as plugins. They are Active Directory and IIS Service.
 
 
 
===Object Model===
 
An internal representation of Windows Services and Environments. All attributes and entities are described in API specification.
 
 
 
===Orchestration Engine===
 
This is a core component which evaluates the Object Model change and creates a plan for implementing these changes on the instances or in the cloud. This component will support extensions via plug-ins. Plugin can add a new service and extend existing services for integration. Currently there are two services which are already implemented as plugins. They are Active Directory and IIS Service.
 
 
 
==Integration with Heat==
 
Heat is an cloud resource management engine, which allows you to manipulate with resources that represents OpenStack entities (Security Groups, Instances, Floating IPs, Volumes, etc.) and some custom entities like AutoScaling group from a single point of control.
 
Bacause OpenStack resource provisioning is one of the step required for environment deployment it was decided to use Heat for that purpose. Using Heat allows us to define all the OpenStack resources in a single document that would be easy to maintain and would not require resorting to a lots of different OpenStack APIs while keeping the software configuration aside from it.
 
 
 
==Windows on OpenStack==
 
Windows works on KVM pretty smoothly. RedHat created an open-source VirtIO drivers for Windows that allow to work with KVM exposed devices efficiently.
 
In Grizzly release a Microsoft’s hypervisor Hyper-V will be supported. Hyper-V virtual switch will be also supported as a Quantum plug-in. From the performance viewpoint, Hyper-V Server 2012 shows very small difference from physical machine. OLTP workload running on a 75,000 customer database deployed in a Hyper-V virtual machine processed just over 6% fewer transactions per second compared to the same workload running on a similarly configured physical server.
 
Hyper-V also supports natively Windows Clusters in contrary to the current OpenStack implementation.
 
 
 
==More info==
 
* Project blueprint: https://wiki.openstack.org/wiki/Glazier | http://glazier.mirantis.com/index.html
 
* Sources: https://github.com/stackforge/glazier (use gerrit review.openstack.org to contribute)
 
* Launchpad project: https://launchpad.net/glazier
 

Latest revision as of 22:04, 11 July 2016

Murano

The Murano Project introduces an application catalog to OpenStack, enabling application developers and cloud administrators to publish various cloud-ready applications in a browsable categorized catalog. Cloud users -- including inexperienced ones -- can then use the catalog to compose reliable application environments with the push of a button.

The key goal is to provide UI and API which allows to compose and deploy composite environments on the Application abstraction level and then manage their lifecycle. The Service should be able to orchestrate complex circular dependent cases in order to setup complete environments with many dependent applications and services. However, the actual deployment itself will be done by the existing software orchestration tools (such as Heat), while the Murano project will become an integration point for various applications and services.

For latest releases of Murano please refer to http://releases.openstack.org For release notes of Murano projects please refer to release note pages for murano, murano-dashboard, python-muranoclient, and murano-agent.

Main Info

Documentation

Murano Screencasts
Current documentation


See full list of documentation per release

Subpages