Clearwater vIMS implementation spec

Change-Id: Ifc0e79ceab29806c286f5fc54949a79c70a07bac
This commit is contained in:
Konstantin Snihyr 2016-05-24 19:07:28 +03:00 committed by Alexander Tivelkov
parent 31a29de0cc
commit 07b26d9293
2 changed files with 214 additions and 0 deletions

View File

@ -37,6 +37,16 @@ Newton specs:
specs/newton/approved/*
specs/newton/implemented/*
==========================
Murano apps Specifications
==========================
.. toctree::
:glob:
:maxdepth: 1
specs/murano-apps/*
==================
Indices and tables
==================

View File

@ -0,0 +1,204 @@
..
This work is licensed under a Creative Commons Attribution 3.0 Unported
License.
http://creativecommons.org/licenses/by/3.0/legalcode
=============================
Clearwater Murano application
=============================
https://blueprints.launchpad.net/murano-apps/+spec/clearwater-vims-implementation
Problem description
===================
It must be possible to deploy and manage lifecycle of Clearwater vIMS.
Clearwater vIMS consists of several components:
* Bono (Edge Proxy)
* Sprout (SIP Router)
* Homestead (HSS Cache)
* Homer (XDMS storage)
* Ellis (provisioning portal)
* Ralf (CTF)
Additionally following DNS server application should be written:
* BIND
Clearwater deployment diagram
::
+----------+
| |
| Ellis |
HTTP | |
+------+ +-----+
| | | | HTTP
| +----------+ |
| |
+-----+-----+ +-----+-----+ +------------------+
| | | | | |
| Homer | | Homestead | |Client SIP software
| | XCAP SIP | | | |
| +--+ +--+ | +---------------+--+
| | | | | | ^
+-----------+ | | +-----------+ |
| | |
| | |
+------------+ +-+-----+----+ +------------+ |
| | HTTP | | SIP | | SIP |
| Ralf +---------+ Sprout +----------+ Bono +---------+
| | | | | |
| | | | | |
| | | | | |
+------+-----+ +------------+ +---+--------+
| |
| HTTP |
+-------------------------------------------+
More details about Clearwater components may be found at http://www.projectclearwater.org
Proposed changes
================
Separate application should be written for each of Clearwater components.
One more application should be written for aggregation of all components
(Clearwater main application).
Main application input parameters:
* OS image for deploy
* user keypair name
* zone name
* DNSSEC key
This parameters should be passed to child components.
Components input parameters:
* Flavour for instances
* Count of instances
Main application workflow
#. Instantiate child applications
#. Create common networks and security group
#. Call child applications `deploy()` method
Components have to be deployed in following order:
#. DNS application
#. One application with initial
`etcd <https://coreos.com/etcd>`_ cluster node (Ellis preferred)
#. Rest of applications
Components common workflow
#. Find main application for common properties retrieving
#. Create security group for application
#. Create instances
#. Create deploy scripts from templates
#. Run deploy scripts
For components (except DNS server) following actions must be provided:
* Scale Up - add additional node to cluster
* Scale Down - remove node from cluster
Both actions can be implemented in two steps:
* add/remove node to/from component object model
* update appropriate DNS records
Alternatives
------------
* `OpenStack Heat templates for Clearwater deployments <https://github.com/Metaswitch/clearwater-heat>`_
* `Cloudify TOSCA application <https://github.com/Orange-OpenSource/opnfv-cloudify-clearwater>`_
Data model impact
-----------------
None
REST API impact
---------------
None
Versioning impact
-----------------
None
Other end user impact
---------------------
None
Deployer impact
---------------
None
Developer impact
----------------
None
Murano-dashboard / Horizon impact
---------------------------------
None
Implementation
==============
Assignee(s)
-----------
Konstantin <ksnihyr@mirantis.com>
Work Items
----------
#. Create Clearwater application prototype
#. Extend Clearwater application functionality using current Core Library
#. Add Scalable Application Framework support
Dependencies
============
#. `Scalable Application Framework <https://blueprints.launchpad.net/murano/+spec/scalable-application-framework>`_
Testing
=======
#. Clearwater live tests can be used for testing installation.
Documentation Impact
====================
None
References
==========
* `Project Clearwater Home <http://www.projectclearwater.org>`_
* `Clearwater documentation <http://clearwater.readthedocs.io/en/stable/>`_
* `Clearwater heat template <https://github.com/skolekonov/clearwater-heat/tree/mitaka>`_
* `Clearwater live tests <https://github.com/Metaswitch/clearwater-live-test>`_