summaryrefslogtreecommitdiffstats
path: root/docs/manual_use_case.rst
diff options
context:
space:
mode:
authorLovett, Trevor <trevor.lovett@att.com>2018-10-16 11:10:19 -0500
committerLovett, Trevor <trevor.lovett@att.com>2018-10-16 11:13:09 -0500
commitfd484a3b787b65d3e0073d14f47999f6583f3bcc (patch)
tree1cecec60998e2af8f8e8401183a7fe84feae8596 /docs/manual_use_case.rst
parent39df76285e78163547c2e32fab1817a62a4e9223 (diff)
VNFRQTS - Update Manual Scale Out for Casablanca
Change-Id: Ie76c24990752009689d9d766ac665ae291d08171 Issue-ID: VNFRQTS-261 Signed-off-by: Lovett, Trevor <trevor.lovett@att.com>
Diffstat (limited to 'docs/manual_use_case.rst')
-rw-r--r--docs/manual_use_case.rst90
1 files changed, 58 insertions, 32 deletions
diff --git a/docs/manual_use_case.rst b/docs/manual_use_case.rst
index ed22808..9f04418 100644
--- a/docs/manual_use_case.rst
+++ b/docs/manual_use_case.rst
@@ -16,54 +16,80 @@
:local:
Manual Scale Out Use Case
-==================================
+=========================
-Since its Beijing Release, ONAP will support the ability to manually scale
-out VNF Components. Below is the Sequence Diagram for how Manual Scale Out
-will work in ONAP.
+In the Casablanca release, ONAP will support the ability to both manually and
+automatically scale out a VNF component. Below is the sequence diagram
+for how scaling will work.
-|image0|
+|scale_out_design_time|
+
+|scale_out_run_time|
Description of Workflow
----------------------------------------------
+-----------------------
+
+At a high level the way Scale Out will work is:
+
+1. ``VF_Modules`` (VNFC’s) may be scaled out with either one of two methods:
+
+ a. Using VID, the operator will choose to scale out a VNFC by picking
+ a ``VF_Module`` to scale
+ b. An operator may define an operating policy (and associated guard
+ policies) to trigger a scaling operation automatically.
-At a high level the way Manual Scale Out will work is:
+ * As an example, the operating policy may be when the output of an
+ application load balancer crosses a bandwidth threshold, then increase
+ the number of instances of the application.
+ * Examples of a guard policies:
- 1. Using VID, the operator will choose to scale out a VNFC by picking a
- VF_Module to scale and choosing which controller is responsible for
- that VNF.
- 2. VID sends the Scale Out Request to SO.
- 3. When SO receives the Scaling request it will first send a request to
- the appropriate controller (APPC or SDNC) to execute a Healthcheck on the
- VNF.
- 4. Once the Healthcheck has been run, SO executes the Heat Template
- associated with the VF Module requested by the VID Operator.
- 5. After the new component(s) have been instantiated SO calls the
- responsible controller (via DMaaP) to configure the new instances.
- 6. Finally a Healthcheck is run to ensure that the entire VNF is Operating
- as it should.
+ 1. If a scaling operation has run within the past X minutes, then do
+ not scale.
+ 2. If the number of instance is <= ``MIN_INSTANCES``
+ or >= ``MAX_INSTANCES``, then do not scale.
+
+2. VID or Policy sends the Scale Out Request to SO.
+3. When SO receives the Scaling request it will first send a request to the
+ appropriate controller (APPC or SDNC) to execute a health check on the VNF.
+4. Once the health check has been run, SO executes the Heat Template associated
+ with the VF Module requested by the VID Operator or the operational policy.
+5. After the new component(s) have been instantiated SO calls the responsible
+ controller (via DMaaP) to configure the new instances using Ansible, Chef,
+ or Netconf.
+6. Finally a health check is run to ensure that the entire VNF is Operating
+ as it should.
VNF Impacts
-------------------------
+-----------
For VNFs to make use of the Manual Scaling Capabilities of ONAP, they must
support the following functionality:
- 1. VNFs must support a Healthcheck as described in: `The Management Section of the ONAP VNF Guidelines <http://onap.readthedocs.io/en/latest/submodules/vnfrqts/requirements.git/docs/Chapter7.html#vnf-rest-apis>`_.
+ 1. VNFs must support a Healthcheck as described in:
+ :doc:`The Management Section of the ONAP VNF Guidelines<../../../requirements.git/docs/Chapter7/Configuration-Management.html>`.
+
+ a. R-41430 is the requirement dictating the need for VNF Healthchecks.
+ b. The health check may be supported using REST, Ansible, or Chef
+
+ * REST health check requirements can be found in the
+ :doc:`REST APIs section<../../../requirements.git/docs/Chapter7/Configuration-Management.html#vnf-rest-apis>`
+ * The Ansible health check playbook can be found in the
+ :doc:`Ansible Playbook Requirements section<../../../requirements.git/docs/Chapter7/Configuration-Management.html#vnf-rest-apis#ansible-playbook-requirements>`
- a. R-31809 is the requirement dictating the need for VNF Healthchecks.
- b. The Ansible Healthcheck Playbook description may be found in `The Ansible Standards and Capabilities Section <http://onap.readthedocs.io/en/latest/submodules/vnfrqts/requirements.git/docs/Chapter7.html#ansible-standards-and-capabilities>`_.
+ 2. R-43413 states that a "VNF MUST utilize a modular Heat Orchestration
+ Template design to support scaling". The description of this design may
+ be found in the
+ :doc:`ONAP VNF Modularity Overview section<../../../requirements.git/docs/Chapter5/Heat/ONAP Heat Orchestration Templates Overview.html#onap-vnf-modularity-overview>`
+ of the Heat Requirements.
- 2. VNF Heat Templates must be built according the `VNF Modularity Rules <http://onap.readthedocs.io/en/latest/submodules/vnfrqts/requirements.git/docs/Chapter4.html#d-vnf-modularity>`_.
+ a. The ``VF_Module`` to be scaled must be built according to the VNF
+ Modularity Rules for Incremental Modules
- a. The VF_Module to be scaled must be built according the VNF
- Modularity Rules for Incremental Modules.
+ 3. Configuration of the VNF must be done via NETCONF, Chef, or Ansible as
+ described in the :doc:`Configuration Management<./../../requirements.git/docs/Chapter7/Configuration-Management.html#configuration-management>`
- 3. Configuration of the VNF must be done via NETCONF, Chef, or Ansible
- as described in `Configuration Management <http://onap.readthedocs.io/en/latest/submodules/vnfrqts/requirements.git/docs/Chapter7.html#c-configuration-management>`_.
+.. |scale_out_design_time| image:: manual_scale_out_design_time.png
+.. |scale_out_run_time| image:: manual_scale_out_run_time.png
-.. |image0| image:: Scale_Out_Workflow.png
- :width: 8in
- :height: 9in