add links and aodh service
[opnfvdocs.git] / docs / platformoverview / softwarearchitecture.rst
index 43a5022..cf122a5 100644 (file)
@@ -2,37 +2,83 @@
 .. http://creativecommons.org/licenses/by/4.0
 .. (c) OPNFV, Huawei
 
+===========================
+OPNFV Platform Architecture
+===========================
+
+The OPNFV project addresses a number of aspects in the development of a consistent virtualization
+platform including common hardware requirements, software architecture and installed state.
+The platform architecture as the OPNFV project approaches it is dicussed in the following sections.
+
+OPNFV Lab Infrastructure
 ========================
-Target software platform
-========================
+
+The `Pharos Project <https://www.opnfv.org/developers/pharos>`_ provides a lab infrastructure
+that is geographically and technically diverse.
+Labs instantiate bare-metal and virtual environments that are accessed remotely by the
+community and used for OPNFV platform and feature development, build, deploy and testing.
+This helps in developing a highly robust and stable OPNFV platform
+with well understood performance characteristics.
+
+Community labs are hosted by OPNFV member companies on a voluntary basis.
+The Linux Foundation also hosts an OPNFV lab that provides centralised CI
+and other production resources which are linked to community labs.
+Future lab capabilities will include the ability easily automate deploy and test of any
+OPNFV install scenario in any lab environemnt as well as on a virtual infrastructure.
+
+.. ==> I am not sure this is the best place to include this.
+
 
 Software architecture
 =====================
 
 This section will provide information which upstream projects, versions and components are
-integrated in the Brahmaputra release
+integrated in the release to implement OPNFV requirement. You can find the list of common
+requirements for deployment tools here:
+http://artifacts.opnfv.org/genesisreq/brahmaputra/requirements/requirements.pdf.
 
 OpenStack
 ---------
 
-OPNFV uses OpenStack as cloud management system.
-Brahmaputra is based on OpenStack Liberty Release. It comprises the following sub-projects
-and modules:
-
-* Nova (Compute)
-* Neutron (Network)
-* Cinder (Block Storage)
-* Swift (Object Storage)
-* Ceilometer (Telemetry)
-* Keystone (Identity)
-* Glance (Image Service)
-* Heat (Orchestration)
-* etc.
-
-Some of the sub-projects are not deployed in all scenarios.
-Besides target software, also deployment and test framework use OpenStack components
-(Fuel, Tempest, Rally)
-
+.. ==> didn't understand Chris' suggestion about reducing the heading level for these sub-topics
+
+OPNFV integrates OpenStack as cloud management system where Brahmaputra uses the OpenStack Liberty Release.
+The set of sub-projects deployed in a brahmaputra platform varies slightly depending on the installer and scenario.
+
+The following table shows which components are deployed.
+
++------------+----------------+-----------+-----------+-----------+-----------+
+| services   | type           | Apex      | Compass   | Fuel      | Joid      |
++============+================+===========+===========+===========+===========+
+| aodh       | alarming       | Available | ---       | ---       | ---       |
++------------+----------------+-----------+-----------+-----------+-----------+
+| ceilometer | metering       | Available | Available | Available | Available |
++------------+----------------+-----------+-----------+-----------+-----------+
+| cinder     | volume         | Available | Available | Available | Available |
++------------+----------------+-----------+-----------+-----------+-----------+
+| cloud      | cloudformation | ---       | Available | Available | Available |
++------------+----------------+-----------+-----------+-----------+-----------+
+| glance     | image          | Available | Available | Available | Available |
++------------+----------------+-----------+-----------+-----------+-----------+
+| heat       | orchestration  | Available | Available | Available | Available |
++------------+----------------+-----------+-----------+-----------+-----------+
+| keystone   | identity       | Available | Available | Available | Available |
++------------+----------------+-----------+-----------+-----------+-----------+
+| neutron    | network        | Available | Available | Available | Available |
++------------+----------------+-----------+-----------+-----------+-----------+
+| nova       | compute        | Available | Available | Available | Available |
++------------+----------------+-----------+-----------+-----------+-----------+
+| swift      | object-store   | Available | ---       | Available | Available |
++------------+----------------+-----------+-----------+-----------+-----------+
+
+
+Note that additional components of OpenStack are used as part of deployment tools and test frameworks
+(Fuel, Tempest, Rally).
+
+For more information about the OpenStack features and usage refer to the
+`official OpenStack documentation page <http://docs.openstack.org/>`_.
+Please ensure that you have the Liberty release selected at the
+``More Releases & Languages`` drop down menu.
 
 Operating System
 ----------------
@@ -47,68 +93,77 @@ CentOS 7 supported by Apex and Compass
 SDN Controllers
 ---------------
 
-OPNFV Brahmaputra release supports three different SDN controllers:
+OPNFV Brahmaputra release supports different SDN controllers.
+Some scenarios don't use an SDN controller but rely just on Neutron networking capabilities.
 
-* OpenDaylight (ODL, Beryllium release)
-* ONOS (Emu release)
-* OpenContrail (?)
-
-Depending on the SDN controller you are using, the featureset will vary.
+Depending on the SDN controller you are using, the featureset available will vary.
+More information on feature support and scenarios can be found in `OPNFV Configuration Guide`_ and `OPNFV User Guide`_.
 Brahmaputra also provides scenarios without an SDN controller, just using OpenStack Neutron.
 
-OpenDaylight
-++++++++++++
-
-Editor's note:
-We need a high level paragraph here and a description of how we use ODL.
-
-
-ONOS
-++++
-
-.. ONOS intro shortened from https://wiki.onosproject.org/pages/viewpage.action?pageId=2851517
-
-ONOS stands for **O** pen **N** etwork **O** perating **S** ystem. ONOS provides the control plane
-for a software-defined network (SDN), managing network components, such as switches and links,
-and running software programs or modules to provide communication services to end hosts and
-neighboring networks.
-
-ONOS provides a platform for SDN applications and use cases for routing, management, or
-monitoring services for software-defined networks.
-
-ONOS can run as a distributed system across multiple servers, allowing it to use the CPU and
-memory resources of multiple servers while providing fault tolerance in the face of server
-failure and potentially supporting live/rolling upgrades of hardware and software without
+OpenDaylight is an SDN controller aiming to accelerate
+adoption of Software-Defined Networking (SDN) and Network Functions Virtualization
+(NFV) with a transparent approach that fosters new innovation.
+OpenDaylight runs within a JVM and is installed in OPNFV within a container and integrated with OpenStack
+using the ODL device driver. The Brahmaputra release of OPNFV integrates the Beryllium release.
+You can find more information about OpenDaylight among the release artifacts at the
+`Downloads page <https://www.opendaylight.org/downloads>`_.
+Please ensure you are using the Beryllium documentation.
+
+ONOS is an SDN controller written in Java with a distributed architecture with special focus to
+support scalability, fault tolerance and hardware and software upgrades without
 interrupting network traffic.
-
-The ONOS kernel and core services, as well as ONOS applications, are written in Java as bundles
-that are loaded into the Karaf OSGi container. OSGi is a component system for Java that allows
-modules to be installed and run dynamically in a single JVM.
-
 More information on the internal design of ONOS may be found in
 `User's Guide <https://wiki.onosproject.org/display/ONOS/User's+Guide>`_ and
 `Architecture+Guide <https://wiki.onosproject.org/display/ONOS/Architecture+Guide>`_ on the
 `wiki of the ONOS project <https://wiki.onosproject.org>`_.
-
 ONOS is integrated to OPNFV using a framework ONOSFW and Neutron plugins. Details can be found in the
-ONOS specific OPNFV documents:
-
-.. Link to be added.
-
+ONOS specific OPNFV documents,
+`Design guide <http://artifacts.opnfv.org/onosfw/brahmaputra/design/design.pdf>`_,
+`User guide <http://artifacts.opnfv.org/onosfw/brahmaputra/userguide/index.html>`_ and
+`Configuration guide <http://artifacts.opnfv.org/onosfw/brahmaputra/configguide/index.html>`_.
 
-OpenContrail
-++++++++++++
+.. OpenContrail SDN controller will be supported in the next drop of the Brahmaputra release.
 
-Editors note:
-We need a high level paragraph here and a description of how we use OpenContrail, including
-its vRouter capabilities.
 
 Data Plane
 ----------
 
+OPNFV extends Linux's virtual networking capabilies by using virtual switch
+and router components including improving those components by requirements
+specific to telco use cases.
+
+For instance some scenarios use OpenVSwitch
+to replace Linux bridges as it offers advantages in terms of mobility, hardware
+integration and use by network controllers. OPNFV leverages these by upgrade
+to a specific installation using user-space datapath. This includes changes to
+other dataplane components, including libvirt, qemu, DPDK etc.
+Please find more information in
+`OVSNFV User's Guide <http://artifacts.opnfv.org/ovsnfv/brahmaputra/docs/userguides/userguides.pdf>`_.
+
 Other Components
 ----------------
 
+**KVM**
+
+NFV infrastructure has special requirements on hypervisors with respect of
+interrupt latency (timing correctness and packet latency in data plane) and
+live migration.
+
+Besides additional software changes, this requires
+some adjustments to system configuration
+information, like hardware, BIOS, OS, etc.
+
+.. KVM4NFV is one implementation, we have three implementations of the OS virtualization layer
+.. to capture here.
+.. ==> need more input
+
+Please find more information at
+`KVM4NFV project documentation <http://artifacts.opnfv.org/kvmfornfv/docs/all/all.pdf>`_.
+
+.. As it is a platform overview I think if we mention KVM as hypervisor we should focus on which version we are using and how as opposed to the OPNFV project that deals with KVM itself.
+
+
+
 Deployment Architecture
 =======================
 
@@ -124,31 +179,33 @@ is a virtual machine and provides the virtual resources using nested virtualizat
 
 The initial deployment is done using a so-called "jumphost". This server (either bare metal
 or virtual) is first installed with the installer program that then installs OpenStack
-and other components on the controller nodes and compute nodes. See the installer
-documentation for more details.
-
-Editors note:
-In a second level of detail, describe how software is distributed over the 3 controller
-nodes, compute nodes and other hardware.
-
-In Brahmaputra, the following scenarios are supported:
-
-
-
-
-Dynamic View
-============
+and other components on the controller nodes and compute nodes. See the `OPNFV User Guide`_
+for more details.
 
-Editors note: we might skip this section completely for Brahmaputra.
+.. Editors note:
+.. In a second level of detail, describe how software is distributed over the 3 controller
+.. nodes, compute nodes and other hardware.
 
-Or we provide rather short statements. In later versions, we have to describe which
-software is involved in which way during:
 
-* VNF Life Cycle (onboarding, instantiate, scaling): we can reference to other documents
-* Hardware Life Cycle (mainly how to add compute nodes, but also other cases)
-* ...
+In Brahmaputra, different scenarios can be deployed to provide the different feature sets, e.g.
+HA, IPV6, BGPVPN, KVM, or select the different implementations, e.g. SDN controllers.
 
+.. ==> Is it described somewhere what we mean by scenarios? If yes, then the original text is better.
+.. If not, I would give a brief overview here to describe the term.
 
+The following scenarios are supported, some of them can be deployed using different installers.
 
+* nosdn-nofeature
+* odl_l2-ha
+* odl_l3-ha
+* odl_l2-bgpvpn-noha
+* onos-ha
+* nosdn-ovs-ha
+* nosdn-kvm-ha
+* nosdn-ovs_kvm-ha
 
+Please find more information at:
+http://artifacts.opnfv.org/opnfvdocs/brahmaputra/configguide/configoptions.html#opnfv-scenario-s.
 
+.. _`OPNFV Configuration Guide`: http://artifacts.opnfv.org/opnfvdocs/brahmaputra/docs/configguide
+.. _`OPNFV User Guide`: http://artifacts.opnfv.org/opnfvdocs/brahmaputra/docs/userguide