Updated Blueprint according to Nick review
This commit is contained in:
@@ -117,57 +117,42 @@ http://docbook.org/ns/docbook "
|
||||
<section>
|
||||
|
||||
<title>Project Background</title>
|
||||
<para>Enterprise customers frequently use Windows based
|
||||
Environments for their internal and external products.
|
||||
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.
|
||||
<para>Enterprise customers frequently use Windows-based environments for their internal and external
|
||||
products. Configuration of the Windows environment is a complex task which usually requires a lot of
|
||||
effort from administrators. Windows setup consists of numerous services which might be tightly coupled
|
||||
to each other. While the automated installation of Windows services can be fairly straightforward,
|
||||
service configuration can be hard to automate because it requires a well-designed Windows architecture
|
||||
and deep knowledge of Windows services configuration.
|
||||
</para>
|
||||
<para>Currently several open source solutions exists that can help
|
||||
to partially solve automation of Windows environment
|
||||
provisioning. 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.
|
||||
<para>Currently several open source solutions exists that can help to partially solve automation of Windows
|
||||
environment provisioning. In the world of OpenStack there is the Heat project, which is similar to
|
||||
Amazon Cloud Formation. Heat is an excellent tool for managing OpenStack cloud resources such as VM
|
||||
instances, security groups, and so on. It allows you to define all cloud resources in a single JSON
|
||||
template, then later maintain all of those resources by editing that template. Although the declarative
|
||||
template approach is well suited to OpenStack resources, it quickly becomes complex when it comes to
|
||||
application management.
|
||||
</para>
|
||||
<para>Another option is tools like Chef or Puppet. 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.
|
||||
<para>Another option is a tool such as Chef or Puppet. These tools are flexible, but require you to have a
|
||||
deep knowledge of scripting and require a significant amount of effort to manually script or modify
|
||||
cookbooks for your specific environment configuration. This is manageable in a stable environment, 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.
|
||||
</para>
|
||||
<para>The biggest problem for both approaches above is to support
|
||||
multi-step configuration of services with circular dependencies
|
||||
required for correct configuration of Windows services. This
|
||||
can be solved by using external orchestration.
|
||||
<para>The biggest problem for both approaches above is in supporting multi-step configuration of services
|
||||
with circular dependencies required for correct configuration of Windows services. This can be solved by
|
||||
using external orchestration.
|
||||
</para>
|
||||
<para>Another potential problem is lack of UI functionality
|
||||
allowing to create and configure an environment without writing
|
||||
a script.
|
||||
<para>Another potential problem is the lack of UI functionality enabling creation and configuration of an
|
||||
environment without writing a script.
|
||||
</para>
|
||||
<section>
|
||||
<title>Proposal</title>
|
||||
<para>Mirantis propose to introduce a new service which will
|
||||
allow non-experienced user to deploy reliable Windows based
|
||||
environments 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.
|
||||
<para>Mirantis proposes to introduce a new service which will allow a non-experienced user to deploy
|
||||
reliable Windows based environments in a “push-the-button” manner. The key goal is to provide a UI
|
||||
and API enabling the deployment and operation of Windows Environments at the Windows Services
|
||||
abstraction level. The service should be able to orchestrate complex circular dependent cases in
|
||||
order to set up a complex Windows Environment with multiple dependant services.
|
||||
</para>
|
||||
<para>The service will address following use cases:
|
||||
<itemizedlist spacing="compact">
|
||||
@@ -187,18 +172,18 @@ http://docbook.org/ns/docbook "
|
||||
concepts are:
|
||||
<itemizedlist spacing="compact">
|
||||
<listitem>
|
||||
<para>Windows Service - is a service like Active Directory, MSSQL, IIS which usually consist
|
||||
of multiple virtual machines and has multiple dependencies.
|
||||
<para>Windows Service - a service such as Active Directory, MSSQL, or IIS, which usually
|
||||
consists of multiple virtual machines and has multiple dependencies.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Windows Environment - is a logical unity for all services and represents a classical
|
||||
<para>Windows Environment - a logical unit for all Services and represents a classical
|
||||
Windows Datacenter
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Windows VM instance - a VM which hosts a Windows Service. A Windows Service might be
|
||||
deployed over several Windows VM instances.
|
||||
deployed
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
@@ -228,28 +213,28 @@ http://docbook.org/ns/docbook "
|
||||
The Murano Service communicates with the following OpenStack components:
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Horizon - provides GUI with ability to use all of Murano features;</para>
|
||||
<para>Horizon - provides a GUI with ability to use all Murano features;</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Keystone - authenticates users and provides security token that is used to work with the
|
||||
OpenStack, hence limiting user abilities in Murano by his OpenStack privileges;
|
||||
<para>Keystone - authenticates users and provides the security token that is used to work with
|
||||
OpenStack, hence limiting the user abilities in Murano based on OpenStack privileges;
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Heat - is used to provision VMs and other OpenSack resources for Windows Environment;
|
||||
<para>Heat - is used to provision VMs and other OpenStack resources for Windows Environments;
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Glance - Windows Server VM images are stored there, each image containing an installed OS
|
||||
and a set of scripts
|
||||
<para>Glance - stores Windows Server VM images, with each image containing an installed OS and a
|
||||
set of scripts
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Quantum - provides network configuration API</para>
|
||||
<para>Quantum - provides the network configuration API</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Agent - an agent software which communicates with Orchestration Engine and executes tasks
|
||||
on VMs
|
||||
<para>Agent - provides agent functionality to communicate with the Orchestration Engine and
|
||||
executes tasks on VMs
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
@@ -268,54 +253,52 @@ http://docbook.org/ns/docbook "
|
||||
</figure>
|
||||
<section>
|
||||
<title>REST API</title>
|
||||
<para>Exposes service endpoint for the communication with a client. It exposes API functions to
|
||||
manipulate with objects like: environment, service.
|
||||
<para>Murano exposes a service endpoint for communication with a client. It exposes API functions to
|
||||
manipulate objects such as environment and service.
|
||||
</para>
|
||||
<para>This component is responsible for translation API functions parameters to the Object Model
|
||||
attributes and to propagate the deployment status from the Orchestration Engine.
|
||||
<para>This component is responsible for translating API function parameters to Object Model attributes
|
||||
and propagating the deployment status from the Orchestration Engine.
|
||||
</para>
|
||||
</section>
|
||||
<section>
|
||||
<title>Object Model</title>
|
||||
<para>An internal representation of Windows Services and Environments. All attributes and entities are
|
||||
described in API specification.
|
||||
described in the API specification.
|
||||
</para>
|
||||
</section>
|
||||
<section>
|
||||
<title>Orchestration Engine</title>
|
||||
<para>This is a core component which evaluates the Object Model change and creates a plan for
|
||||
<para>This is the core component which evaluates Object Model changes 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
|
||||
via plug-ins. Plugins can add new services 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
|
||||
</para>
|
||||
</section>
|
||||
</section>
|
||||
<section>
|
||||
<title>Integration with Heat</title>
|
||||
<para>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.
|
||||
<para>Heat is a cloud resource management engine that allows you to manipulate resources that represent
|
||||
OpenStack entities (Security Groups, Instances, Floating IPs, Volumes, etc.) and some entities such as
|
||||
AutoScaling groups from a single point of control.
|
||||
</para>
|
||||
<para>OpenStack resource provisioning is one of the step required for environment deployment and Heat will
|
||||
be used for that purpose. Heat allows 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.
|
||||
<para>OpenStack resource provisioning is one of the steps required for environment deployment and Heat will
|
||||
be used for that purpose. Heat allows you to define all OpenStack resources in a single document that
|
||||
will be easy to maintain and will not require resorting to multiple OpenStack APIs while keeping the
|
||||
software configuration separate.
|
||||
</para>
|
||||
</section>
|
||||
<section>
|
||||
<title>Windows on OpenStack</title>
|
||||
<para>Windows works on KVM pretty smoothly. RedHat created an open-source VirtIO drivers for Windows that
|
||||
allow to work with KVM exposed devices efficiently.
|
||||
<para>Windows works on KVM pretty smoothly, and with the RedHat-created open-source VirtIO drivers for
|
||||
Windows, it’s possible to work efficiently with KVM exposed devices.
|
||||
</para>
|
||||
<para>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.
|
||||
<para>In OpenStack’s Grizzly release, Microsoft’s hypervisor Hyper-V will be supported. The Hyper-V virtual
|
||||
switch will be also supported as a Quantum plug-in. From the performance viewpoint, Hyper-V Server 2012
|
||||
compares very favorably with bare metal, processing just over 6% fewer transactions per second compared
|
||||
to the same workload running on a similarly configured physical server.
|
||||
</para>
|
||||
<para>Hyper-V also supports natively Windows Clusters in contrary to the current OpenStack implementation.
|
||||
<para>Also, unlike the current OpenStack, Hyper-V also natively supports Windows Clusters.
|
||||
</para>
|
||||
</section>
|
||||
</chapter>
|
||||
@@ -2529,7 +2512,9 @@ user@work:~/$ murano-api --config-file=./murano/api/etc/murano-api.conf
|
||||
</section>
|
||||
<section>
|
||||
<title>Conductor Service</title>
|
||||
<para>Conductor is an Murano orchestration engine that transforms object model sent by REST API service into a series of Heat and Murano-Agent commands.</para>
|
||||
<para>Conductor is an Murano orchestration engine that transforms object model sent by REST API service into
|
||||
a series of Heat and Murano-Agent commands.
|
||||
</para>
|
||||
<para>This document describes Conductor for contributors of the project.</para>
|
||||
<section>
|
||||
<title>Install</title>
|
||||
|
Reference in New Issue
Block a user