docs: update mission statement, diagram, toc

Change-Id: I605be3ab79c52fe2e01ab3c3e9fd0c02c2dd42dd
This commit is contained in:
Yuval Brik 2016-06-13 15:38:02 +03:00
parent f96eeec1d0
commit f164338a71
7 changed files with 169 additions and 114 deletions

View File

@ -15,27 +15,27 @@ Application Data Protection as a Service for OpenStack
Mission Statement Mission Statement
***************** *****************
* Formalize Application Data Protection in OpenStack (APIs, Services, Plugins, …) To protect the Data and Metadata that comprises an OpenStack-deployed
* Be able to protect Any Resource in OpenStack(as well as their dependencies) Application against loss/damage (e.g. backup, replication) by providing a
* Allow Diversity of vendor solutions, capabilities and implementations standard framework of APIs and services that allows vendors to provide plugins
without compromising usability through a unified interface
Open Architecture Open Architecture
""""""""""""""""" """""""""""""""""
Design for multiple perspectives: Design for multiple perspectives:
* User : Protect App Deployment * User: Protect App Deployment
* Configure and manage custom protection plans on the deployed resources * Configure and manage custom protection plans on the deployed resources
(topology, VMs, volumes, images, …) (topology, VMs, volumes, images, …)
* Admin : Define Protectable Resources * Admin: Define Protectable Resources
* Decide what plugins protect which resources, what is available for the user * Decide what plugins protect which resources, what is available for the user
* Decide where users can protect their resources * Decide where users can protect their resources
* Vendors : Standard API for protection products * Vendors: Standard API for protection products
* Create plugins that implement Protection mechanisms for different OpenStack * Create plugins that implement Protection mechanisms for different OpenStack
resources resources

BIN
doc/images/3-tier-app.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

View File

@ -1,15 +1,24 @@
.. smaug documentation master file, created by ==================================
sphinx-quickstart on Tue Jul 9 22:26:36 2013. Smaug: Application Data Protection
You can adapt this file completely to your liking, but it should at least ==================================
contain the root `toctree` directive.
Welcome to smaug's documentation! Introduction
======================================================== ============
Smaug is an OpenStack project that provides a pluggable framework for
protecting and restoring Data and Metadata that comprises an OpenStack-deployed
application - Application Data Protection as a Service.
Contents: Mission Statement
~~~~~~~~~~~~~~~~~
To protect the Data and Metadata that comprises an OpenStack-deployed
Application against loss/damage (e.g. backup, replication) by providing a
standard framework of APIs and services that allows vendors to provide plugins
through a unified interface
Using Smaug
===========
.. toctree:: .. toctree::
:maxdepth: 2 :maxdepth: 1
readme readme
installation installation
@ -18,8 +27,7 @@ Contents:
releasenotes releasenotes
Smaug Specs Smaug Specs
================= ===========
.. toctree:: .. toctree::
:maxdepth: 1 :maxdepth: 1

View File

@ -1,4 +1,70 @@
============ ============
Installation Installation
============ ============
TODO Add Installation Guide
Single-node Devstack Installation
=================================
In order to install Smaug using Devstack on a single node, add the following to
your local.conf, under [[local|localrc]]:
.. code-block:: none
enable_plugin smaug http://git.openstack.org/openstack/smaug master
enable_plugin smaug-dashboard http://git.openstack.org/openstack/smaug-dashboard master
enable_service smaug-api
enable_service smaug-operationengine
enable_service smaug-protection
# Smaug Dashboard depends on Horizon
enable_service smaug-dashboard
Depenencies
===========
Heat
~~~~
.. code-block:: none
enable_service h-eng h-api h-api-cfn h-api-cw
Swift (recommended)
~~~~~~~~~~~~~~~~~~~
Essential for the basic protection provider.
.. code-block:: none
SWIFT_REPLICAS=1
SWIFT_HASH=66a3d6b56c1f479c8b4e70ab5c2000f5
SWIFT_DATA_DIR=$DEST/data
enable_service s-proxy s-object s-container s-account
Cinder (optional)
~~~~~~~~~~~~~~~~~
.. code-block:: none
enable_service cinder c-api c-vol c-sch c-bak
Glance (optional)
~~~~~~~~~~~~~~~~~
.. code-block:: none
enable_service g-api g-reg
Nova (optional)
~~~~~~~~~~~~~~~
.. code-block:: none
enable_service n-cpu n-api n-crt n-cond n-sch n-novnc n-cauth
Neutron (optional)
~~~~~~~~~~~~~~~~~~
.. code-block:: none
enable_service neutron q-svc q-agt q-dhcp q-meta
disable_service n-net

View File

@ -1,54 +1,54 @@
.. image:: https://raw.githubusercontent.com/openstack/smaug/master/doc/images/Smaug.png
:alt: Smaug ============
:align: center Introduction
============
.. contents:: :depth: 2
What is Smaug? What is Smaug?
============== ==============
Smaug is an OpenStack project that provides a framework for Application Smaug is an OpenStack project that provides a pluggable framework for
Data Protection as a Service. protecting and restoring Data and Metadata that comprises an OpenStack-deployed
application - Application Data Protection as a Service.
It is named after the famous dragon from J.R.R. Tolkien's The "Hobbit", .. image:: https://raw.githubusercontent.com/openstack/smaug/master/doc/images/Smaug.png
which was known to hoard and guard the treasures of the people. :alt: Smaug
:align: center
:height: 150px
Mission & Scope It is named after the famous dragon from J.R.R. Tolkien's The "Hobbit", which
=============== was known to hoard and guard the treasures of the people.
Formalize Application Data Protection and Disaster recovery in OpenStack Mission Statement
(APIs, Services, Plugins ...) ~~~~~~~~~~~~~~~~~
To protect the Data and Metadata that comprises an OpenStack-deployed
Application against loss/damage (e.g. backup, replication) by providing a
standard framework of APIs and services that allows vendors to provide plugins
through a unified interface
Be able to protect Any Resource in OpenStack(as well as their
dependencies)
Allow Diversity of vendor solutions, capabilities and implementations
without compromising usability.
Typical Use Case: 3-Tier Cloud App Typical Use Case: 3-Tier Cloud App
================================== ==================================
3-Tier Cloud App Web/App/DB 3-Tier Cloud App Web/App/DB
.. image:: https://raw.githubusercontent.com/openstack/smaug/master/doc/images/ .. image:: https://raw.githubusercontent.com/openstack/smaug/master/doc/images/3-tirApp.png
3-tirApp.png
:alt: 3-Tier Cloud App :alt: 3-Tier Cloud App
:width: 600 :width: 600
:height: 455
:align: center :align: center
In order to provide full Protection for this typical use case, we would In order to provide full Protection for this typical use case, we would have to
have to protect many resources, which have some dependency between them. protect many resources, which have some dependency between them. The following
The following diagram demonstrates how this dependency looks, in the diagram demonstrates how this dependency looks, in the form of a tree:
form of a tree:
.. image:: https://raw.githubusercontent.com/openstack/smaug/master/doc/images/ .. image:: https://raw.githubusercontent.com/openstack/smaug/master/doc/images/resource_tree_architecture.png
resource_tree_architecture.png
:alt: Resource Tree :alt: Resource Tree
:width: 600 :width: 600
:height: 455
:align: center :align: center
These resources can be divided into groups, each of which will be These resources can be divided into groups, each of which will be handled by a
handled by a different plugin in Smaug: different plugin in Smaug:
- Volume - Volume
- VM - VM
@ -64,6 +64,7 @@ Protection Providers
.. image:: https://raw.githubusercontent.com/openstack/smaug/master/doc/images/ .. image:: https://raw.githubusercontent.com/openstack/smaug/master/doc/images/
protection_provider.png protection_provider.png
:width: 600
Protection providers are defined by the administrator for each tenant. The Protection providers are defined by the administrator for each tenant. The
encapsulate every aspect of the protection procedure, namely, where to place encapsulate every aspect of the protection procedure, namely, where to place
@ -73,14 +74,14 @@ back up data, and restore data.
Since there could be many protection providers with varied features and options Since there could be many protection providers with varied features and options
each protection provider exposes what options it provides for each protectable. each protection provider exposes what options it provides for each protectable.
This allows the UI to dynamically adapt to each provider and show the user This allows the UI to dynamically adapt to each provider and show the user what
what options are available, what they mean and what values are supported. options are available, what they mean and what values are supported.
This allows us to extend the providers without updates to Smaug and allow This allows us to extend the providers without updates to Smaug and allow
provider implementation to easily add specialize options. provider implementation to easily add specialize options.
Example Example
======= ~~~~~~~
Lets take the OpenStack::Cinder::Volume resource *Protect* action. Lets take the OpenStack::Cinder::Volume resource *Protect* action.
@ -151,7 +152,6 @@ High Level Architecture
high_level_architecture.png high_level_architecture.png
:alt: Solution Overview :alt: Solution Overview
:width: 600 :width: 600
:height: 455
:align: center :align: center
The system is built from independent services and a scalable *Workflow The system is built from independent services and a scalable *Workflow
@ -162,33 +162,37 @@ Smaug API Service
.. image:: https://raw.githubusercontent.com/openstack/smaug/master/doc/images/ .. image:: https://raw.githubusercontent.com/openstack/smaug/master/doc/images/
smaug-api.png smaug-api.png
:width: 600
These top-level north-bound APIs expose Application Data Protection These top-level north-bound APIs expose Application Data Protection services to
services to the Smaug user. the Smaug user.
The purpose of the services is to maximize flexibility and accommodate The purpose of the services is to maximize flexibility and accommodate for
for (hopefully) any kind of protection for any type of resource, whether (hopefully) any kind of protection for any type of resource, whether it is a
it is a basic OpenStack resource (such as a VM, Volume, Image, etc.) or basic OpenStack resource (such as a VM, Volume, Image, etc.) or some ancillary
some ancillary resource within an application system that is not managed resource within an application system that is not managed in OpenStack (such as
in OpenStack (such as a hardware device, an external database, etc.). a hardware device, an external database, etc.).
Resource (Protectable) API Resource (Protectable) API
--------------------------- ---------------------------
Enables the Smaug user to access information about which resource types are protectable (i.e. can be protected by Smaug). Enables the Smaug user to access information about which resource types are
In addition, enables the user to get additional information on each resource type, such as a list of actual instances and their dependencies. protectable (i.e. can be protected by Smaug). In addition, enables the user to
get additional information on each resource type, such as a list of actual
instances and their dependencies.
Provider API Provider API
--------------- ---------------
Enables the Smaug user to list available providers and get parameters and result schema super-set for all plugins of a specific Provider. Enables the Smaug user to list available providers and get parameters and
result schema super-set for all plugins of a specific Provider.
Plan API Plan API
-------- --------
This API enables the Smaug user to access the protection Plan registry This API enables the Smaug user to access the protection Plan registry and do
and do the following operations: the following operations:
- Plan CRUD. - Plan CRUD.
- List Plans. - List Plans.
@ -206,8 +210,8 @@ This API enables the Smaug user to manage protection Operations:
Checkpoint API Checkpoint API
--------------- ---------------
This API enables the Smaug user to access and manage the checkpoints stored This API enables the Smaug user to access and manage the checkpoints stored in
in the protection provider: the protection provider:
- List all checkpoints given a Bank ID. - List all checkpoints given a Bank ID.
- Show Information on a given checkpoint ID. - Show Information on a given checkpoint ID.
@ -224,17 +228,17 @@ This API enables the Smaug user restore a checkpoint on to a restore target:
Smaug Schedule Service Smaug Schedule Service
====================== ======================
This subsystem is responsible for scheduling and orchestrating the This subsystem is responsible for scheduling and orchestrating the execution of
execution of *Protection Plans*. *Protection Plans*.
The implementation can be replaced by any other external solution since it The implementation can be replaced by any other external solution since it uses
uses only functions that are available through the north-bound API. only functions that are available through the north-bound API.
Once an entity is created it can be tracked through the north-bound API as well Once an entity is created it can be tracked through the north-bound API as well
so that monitoring the operations is independent from the scheduler. so that monitoring the operations is independent from the scheduler.
It will be responsible for executing the automatic operations to specific It will be responsible for executing the automatic operations to specific tasks
tasks and tracking them. and tracking them.
Automatic Operation Automatic Operation
------------------- -------------------
@ -250,11 +254,10 @@ Trigger Engine
This sub-component of the Schedule Service is responsible for generating This sub-component of the Schedule Service is responsible for generating
triggers to begin the execution of the Plan Orchestration. triggers to begin the execution of the Plan Orchestration.
It can be done based on a Timer or an Event Collector - Open to It can be done based on a Timer or an Event Collector - Open to implementation.
implementation.
In the first version of Smaug reference implementation, it will only In the first version of Smaug reference implementation, it will only provide
provide time-based triggering. time-based triggering.
Scheduled Operation Scheduled Operation
------------------- -------------------
@ -273,27 +276,26 @@ This subsystem is responsible for handling the following tasks:
WorkFlow Engine WorkFlow Engine
--------------- ---------------
This pluggable component is responsible for executing and orchestrating This pluggable component is responsible for executing and orchestrating the
the flow of the plan across all protection providers. flow of the plan across all protection providers.
Communication and Meetings Communication and Meetings
========================== ==========================
Smaug Launchpad Link\ https://launchpad.net/smaug - Smaug Launchpad Link: \ https://launchpad.net/smaug
- Smaug Code Review: \ https://review.openstack.org/#/q/smaug+status:open,n,z
Smaug Code Review\ https://review.openstack.org/#/q/smaug+status:open,n,z - Smaug Code Repository: \ https://github.com/openstack/smaug
- Smaug daily IRC Channel: #openstack-smaug
Smaug Code Repository\ https://github.com/openstack/smaug - Smaug weekly IRC Meeting on **even** Tuesday at 1500 UTC
and on **odd** Tuesday at 0900 UTC in
Smaug daily IRC Channel: #openstack-smaug #openstack-meeting at freenode: \
https://wiki.openstack.org/wiki/Meetings/smaug
Smaug bi-weekly IRC Meeting on (even) Tuesday at 1400 UTC in #openstack-meeting - Smaug Trello Board: \ https://trello.com/b/Sudr4fKT/smaug
at freenode:\ http://eavesdrop.openstack.org/#Smaug_Project_Meetingtion(s).
Smaug Trello Board\ https://trello.com/b/Sudr4fKT/smaug
Additional references Additional references
----------------------- =====================
`Tokyo summit talk <http://www.slideshare.net/gampel/openstack-tokyo-talk-application-data-protection-service>`_
`Smaug overview slide <https://docs.google.com/presentation/d/1JYO1VIlTkGTF6lvKEMcsHkaST3mYFxuarpcNTJ3HBhk/edit?usp=sharing>`_ - `OpenStack Tokyo Summit 2015 talk <http://www.slideshare.net/gampel/openstack-tokyo-talk-application-data-protection-service>`_
`Smaug Overview blog <http://blog.gampel.net/2015/12/smaug-application-data-protection-for.html>`_ - `OpenStack Austin Summit 2016 talk <https://www.youtube.com/watch?v=_tVYuW_YMB8>`_
- `Smaug overview slide <https://docs.google.com/presentation/d/1JYO1VIlTkGTF6lvKEMcsHkaST3mYFxuarpcNTJ3HBhk/edit?usp=sharing>`_
- `Smaug overview blog <http://blog.gampel.net/2015/12/smaug-application-data-protection-for.html>`_

View File

@ -1,26 +1,5 @@
..
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.
Convention for heading levels:
======= Heading 0 (reserved for the title in a document)
------- Heading 1
~~~~~~~ Heading 2
+++++++ Heading 3
''''''' Heading 4
(Avoid deeper levels because they do not render well.)
Smaug Specs Smaug Specs
================= ===========
This section contains detailed specification documents for This section contains detailed specification documents for
different features inside Smaug. different features inside Smaug.