Restructured manual

Change-Id: I979c55f9c45797e40fc8456cd898351bb94cceb2
This commit is contained in:
Serg Melikyan 2013-07-29 16:19:57 +04:00
parent d03e46a3e1
commit bd92cadeb9
9 changed files with 3975 additions and 3780 deletions

1
.gitignore vendored
View File

@ -1,5 +1,6 @@
#IntelJ Idea
.idea/
*.iml
#Build results
target

View File

@ -19,7 +19,7 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mirantis.murano</groupId>
<artifactId>manuals</artifactId>
<artifactId>murano-manual</artifactId>
<version>1.0.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>Murano Project Documentation</name>

View File

@ -0,0 +1,213 @@
<?xml version='1.0' encoding='UTF-8'?>
<!--
Copyright (c) 2013 Mirantis, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<chapter xmlns="http://docbook.org/ns/docbook"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xlink="http://www.w3.org/1999/xlink"
xsi:schemaLocation="http://docbook.org/ns/docbook http://www.docbook.org/xml/5.0/xsd/docbook.xsd
http://www.w3.org/1999/xlink http://www.w3.org/1999/xlink.xsd"
version="5.0">
<title>Blueprint</title>
<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
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 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 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 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 the lack of UI functionality enabling creation and configuration of an
environment without writing a script.
</para>
<section>
<title>Proposal</title>
<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">
<listitem>
<para>Self-provisioning of predefined Windows services with their dependencies</para>
</listitem>
<listitem>
<para>Automation of administrative tasks during data center roll-out</para>
</listitem>
<listitem>
<para>Custom windows application as a windows service</para>
</listitem>
</itemizedlist>
</para>
<para>
The solution will provide higher level of abstraction for manipulation Windows Environments. Key
concepts are:
<itemizedlist spacing="compact">
<listitem>
<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 - 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
</para>
</listitem>
</itemizedlist>
</para>
<para>
The Key Features of the Service are the following:
<orderedlist>
<listitem>
<para>Native to OpenStack</para>
</listitem>
<listitem>
<para>Introduces abstraction level for Windows Environments</para>
</listitem>
<listitem>
<para>Supports Availability Zones and Disaster Recovery scenarios</para>
</listitem>
<listitem>
<para>Uses native Windows features for HA solutions</para>
</listitem>
</orderedlist>
</para>
</section>
</section>
<section xml:id="architecture">
<title>Architecture</title>
<para>
The Murano Service communicates with the following OpenStack components:
<itemizedlist>
<listitem>
<para>Horizon - provides a GUI with ability to use all Murano features;</para>
</listitem>
<listitem>
<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 OpenStack resources for Windows Environments;
</para>
</listitem>
<listitem>
<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 the network configuration API</para>
</listitem>
<listitem>
<para>Agent - provides agent functionality to communicate with the Orchestration Engine and
executes tasks on VMs
</para>
</listitem>
</itemizedlist>
</para>
<figure xml:id="muranoarchitecture">
<title>Architecture</title>
<mediaobject>
<imageobject role="fo">
<imagedata fileref="figures/architecture_diagram.png"
contentwidth="5in"/>
</imageobject>
<imageobject role="html">
<imagedata fileref="figures/architecture_diagram.png"/>
</imageobject>
</mediaobject>
</figure>
<section>
<title>REST API</title>
<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 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 the API specification.
</para>
</section>
<section>
<title>Orchestration Engine</title>
<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. 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.
</para>
</section>
</section>
<section>
<title>Integration with Heat</title>
<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 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, and with the RedHat-created open-source VirtIO drivers for
Windows, its possible to work efficiently with KVM exposed devices.
</para>
<para>In OpenStacks Grizzly release, Microsofts 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>Also, unlike the current OpenStack, Hyper-V also natively supports Windows Clusters.
</para>
</section>
</chapter>

View File

@ -0,0 +1,472 @@
<?xml version='1.0' encoding='UTF-8'?>
<!--
Copyright (c) 2013 Mirantis, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<chapter xmlns="http://docbook.org/ns/docbook"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xlink="http://www.w3.org/1999/xlink"
xsi:schemaLocation="http://docbook.org/ns/docbook http://www.docbook.org/xml/5.0/xsd/docbook.xsd
http://www.w3.org/1999/xlink http://www.w3.org/1999/xlink.xsd"
version="5.0">
<title>Installation Guide</title>
<para>This chapter is about installation and configuration Murano services.</para>
<para>Note that all Murano modules can be downloaded from
<link xlink:href="https://launchpad.net/murano/">our page</link>
on launchpad.
</para>
<section>
<title>Common Pre-Requirements</title>
<para>Operation system:</para>
<orderedlist>
<listitem><para>Ubuntu</para></listitem>
<listitem><para>RHEL/CentOS</para></listitem>
</orderedlist>
<para>Packages:</para>
<orderedlist>
<listitem><para>python-dev</para></listitem>
<listitem><para>libxml2-dev</para></listitem>
<listitem><para>libxslt-dev</para></listitem>
</orderedlist>
</section>
<section>
<title>Murano API Service</title>
<para>Murano API provides access to the Murano orchestration engine via API.</para>
<para>This chapter describes Murano API for contributors of the project, and assumes that you are already
familiar with Murano API from an end-user perspective.
</para>
<section>
<title>Install</title>
<itemizedlist>
<listitem>
<para>Project source can be checked out as git repository (see below) or downloaded from
<link xlink:href="http://tarballs.openstack.org/murano-api/">here</link>
</para>
<programlisting>
<![CDATA[
user@work:~/$ git clone https://github.com/stackforge/murano-api.git
]]>
</programlisting>
</listitem>
<listitem>
<para>Switch to just created directory</para>
<programlisting>
<![CDATA[
user@work:~/$ cd murano-api
]]>
</programlisting>
</listitem>
<listitem>
<para>And them perform installation:</para>
<programlisting>
<![CDATA[
user@work:~/murano-api$ chmod +x setup.sh ; sudo ./setup.sh install
]]>
</programlisting>
</listitem>
</itemizedlist>
</section>
<section>
<title>Configure</title>
<itemizedlist>
<listitem>
<para>First configure rabbitMQ by adding vhost and user with administrator rights:</para>
<programlisting>
<![CDATA[
sudo rabbitmqctl add_user murano murano
sudo rabbitmqctl set_user_tags murano administrator
sudo rabbitmqctl add_vhost murano
sudo rabbitmqctl set_permissions -p murano murano ".*" ".*" ".*"
]]>
</programlisting>
</listitem>
<listitem>
<para>Copy and edit configuration file:</para>
<programlisting>
<![CDATA[
user@work:~/murano-api$ sudo cp /etc/murano-api/murano-api.conf.sample /etc/murano-api/murano-api.conf
user@work:~/murano-api$ sudo nano /etc/murano-api/murano-api.conf
]]>
</programlisting>
</listitem>
<listitem>
<para>Configure it according to your environment:
<itemizedlist>
<listitem>
<para><emphasis>[DEFAULT]</emphasis>section sets up logging.</para>
</listitem>
<listitem>
<para><emphasis>[reports]</emphasis> section you can set names for new rabbitMQ queues.
</para>
</listitem>
<listitem>
<para>In <emphasis>[rabbitmq]</emphasis> section sets up host configuration where rabbitMQ
with just created user and vhost is running.</para>
</listitem>
</itemizedlist>
</para>
<programlisting>
<![CDATA[
[DEFAULT]
# Show more verbose log output (sets INFO log level output)
verbose = True
# Show debugging output in logs (sets DEBUG log level output)
debug = True
# Address to bind the server to
bind_host = 0.0.0.0
# Port the bind the server to
bind_port = 8082
# Log to this file. Make sure the user running skeleton-api has
# permissions to write to this file!
log_file = /tmp/murano-api.log
#A valid SQLAlchemy connection string for the metadata database
sql_connection = sqlite:///murano.sqlite
[reports]
results_exchange = task-results
results_queue = task-results
reports_exchange = task-reports
reports_queue = task-reports
[rabbitmq]
host = localhost
port = 5672
virtual_host = murano
login = murano
password = murano
]]>
</programlisting>
</listitem>
<listitem>
<para>Copy and edit one more configuration file:</para>
<programlisting>
<![CDATA[
user@work:~/murano-api$ sudo cp etc/murano-api/murano-api-paste.ini.sample etc/murano-api/murano-api-paste.ini
user@work:~/murano-api$ sudo nano /etc/murano-api/murano-api-paste.ini
]]>
</programlisting>
</listitem>
<listitem>
<para>Configure keystone auth_token in
<emphasis>[filter:authtoken]</emphasis>
section.
For more information see
<link xlink:href="http://docs.openstack.org/developer/keystone/configuringservices.html">Auth-Token
Middleware with Username and Password
</link>
</para>
<programlisting>
<![CDATA[
[pipeline:murano-api]
pipeline = authtoken context apiv1app
[app:apiv1app]
paste.app_factory = muranoapi.api.v1.router:API.factory
[filter:context]
paste.filter_factory = muranoapi.api.middleware.context:ContextMiddleware.factory
[filter:authtoken]
paste.filter_factory = keystoneclient.middleware.auth_token:filter_factory
auth_host = localhost
auth_port = 35357
auth_protocol = http
admin_tenant_name = admin
admin_user = admin
admin_password = password
signing_dir = /tmp/keystone-signing-muranoapi
]]>
</programlisting>
</listitem>
<listitem>
<para>Register murano-api service in Openstack
(note: you need to be authorized in Openstack to run this commands)
</para>
<programlisting>
<![CDATA[
user@work:~/$ keystone service-create --name muranoapi --type murano --description "Murano-Api Service"
]]>
<![CDATA[
user@work:~/$ keystone endpoint-create
--region RegionOne
--service-id The ID field returned by the keystone service-create
--publicurl http://x.x.x.x:8082 (where x.x.x.x - host ip where murano-api installed)
--internalurl the same as publicurl
--adminurl the same as publicurl
]]>
</programlisting>
</listitem>
</itemizedlist>
</section>
<section>
<title>Run</title>
<para>Run Murano API and supply valid configuration file:</para>
<programlisting>
<![CDATA[
user@work:~/$ sudo service murano-api start
]]>
</programlisting>
</section>
</section>
<section>
<title>Conductor Service</title>
<para>Conductor is a 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>
<itemizedlist>
<listitem>
<para>Murano Condutor uses OpenStack Heat for new virtual machines creation, therefore Heat should
been installed and configured. Some services require the Internet access for virtual machines to
successfull deployment.
</para>
<para>The detailed information about Heat configuration is described
<link xlink:href="http://docs.openstack.org/developer/heat/getting_started/index.html">here.</link>
</para>
</listitem>
<listitem>
<para>OpenStack Heat require Key Pair for Load Balancer instances. Murano Conductor uses
LoadBalancer for IIS Farms and ASP.NET Farms. The default name for Key Pair is 'murano-lb-key',
you can change this parameter in file
<![CDATA[
/etc/murano-conductor/data/templates/cf/Windows.template
]]>
</para>
</listitem>
<listitem>
<para>Project source code can be checked out from git repository (see below) or downloaded from
<link xlink:href="http://tarballs.openstack.org/murano-conductor/">here.</link>
<programlisting>
<![CDATA[
user@work:~/$ git clone https://github.com/stackforge/murano-conductor.git
]]>
</programlisting>
</para>
</listitem>
<listitem>
<para>Switch to just created directory</para>
<programlisting>
<![CDATA[
user@work:~/cd murano-conductor
]]>
</programlisting>
</listitem>
<listitem>
<para>And install Conductor Service to the system:</para>
<programlisting>
<![CDATA[
user@work:~/murano-conductor$ chmod +x setup.sh ; sudo ./setup.sh install
]]>
</programlisting>
</listitem>
</itemizedlist>
</section>
<section>
<title>Configure</title>
<itemizedlist>
<listitem>
<para>Edit configuration file:</para>
<programlisting>
<![CDATA[
user@work:~/murano-conductor$ nano /etc/murano-conductor/conductor.conf
]]>
</programlisting>
</listitem>
<listitem>
<para>
Change it according to your environment.
<itemizedlist>
<listitem>
<para><emphasis>[DEFAULT]</emphasis>section is responsible for logging.</para>
</listitem>
<listitem>
<para><emphasis>[heat]</emphasis>points where heat is running.</para>
</listitem>
<listitem>
<para><emphasis>[rabbitmq]</emphasis>section points where your rabbitMQ installed and configured.</para>
</listitem>
</itemizedlist>
</para>
<programlisting>
<![CDATA[
[DEFAULT]
log_file = logs/conductor.log
debug=True
verbose=True
[heat]
auth_url = http://localhost:5000/v2.0
[rabbitmq]
host = localhost
port = 5672
virtual_host = murano
login = murano
password = murano
]]>
</programlisting>
</listitem>
</itemizedlist>
</section>
<section>
<title>Run</title>
<para>Run Conductor and supply valid configuration file:</para>
<programlisting>
<![CDATA[
user@work:~/murano-conductor$ sudo service murano-conductor start
]]>
</programlisting>
</section>
</section>
<section>
<title>Murano Dashboard</title>
<para>Murano Dashboard provides Web UI for Murano Project.</para>
<section>
<title>Pre-Requirements</title>
<itemizedlist>
<listitem>
<para>To setup Murano Dashboard on a host with Openstack Dashbord already installed you just need to
install<emphasis>
the python-muranoclient</emphasis>. You can download it from
<link xlink:href="http://tarballs.openstack.org/python-muranoclient/">here.</link>
</para>
<para>And then perform installation with pip:
<programlisting>
<![CDATA[
user@work:~/$ sudo pip install ]]><emphasis>just_downloaded</emphasis>.tar.gz
</programlisting>
</para>
</listitem>
<listitem>
<para>If there is no OpenStack Dashboard (horizon) you'll need to install it. See
<link xlink:href="http://docs.openstack.org/trunk/openstack-compute/install/yum/content/ch_install-dashboard.html">
here
</link>
how to do that.
</para>
</listitem>
</itemizedlist>
</section>
<section>
<title>Install</title>
<itemizedlist>
<listitem>
<para>Project source code can be checked out from git repository (see below) or downloaded from
<link xlink:href="http://tarballs.openstack.org/murano-dashboard/">here.</link>
</para>
<programlisting>
<![CDATA[
user@work:~/$ git clone https://github.com/stackforge/murano-dashboard.git
]]>
</programlisting>
</listitem>
<listitem>
<para>Switch to just created directory</para>
<programlisting>
<![CDATA[
user@work:~/$ cd murano-dashboard ]]>
</programlisting>
</listitem>
<listitem>
<para>And perform installation</para>
<programlisting>
<![CDATA[
user@work:~/murano-dashboard$ sudo python setup.py install
]]>
</programlisting>
</listitem>
</itemizedlist>
</section>
<section>
<title>Configure</title>
<itemizedlist>
<listitem>
<para>Open Django configuration file:</para>
<programlisting>
<![CDATA[
user@work:~/$ cd <Horizon Installation Dir> && nano settings.py
]]>
</programlisting>
<para>Please, make sure that no local/local_settings.py file exists.</para>
</listitem>
<listitem>
<para>Add to import section</para>
<programlisting>
<![CDATA[
from muranoclient.common import exceptions as muranoclient
]]>
</programlisting>
</listitem>
<listitem>
<para>And this so muranoclient exceptions can be safely handle by horizon:</para>
<programlisting>
<![CDATA[
RECOVERABLE_EXC = (muranoclient.HTTPException,
muranoclient.CommunicationError,
muranoclient.Forbidden)
EXTENDED_RECOVERABLE_EXCEPTIONS = tuple(
exceptions.RECOVERABLE + RECOVERABLE_EXC)
NOT_FOUND_EXC = (muranoclient.HTTPNotFound, muranoclient.EndpointNotFound)
EXTENDED_NOT_FOUND_EXCEPTIONS = tuple(exceptions.NOT_FOUND + NOT_FOUND_EXC)
UNAUTHORIZED_EXC = (muranoclient.HTTPUnauthorized, )
EXTENDED_UNAUTHORIZED_EXCEPTIONS = tuple(
exceptions.UNAUTHORIZED + UNAUTHORIZED_EXC)
]]>
</programlisting>
</listitem>
<listitem>
<para>And finally edit HORIZON_CONFIG and INSTALLED_APPS sections</para>
<programlisting>
<![CDATA[
HORIZON_CONFIG = {
...
'exceptions': {'recoverable': EXTENDED_RECOVERABLE_EXCEPTIONS,
'not_found': EXTENDED_NOT_FOUND_EXCEPTIONS,
'unauthorized': EXTENDED_UNAUTHORIZED_EXCEPTIONS},
'customization_module': 'muranodashboard.panel.overrides'
}
...
INSTALLED_APPS = (
...
'muranodashboard',
...
)
]]>
</programlisting>
</listitem>
</itemizedlist>
</section>
<section>
<title>Run</title>
<para>Run Horizon:</para>
<programlisting>
<![CDATA[
user@work:~/$ sudo service apache2 restart
]]>
</programlisting>
</section>
</section>
</chapter>

View File

@ -0,0 +1,73 @@
<?xml version='1.0' encoding='UTF-8'?>
<!--
Copyright (c) 2013 Mirantis, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<chapter xmlns="http://docbook.org/ns/docbook"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xlink="http://www.w3.org/1999/xlink"
xsi:schemaLocation="http://docbook.org/ns/docbook http://www.docbook.org/xml/5.0/xsd/docbook.xsd
http://www.w3.org/1999/xlink http://www.w3.org/1999/xlink.xsd"
version="5.0">
<title>Overview</title>
<para>Welcome to Murano Project.
</para>
<section>
<title>Intended Audience</title>
<para>This guide is intended to individuals who want to contribute
to our
project.
</para>
</section>
<section>
<title>Document Change History</title>
<para>This version of the Murano Manual replaces and obsoletes all
previous versions. The
most recent changes are described in the table below:
</para>
<informaltable rules="all">
<thead>
<tr>
<td align="center" colspan="1">Revision Date</td>
<td align="center" colspan="4">Summary of Changes</td>
</tr>
</thead>
<tbody>
<tr>
<td colspan="1" align="center">April. 4, 2013</td>
<td colspan="4">
<itemizedlist spacing="compact">
<listitem>
<para>Initial document creation.</para>
</listitem>
</itemizedlist>
</td>
</tr>
</tbody>
</informaltable>
</section>
<section>
<title>Additional Resources</title>
<itemizedlist spacing="compact">
<listitem>
<para>
<link xlink:href="http://www.mirantis.com">
Mirantis - Cloud Software
</link>
</para>
</listitem>
</itemizedlist>
</section>
</chapter>

View File

@ -0,0 +1,143 @@
<?xml version='1.0' encoding='UTF-8'?>
<!--
Copyright (c) 2013 Mirantis, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<chapter xmlns="http://docbook.org/ns/docbook"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xlink="http://www.w3.org/1999/xlink"
xsi:schemaLocation="http://docbook.org/ns/docbook http://www.docbook.org/xml/5.0/xsd/docbook.xsd
http://www.w3.org/1999/xlink http://www.w3.org/1999/xlink.xsd"
version="5.0">
<title>Roadmap</title>
<para>
<itemizedlist spacing="compact">
<title>
<emphasis>Phase 1. Initial Version</emphasis>
</title>
<para>(Release date: May 30th)</para>
<listitem>
<para>Core Services: REST API, Orchestration Engine</para>
</listitem>
<listitem>
<para>Horizon dashboard extension as plugin</para>
</listitem>
<listitem>
<para>Integration with Heat</para>
</listitem>
<listitem>
<para>Support single Data Center (no Disaster Recovery)</para>
</listitem>
<listitem>
<para>Support the following Windows Services:
<itemizedlist spacing="compact">
<listitem>
<para>Active Directory - Single Domain with multiple domain controllers</para>
</listitem>
<listitem>
<para>IIS Server - single instance of IIS Server</para>
</listitem>
<listitem>
<para>IIS Cluster - multiple IIS instances with Load Balancing</para>
</listitem>
<listitem>
<para>ASP.NET Application Service - ASP.NET application installed on top of IIS</para>
</listitem>
</itemizedlist>
</para>
</listitem>
</itemizedlist>
</para>
<para>
<itemizedlist spacing="compact">
<title>
<emphasis>Phase 2. Stable Release</emphasis>
</title>
<para>(3 month)</para>
<listitem>
<para>Stabilize Core Services (bug fixing)</para>
</listitem>
<listitem>
<para>Support API, UI extensibility</para>
</listitem>
<listitem>
<para>UI design</para>
</listitem>
<listitem>
<para>Workflow and recipes repository</para>
</listitem>
<listitem>
<para>Data transfer between service instances</para>
</listitem>
<listitem>
<para>Basic Service monitoring</para>
</listitem>
<listitem>
<para>Additional Services:
<itemizedlist spacing="compact">
<listitem>
<para>MS SQL - single instance of Microsoft SQL Server or Pair of SQL Servers with DB
mirroring
</para>
</listitem>
</itemizedlist>
</para>
</listitem>
</itemizedlist>
</para>
<para>
<itemizedlist spacing="compact">
<title>
<emphasis>Phase 3</emphasis>
</title>
<listitem>
<para>Add more services</para>
</listitem>
<listitem>
<para>Services Dependencies support</para>
</listitem>
<listitem>
<para>Extended health monitoring</para>
</listitem>
<listitem>
<para>Agent extensibility (allow 3rd party configuration tools)</para>
</listitem>
<listitem>
<para>Basic Self-healing (actions on monitoring events)</para>
</listitem>
<listitem>
<para>Additional Services</para>
</listitem>
</itemizedlist>
</para>
<para>
<itemizedlist spacing="compact">
<title>
<emphasis>Phase 4</emphasis>
</title>
<listitem>
<para>Availability Zones support</para>
</listitem>
<listitem>
<para>Auto-scaling for Windows services</para>
</listitem>
<listitem>
<para>Security improvements</para>
</listitem>
</itemizedlist>
</para>
</chapter>

View File

@ -0,0 +1,98 @@
<?xml version='1.0' encoding='UTF-8'?>
<!--
Copyright (c) 2013 Mirantis, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<chapter xmlns="http://docbook.org/ns/docbook"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xlink="http://www.w3.org/1999/xlink"
xsi:schemaLocation="http://docbook.org/ns/docbook http://www.docbook.org/xml/5.0/xsd/docbook.xsd
http://www.w3.org/1999/xlink http://www.w3.org/1999/xlink.xsd"
version="5.0">
<title>ScreenShots</title>
<mediaobject>
<imageobject role="fo">
<imagedata fileref="../figures/screens/1.png"
contentwidth="5in"/>
</imageobject>
<imageobject role="html">
<imagedata fileref="../figures/screens/1.png"/>
</imageobject>
</mediaobject>
<mediaobject>
<imageobject role="fo">
<imagedata fileref="../figures/screens/2.png"
contentwidth="5in"/>
</imageobject>
<imageobject role="html">
<imagedata fileref="../figures/screens/2.png"/>
</imageobject>
</mediaobject>
<mediaobject>
<imageobject role="fo">
<imagedata fileref="../figures/screens/3.png"
contentwidth="5in"/>
</imageobject>
<imageobject role="html">
<imagedata fileref="../figures/screens/3.png"/>
</imageobject>
</mediaobject>
<mediaobject>
<imageobject role="fo">
<imagedata fileref="../figures/screens/4.png"
contentwidth="5in"/>
</imageobject>
<imageobject role="html">
<imagedata fileref="../figures/screens/4.png"/>
</imageobject>
</mediaobject>
<mediaobject>
<imageobject role="fo">
<imagedata fileref="../figures/screens/5.png"
contentwidth="5in"/>
</imageobject>
<imageobject role="html">
<imagedata fileref="../figures/screens/5.png"/>
</imageobject>
</mediaobject>
<mediaobject>
<imageobject role="fo">
<imagedata fileref="../figures/screens/6.png"
contentwidth="5in"/>
</imageobject>
<imageobject role="html">
<imagedata fileref="../figures/screens/6.png"/>
</imageobject>
</mediaobject>
<mediaobject>
<imageobject role="fo">
<imagedata fileref="../figures/screens/7.png"
contentwidth="5in"/>
</imageobject>
<imageobject role="html">
<imagedata fileref="../figures/screens/7.png"/>
</imageobject>
</mediaobject>
<mediaobject>
<imageobject role="fo">
<imagedata fileref="../figures/screens/1.png"
contentwidth="5in"/>
</imageobject>
<imageobject role="html">
<imagedata fileref="../figures/screens/1.png"/>
</imageobject>
</mediaobject>
</chapter>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff