From 6d135c3f9616a5ec1d9dc76d87eda83d89427d48 Mon Sep 17 00:00:00 2001 From: ChristopherPrice Date: Mon, 29 Aug 2016 18:39:54 +0200 Subject: [PATCH] Draft of the overview doc. Change-Id: I13d4230591055c5e8c1f4daa469a6bf71993856e Signed-off-by: ChristopherPrice (cherry picked from commit 91ac9a64b9ebdf0c1b0c81144e8037f7efa6824e) --- docs/images/opnfvplatformgraphic.png | Bin 0 -> 136767 bytes docs/{platformoverview => overview}/index.rst | 9 +- docs/overview/overview.rst | 289 +++++++++++++++++++++++++ docs/platformoverview/deploymenttools.rst | 46 ---- docs/platformoverview/introduction.rst | 70 ------ docs/platformoverview/softwarearchitecture.rst | 211 ------------------ docs/platformoverview/testcasesframework.rst | 110 ---------- 7 files changed, 291 insertions(+), 444 deletions(-) create mode 100644 docs/images/opnfvplatformgraphic.png rename docs/{platformoverview => overview}/index.rst (64%) create mode 100644 docs/overview/overview.rst delete mode 100644 docs/platformoverview/deploymenttools.rst delete mode 100644 docs/platformoverview/introduction.rst delete mode 100644 docs/platformoverview/softwarearchitecture.rst delete mode 100644 docs/platformoverview/testcasesframework.rst diff --git a/docs/images/opnfvplatformgraphic.png b/docs/images/opnfvplatformgraphic.png new file mode 100644 index 0000000000000000000000000000000000000000..9d6074f02bff7ed7fba0bd0f63f0af9d37492885 GIT binary patch literal 136767 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≀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

    y7MfGRQVz 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 +which provides a set of defined lab infrastructures over a geographically and technically +diverse federated global OPNFV lab. + +Labs may 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. +No two labs are the same and the heterogeneity of the Pharos environment provides the ideal +platform for establishing hardware and software abstractions providing 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 centralized 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 environment as well as on a nested "lab as a service" +virtual infrastructure. + +OPNFV Software Platform Architecture +==================================== + +The OPNFV software platform is comprised exclusively of open source implementations of +platform component pieces. OPNFV is able to draw from the rich ecosystem of NFV related +technologies available in open-source then integrate, test, measure and improve these +components in conjunction with our source communities. + +While the composition of the OPNFV software platform is highly complex and constituted of many +projects and components, a subset of these projects gain the most attention from the OPNFV community +to drive the development of new technologies and capabilities. + +--------------------------------- +Virtual Infrastructure Management +--------------------------------- + +OPNFV derives it's virtual infrastructure management from one of our largest upstream ecosystems +OpenStack. OpenStack provides a complete reference cloud management system and associated technologies. +While the OpenStack community sustains a broad set of projects, not all technologies are relevant in +an NFV domain, the OPNFV community consumes a sub-set of OpenStack projects where the usage and +composition may vary depending on the installer and scenario. + +For details on the scenarios available in OPNFV and the specific composition of components +refer to the OPNFV installation instruction: +https://artifacts.opnfv.org/opnfvdocs/colorado/docs/installationprocedure/index.rst + +----------------- +Operating Systems +----------------- + +OPNFV currently uses Linux on all target machines, this can include Ubuntu, Centos or SUSE linux. The +specific version of Linux used for any deployment is documented in the installation guide. + +----------------------- +Networking Technologies +----------------------- + +SDN Controllers +--------------- + +OPNFV, as an NFV focused project, has a significant investment on networking technologies +and provides a broad variety of integrated open source reference solutions. The diversity +of controllers able to be used in OPNFV is supported by a similarly diverse set of +forwarding technologies. + +There are many SDN controllers available today relevant to virtual environments +where the OPNFV community supports and contributes to a number of these. The controllers +being worked on by the community during this release of OPNFV include: + +* Neutron: an OpenStack project to provide “network connectivity as a service” between + interface devices (e.g., vNICs) managed by other OpenStack services (e.g., nova). +* OpenDaylight: addresses multivendor, traditional and greenfield networks, establishing the + industry’s de facto SDN platform and providing the foundation for networks of the future. +* ONOS: a carrier-grade SDN network operating system designed for high availability, + performance, scale-out. + +.. OpenContrail SDN controller is planned to be supported in the next release. + +Data Plane +---------- + +OPNFV extends Linux virtual networking capabilities by using virtual switching +and routing components. The OPNFV community proactively engages with these source +communities to address performance, scale and resiliency needs apparent in carrier +networks. + +* FD.io (Fast data - Input/Output): a collection of several projects and libraries to + amplify the transformation that began with Data Plane Development Kit (DPDK) to support + flexible, programmable and composable services on a generic hardware platform. +* Open vSwitch: a production quality, multilayer virtual switch designed to enable + massive network automation through programmatic extension, while still supporting standard + management interfaces and protocols. + +Deployment Architecture +======================= + +A typical OPNFV deployment starts with three controller nodes running in a high availability +configuration including control plane components from OpenStack, SDN, etc. and a minimum +of two compute nodes for deployment of workloads (VNFs). +A detailed description of the hardware requirements required to support the 5 node configuration +can be found in pharos specification: https://artifacts.opnfv.org/pharos/colorado/docs/specification/index.rst + +In addition to the deployment on a highly available physical infrastructure, OPNFV can be +deployed for development and lab purposes in a virtual environment. In this case each of the hosts +is provided by a virtual machine and allows control and workload placement using nested virtualization. + +The initial deployment is done using a staging server, referred to as the "jumphost". +This server-either physical or virtual-is first installed with the installation program +that then installs OpenStack and other components on the controller nodes and compute nodes. +See the `OPNFV User Guide`_ for more details. + +=========================== +The OPNFV Testing Ecosystem +=========================== + +The OPNFV community has set out to address the needs of virtualization in the carrier +network and as such platform validation and measurements are a cornerstone to the +iterative releases and objectives. + +To simplify the complex task of feature, component and platform validation and characterization +the testing community has established a fully automated method for addressing all key areas of +platform validation. This required the integration of a variety of testing frameworks in our CI +systems, real time and automated analysis of results, storage and publication of key facts for +each run. + + +Release Verification +==================== + +The OPNFV community relies on its testing community to establish release criteria for each OPNFV +release. Each release cycle the testing criteria become more stringent and better representative +of our feature and resiliency requirements. + + +As each OPNFV release establishes a set of deployment scenarios to validate, the testing +infrastructure and test suites need to accommodate these features and capabilities. It’s not +only in the validation of the scenarios themselves where complexity increases, there are test +cases that require multiple datacenters to execute when evaluating features, including multisite +and distributed datacenter solutions. + +The release criteria as established by the testing teams include passing a set of test cases +derived from the functional testing project ‘functest,’ a set of test cases derived from our +platform system and performance test project ‘yardstick,’ and a selection of test cases for +feature capabilities derived from other test projects such as bottlenecks, vsperf, cperf and +storperf. The scenario needs to be able to be deployed, pass these tests, and be removed from +the infrastructure iteratively (no less that 4 times) in order to fulfill the release criteria. + +-------- +Functest +-------- + +Functest provides a functional testing framework incorporating a number of test suites +and test cases that test and verify OPNFV platform functionality. +The scope of Functest and relevant test cases can be found in its +`user guide `_. + +Functest provides both feature project and component test suite integration, leveraging +OpenStack and SDN controllers testing frameworks to verify the key components of the OPNFV +platform are running successfully. + +--------- +Yardstick +--------- + +Yardstick is a testing project for verifying the infrastructure compliance when running VNF applications. +Yardstick benchmarks a number of characteristics and performance vectors on the infrastructure making it +a valuable pre-deployment NFVI testing tools. + +Yardstick provides a flexible testing framework for launching other OPNFV testing projects. + +There are two types of test cases in Yardstick: + +* Yardstick generic test cases and OPNFV feature test cases; + including basic characteristics benchmarking in compute/storage/network area. +* OPNFV feature test cases include basic telecom feature testing from OPNFV projects; + for example nfv-kvm, sfc, ipv6, Parser, Availability and SDN VPN + +System Evaluation and compliance testing +======================================== + +The OPNFV community is developing a set of test suites intended to evaluate a set of reference +behaviors and capabilities for NFV systems developed externally from the OPNFV ecosystem to +evaluate and measure their ability to provide the features and capabilities developed in the +OPNFV ecosystem. + +The Dovetail project will provide a test framework and methodology able to be used on any NFV platform, +including an agreed set of test cases establishing an evaluation criteria for exercising +an OPNFV compatible system. The Dovetail project has begun establishing the test framework +and will provide a preliminary methodology for the Colorado release. Work will continue to +develop these test cases to establish a stand alone compliance evaluation solution +in future releases. + +Additional Testing +================== + +Besides the test suites and cases for release verification, additional testing is performed to validate +specific features or characteristics of the OPNFV platform. +These testing framework and test cases may include some specific needs; such as extended measurements, +additional testing stimuli, or tests simulating environmental disturbances or failures. + +These additional testing activities provide a more complete evaluation of the OPNFV platform. +Some of the projects focused on these testing areas include: + +------ +VSPERF +------ + +VSPERF provides a generic and architecture agnostic vSwitch testing framework and associated tests. +This serves as a basis for validating the suitability of different vSwitch implementations and deployments. + +----------- +Bottlenecks +----------- + +Bottlenecks provides a framework to find system limitations and bottlenecks, providing +root cause isolation capabilities to facilitate system evaluation. + + +.. _`OPNFV Configuration Guide`: http://artifacts.opnfv.org/opnfvdocs/colorado/docs/configguide +.. _`OPNFV User Guide`: http://artifacts.opnfv.org/opnfvdocs/colorado/docs/userguide +.. _Dovetail project: https://wiki.opnfv.org/display/dovetail + diff --git a/docs/platformoverview/deploymenttools.rst b/docs/platformoverview/deploymenttools.rst deleted file mode 100644 index 034ceda69..000000000 --- a/docs/platformoverview/deploymenttools.rst +++ /dev/null @@ -1,46 +0,0 @@ -.. This work is licensed under a Creative Commons Attribution 4.0 International License. -.. http://creativecommons.org/licenses/by/4.0 -.. (c) OPNFV, Huawei - -================ -Deployment Tools -================ - -Brahmaputra provides 4 different installers. - -The installers will deploy the target platform onto a set of virtual or bare metal servers according -to the configuration files. After the deployment, it doesn't matter which of the installers had been used -to deploy the target scenario. - -**Apex** is an OPNFV Installation tool based on RDO Manager that deploys OPNFV using the RDO Project -OpenStack Distribution. -RDO manager is a Triple-O based installation tool. -Triple-O is an image based life cycle deployment tool that is a member of the OpenStack Big Tent Governance. -Apex uses Centos on all target platforms and can deploy all SDN controllers. -Find more information at -`OpenStack Wiki for Triple-O `_ and `OPNFV Configuration Guide`_. - -**Compass** is an installer project based on open source project Compass, which provides automated deployment -and management of OpenStack and other distributed systems. -It can be considered as what the LiveCD to a single box for a pool of servers – bootstrapping the server pool. -Compass is based on Ansible. -It can deploy Ubuntu or Centos as target operating system and ODL and ONOS as SDN controllers. -Find more information at -`OpenStack Wiki for Compass `_ and `OPNFV Configuration Guide`_. - -**Fuel** is an installer project based on the Fuel OpenStack open source project -providing automated deployment and management of OpenStack and other distributed systems. -Fuel is based on puppet and deploys the Ubuntu Linux operating system; -the OpenStack virtual Infra-structure manager, and OpenDaylight or ONOS SDN controllers. -Find more information at -`OpenStack Wiki for Fuel `_ and `OPNFV Configuration Guide`_. - -**Joid** is an installer utilizes the technology developed in Juju and MAAS. -Juju allows you to deploy, configure, manage, maintain, and scale -cloud services quickly and efficiently on public clouds, as well as on physical servers, -OpenStack, and containers. Together with MAAS hardware usage can be optimized. -For more info on Juju and MAAS, please visit ``_, -``_ and the -`Joid User Guide `_. - -.. _`OPNFV Configuration Guide`: http://artifacts.opnfv.org/opnfvdocs/brahmaputra/docs/configguide diff --git a/docs/platformoverview/introduction.rst b/docs/platformoverview/introduction.rst deleted file mode 100644 index eab30e9b1..000000000 --- a/docs/platformoverview/introduction.rst +++ /dev/null @@ -1,70 +0,0 @@ -.. This work is licensed under a Creative Commons Attribution 4.0 International License. -.. http://creativecommons.org/licenses/by/4.0 -.. (c) OPNFV, Huawei - -.. ==> All actions still to be resolved during the review are marked "==>" in comments. - -============ -Introduction -============ - -.. ==> take some more inputs from the marketing message - -OPNFV is an integration effort that takes outputs from several open source communities to build a NFV platform. This task of integration leads to providing different kinds of output to its users. - -The primary goal of the OPNFV project is the target software platform, which is a integrated solution -of a set of components/building blocks of the ETSI ISG NFV reference architecture. -In the Brahmaputra release, this is limited to the NFVI and VIM blocks. -OPNFV users will be able to deploy their VNFs there using some MANO solution. -The target software platform is integrated from a set of other open source components, -of which the biggest ones are OpenStack and SDN controllers. There are multiple combinations -possible and a subset is provided and tested by the Brahmaputra release. These subsets -are called here scenarios. - -Besides the target software platform, OPNFV provides a set of tools that helps the user -deploy this target software platform on a set of servers. These tools are installers. -Brahmaputra provides multiple options here. Naturally the different installers -have different capabilities, that is they support deployment of different scenarios. - -The installers allow users to deploy OPNFV target software platform on a bare metal environment -or a set of virtual machines. In both cases, some hosts (bare metal or virtual) will act -as controller nodes, while other hosts will be the compute nodes hosting the VNFs. -The installers use a separate server to control the deployment process. This server is called -"jump server" and is installed with the installer's software at the beginning of a deployment. -The jump server also can be bare metal or virtual. - -This configuration - jump servers and a set of typically 5 nodes to run the target software platform - -is also described as part of an OPNFV release. This allows the users to build their own labs -accordingly and deploy OPNFV easily. A lab compliant to this description sometimes is called -"Pharos-compliant" after the OPNFV project providing the lab description. - -Another major part of the OPNFV release is a testing framework and test cases. -This test framework allows users to verify their deployment of the OPNFV target software platform. -It will execute and test major functions of the platform relevant to NFV applications (VNFs) so -the user can be confident that VNFs can successfully run. - -OPNFV releases come with the necessary documentation describing -target software platform, deployment tools, test cases, etc. in their architecture, configuration and usage. -The most important documents here are configuration guides and user guides that help to set up -a OPNFV deployment and use it. - -The OPNFV project takes major effort to provide lab environments to the community. -The OPNFV community labs of course need to be Pharos-compliant. They are used for OPNFV development -tasks and release creation, but should also provide users with the opportunity to run their own -OPNFV tests. OPNFV community labs are not part of a OPNFV release. -Please find more information on the labs in the -`Pharos project documentation `_. - -We should also mention that OPNFV works on requirements of open source projects used in OPNFV to -make these projects better suitable for NFV telco carrier use cases. -These requirements are described in requirement documents and also forwarded -to the "upstream" projects in the format required by these projects. -These requirement documents are not bound to OPNFV releases. - -OPNFV bundles the target software, installers, documentation, test cases and lab -description to releases. - -This overview document introduces these components and scenarios on a high level and -points you to more detailed documentation. - - diff --git a/docs/platformoverview/softwarearchitecture.rst b/docs/platformoverview/softwarearchitecture.rst deleted file mode 100644 index cf122a5ef..000000000 --- a/docs/platformoverview/softwarearchitecture.rst +++ /dev/null @@ -1,211 +0,0 @@ -.. This work is licensed under a Creative Commons Attribution 4.0 International License. -.. 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 -======================== - -The `Pharos Project `_ 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 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 ---------- - -.. ==> 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 `_. -Please ensure that you have the Liberty release selected at the -``More Releases & Languages`` drop down menu. - -Operating System ----------------- - -OPNFV uses Linux on all target machines. Depending on the installers, different -distributions are supported. - -Ubuntu 14 supported by Fuel, Compass and Joid installers -CentOS 7 supported by Apex and Compass - - -SDN Controllers ---------------- - -OPNFV Brahmaputra release supports different SDN controllers. -Some scenarios don't use an SDN controller but rely just on Neutron networking capabilities. - -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 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 `_. -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. -More information on the internal design of ONOS may be found in -`User's Guide `_ and -`Architecture+Guide `_ on the -`wiki of the ONOS project `_. -ONOS is integrated to OPNFV using a framework ONOSFW and Neutron plugins. Details can be found in the -ONOS specific OPNFV documents, -`Design guide `_, -`User guide `_ and -`Configuration guide `_. - -.. OpenContrail SDN controller will be supported in the next drop of the Brahmaputra release. - - -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 `_. - -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 `_. - -.. 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 -======================= - -OPNFV starts with a typical configuration with 3 controller nodes running -OpenStack, SDN, etc. and a minimum of 2 compute nodes for deployment of VNFs. -A detailed description of this 5 node configuration can be found in pharos documentation. - -The 3 controller nodes allow to provide an HA configuration. The number of compute -nodes can be increased dynamically after the initial deployment. - -OPNFV can be deployed on bare metal or in a virtual environment, where each of the hosts -is a virtual machine and provides the virtual resources using nested virtualization. - -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 `OPNFV User Guide`_ -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, 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 diff --git a/docs/platformoverview/testcasesframework.rst b/docs/platformoverview/testcasesframework.rst deleted file mode 100644 index 73c9cd187..000000000 --- a/docs/platformoverview/testcasesframework.rst +++ /dev/null @@ -1,110 +0,0 @@ -.. This work is licensed under a Creative Commons Attribution 4.0 International License. -.. http://creativecommons.org/licenses/by/4.0 -.. (c) OPNFV, Huawei - -================= -Testing ecosystem -================= - -Testing is a key area and also a challenge for OPNFV in order to be able to -verify and validate the platform we are creating. - -This is a complex task as we have to test the integration of the components, -the functionality we are creating and using and we have to verify -that the platform is suitable for telecom applications. -We do testing in an automated fashion by using several test tools and frameworks in our CI/CD pipeline. - -This chapter gives an overview about our testing tools and activities. - - -Release verification -==================== - -OPNFV releases the target platform together with the deployment tools in a set of scenarios -that provides choices regarding the deployed components and the available features. -The scenarios and the provided functionality are tested automatically in the CI/CD pipeline -mentioned above and they are considered to be ready for release after -at least 4 successful consecutive iterations. - -The functional testing and the platform validation are divided between two projects called Functest and Yardstick. - -Functest --------- - -Functest provides a functional testing framework along with a set of test suites -and test cases that test and verify OPNFV platform functionality. -The scope of Functest and relevant test cases can be found in its -`user guide `_. - -In Brahmaputra, Functest is focusing on OpenStack and SDN controllers deployment testing. -Its testing framework combines a number of testing tools -to verify the key components of the OPNFV platform are running successfully. -For example, Rally and Tempest are integrated for OpenStack basic functional testing and benchmark, -Robot is used for ODL testing, and Teston is integrated for ONOS testing. -Besides these, Functest also includes tests by deploying candidate VNFs such as vPing and vIMS, and testing their basic functionality. - -Yardstick ---------- - -Yardstick is a testing project for verifying the infrastructure compliance when running VNF applications. -Yardstick can benchmark a number of characteristics/performance vectors about the infrastructure, -that makes it become a useful pre-deployment NFVI testing tools. - -Yardstick is also a flexible testing framework supporting OPNFV feature testing by the various projects in OPNFV. -Projects can plug in their test cases for specific features easily. - -The detail of Yardstick project can be found in the -`yardstick user guide `_. - -There are two types of test cases in Yardstick: Yardstick generic test cases and OPNFV feature test cases. -Yardstick generic test cases include basic characteristics benchmarking in compute/storage/network area. -OPNFV feature test cases include basic telecom feature testing from OPNFV projects, -for example nfv-kvm, sfc, ipv6, Parser, Availability and SDN VPN. - -All of the Yardstick test cases are listed on -``_. - - -Additional Testing -================== - -Besides the test suites and cases for release verification, there are some additional testing -for specific feature or characteristics on OPNFV platform. -These testing framework and test cases may include some specific needs, -such as extended measurements, or additional testing stimuli, or tests which cause disturbances on the environment. -These additional testing can provide a more complete evaluation about OPNFV platform deployment. - -Qtip ----- - -Qtip is a performance benchmark testing project by using a "Bottom-Up" approach -in characterizing and benchmarking OPNFV platform. -Qtip aims to benchmark the performance of components for a quantitative analysis and doesn't deal with validation of the platform. - -In Brahmaputra, Qtip develops a flexible framework, -adds a number of test cases covering compute/storage/network area, -and compares these benchmarks on a bare metal machine vs a VM. -These contrastive result can be used to evaluate the performance of these components on the OPNFV platform basically. - -VSPERF ------- - -VSPERF will develop a generic and architecture agnostic vSwitch testing framework and associated tests, -that will serve as a basis for validating the suitability of different vSwitch implementations -in a Telco NFV deployment environment. -The output of this project will be utilized as part of OPNFV Platform and VNF level testing and validation. - -Bottlenecks ------------ - -Bottlenecks will provide a framework to find system bottlenecks -by testing and verifying OPNFV infrastructure in a staging environment before committing it to a production environment. -The Bottlenecks framework can not only find specific system limitations and bottlenecks, -but also the root cause of these bottlenecks. - -In Brahmaputra, Bottlenecks includes two test cases: -rubbos and vstf. These test cases are executed on OPNFV community pods, -and test result report are visible on the community testing dashboard. - - - -- 2.16.6