A compact version of the documentation library.
[opnfvdocs.git] / docs / platformoverview / softwarearchitecture.rst
1 .. This work is licensed under a Creative Commons Attribution 4.0 International License.
2 .. http://creativecommons.org/licenses/by/4.0
3 .. (c) OPNFV, Huawei
4
5 ===========================
6 OPNFV Platform Architecture
7 ===========================
8
9 The OPNFV project addresses a number of aspects in the development of a consistent virtualization
10 platform including common hardware requirements, software architecture and installed state.
11 The platform architecture as the OPNFV project approaches it is dicussed in the following sections.
12
13 OPNFV Lab Infrastructure
14 ========================
15
16 The `Pharos Project <https://www.opnfv.org/developers/pharos>`_ provides a lab infrastructure
17 that is geographically and technically diverse.
18 Labs instantiate bare-metal and virtual environments that are accessed remotely by the
19 community and used for OPNFV platform and feature development, build, deploy and testing.
20 This helps in developing a highly robust and stable OPNFV platform
21 with well understood performance characteristics.
22
23 Community labs are hosted by OPNFV member companies on a voluntary basis.
24 The Linux Foundation also hosts an OPNFV lab that provides centralised CI
25 and other production resources which are linked to community labs.
26 Future lab capabilities will include the ability easily automate deploy and test of any
27 OPNFV install scenario in any lab environemnt as well as on a virtual infrastructure.
28
29 .. ==> I am not sure this is the best place to include this.
30
31
32 Software architecture
33 =====================
34
35 This section will provide information which upstream projects, versions and components are
36 integrated in the release to implement OPNFV requirement. You can find the list of common
37 requirements for deployment tools here:
38 http://artifacts.opnfv.org/genesisreq/brahmaputra/requirements/requirements.pdf.
39
40 OpenStack
41 ---------
42
43 .. ==> didn't understand Chris' suggestion about reducing the heading level for these sub-topics
44
45 OPNFV integrates OpenStack as cloud management system where Brahmaputra uses the OpenStack Liberty Release.
46 The set of sub-projects deployed in a brahmaputra platform varies slightly depending on the installer and scenario.
47
48 The following table shows which components are deployed.
49
50 +------------+----------------+-----------+-----------+-----------+-----------+
51 | services   | type           | Apex      | Compass   | Fuel      | Joid      |
52 +============+================+===========+===========+===========+===========+
53 | aodh       | alarming       | Available | ---       | ---       | ---       |
54 +------------+----------------+-----------+-----------+-----------+-----------+
55 | ceilometer | metering       | Available | Available | Available | Available |
56 +------------+----------------+-----------+-----------+-----------+-----------+
57 | cinder     | volume         | Available | Available | Available | Available |
58 +------------+----------------+-----------+-----------+-----------+-----------+
59 | cloud      | cloudformation | ---       | Available | Available | Available |
60 +------------+----------------+-----------+-----------+-----------+-----------+
61 | glance     | image          | Available | Available | Available | Available |
62 +------------+----------------+-----------+-----------+-----------+-----------+
63 | heat       | orchestration  | Available | Available | Available | Available |
64 +------------+----------------+-----------+-----------+-----------+-----------+
65 | keystone   | identity       | Available | Available | Available | Available |
66 +------------+----------------+-----------+-----------+-----------+-----------+
67 | neutron    | network        | Available | Available | Available | Available |
68 +------------+----------------+-----------+-----------+-----------+-----------+
69 | nova       | compute        | Available | Available | Available | Available |
70 +------------+----------------+-----------+-----------+-----------+-----------+
71 | swift      | object-store   | Available | ---       | Available | Available |
72 +------------+----------------+-----------+-----------+-----------+-----------+
73
74
75 Note that additional components of OpenStack are used as part of deployment tools and test frameworks
76 (Fuel, Tempest, Rally).
77
78 For more information about the OpenStack features and usage refer to the
79 `official OpenStack documentation page <http://docs.openstack.org/>`_.
80 Please ensure that you have the Liberty release selected at the
81 ``More Releases & Languages`` drop down menu.
82
83 Operating System
84 ----------------
85
86 OPNFV uses Linux on all target machines. Depending on the installers, different
87 distributions are supported.
88
89 Ubuntu 14 supported by Fuel, Compass and Joid installers
90 CentOS 7 supported by Apex and Compass
91
92
93 SDN Controllers
94 ---------------
95
96 OPNFV Brahmaputra release supports different SDN controllers.
97 Some scenarios don't use an SDN controller but rely just on Neutron networking capabilities.
98
99 Depending on the SDN controller you are using, the featureset available will vary.
100 More information on feature support and scenarios can be found in `OPNFV Configuration Guide`_ and `OPNFV User Guide`_.
101 Brahmaputra also provides scenarios without an SDN controller, just using OpenStack Neutron.
102
103 OpenDaylight is an SDN controller aiming to accelerate
104 adoption of Software-Defined Networking (SDN) and Network Functions Virtualization
105 (NFV) with a transparent approach that fosters new innovation.
106 OpenDaylight runs within a JVM and is installed in OPNFV within a container and integrated with OpenStack
107 using the ODL device driver. The Brahmaputra release of OPNFV integrates the Beryllium release.
108 You can find more information about OpenDaylight among the release artifacts at the
109 `Downloads page <https://www.opendaylight.org/downloads>`_.
110 Please ensure you are using the Beryllium documentation.
111
112 ONOS is an SDN controller written in Java with a distributed architecture with special focus to
113 support scalability, fault tolerance and hardware and software upgrades without
114 interrupting network traffic.
115 More information on the internal design of ONOS may be found in
116 `User's Guide <https://wiki.onosproject.org/display/ONOS/User's+Guide>`_ and
117 `Architecture+Guide <https://wiki.onosproject.org/display/ONOS/Architecture+Guide>`_ on the
118 `wiki of the ONOS project <https://wiki.onosproject.org>`_.
119 ONOS is integrated to OPNFV using a framework ONOSFW and Neutron plugins. Details can be found in the
120 ONOS specific OPNFV documents,
121 `Design guide <http://artifacts.opnfv.org/onosfw/brahmaputra/design/design.pdf>`_,
122 `User guide <http://artifacts.opnfv.org/onosfw/brahmaputra/userguide/index.html>`_ and
123 `Configuration guide <http://artifacts.opnfv.org/onosfw/brahmaputra/configguide/index.html>`_.
124
125 .. OpenContrail SDN controller will be supported in the next drop of the Brahmaputra release.
126
127
128 Data Plane
129 ----------
130
131 OPNFV extends Linux's virtual networking capabilies by using virtual switch
132 and router components including improving those components by requirements
133 specific to telco use cases.
134
135 For instance some scenarios use OpenVSwitch
136 to replace Linux bridges as it offers advantages in terms of mobility, hardware
137 integration and use by network controllers. OPNFV leverages these by upgrade
138 to a specific installation using user-space datapath. This includes changes to
139 other dataplane components, including libvirt, qemu, DPDK etc.
140 Please find more information in
141 `OVSNFV User's Guide <http://artifacts.opnfv.org/ovsnfv/brahmaputra/docs/userguides/userguides.pdf>`_.
142
143 Other Components
144 ----------------
145
146 **KVM**
147
148 NFV infrastructure has special requirements on hypervisors with respect of
149 interrupt latency (timing correctness and packet latency in data plane) and
150 live migration.
151
152 Besides additional software changes, this requires
153 some adjustments to system configuration
154 information, like hardware, BIOS, OS, etc.
155
156 .. KVM4NFV is one implementation, we have three implementations of the OS virtualization layer
157 .. to capture here.
158 .. ==> need more input
159
160 Please find more information at
161 `KVM4NFV project documentation <http://artifacts.opnfv.org/kvmfornfv/docs/all/all.pdf>`_.
162
163 .. 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.
164
165
166
167 Deployment Architecture
168 =======================
169
170 OPNFV starts with a typical configuration with 3 controller nodes running
171 OpenStack, SDN, etc. and a minimum of 2 compute nodes for deployment of VNFs.
172 A detailed description of this 5 node configuration can be found in pharos documentation.
173
174 The 3 controller nodes allow to provide an HA configuration. The number of compute
175 nodes can be increased dynamically after the initial deployment.
176
177 OPNFV can be deployed on bare metal or in a virtual environment, where each of the hosts
178 is a virtual machine and provides the virtual resources using nested virtualization.
179
180 The initial deployment is done using a so-called "jumphost". This server (either bare metal
181 or virtual) is first installed with the installer program that then installs OpenStack
182 and other components on the controller nodes and compute nodes. See the `OPNFV User Guide`_
183 for more details.
184
185 .. Editors note:
186 .. In a second level of detail, describe how software is distributed over the 3 controller
187 .. nodes, compute nodes and other hardware.
188
189
190 In Brahmaputra, different scenarios can be deployed to provide the different feature sets, e.g.
191 HA, IPV6, BGPVPN, KVM, or select the different implementations, e.g. SDN controllers.
192
193 .. ==> Is it described somewhere what we mean by scenarios? If yes, then the original text is better.
194 .. If not, I would give a brief overview here to describe the term.
195
196 The following scenarios are supported, some of them can be deployed using different installers.
197
198 * nosdn-nofeature
199 * odl_l2-ha
200 * odl_l3-ha
201 * odl_l2-bgpvpn-noha
202 * onos-ha
203 * nosdn-ovs-ha
204 * nosdn-kvm-ha
205 * nosdn-ovs_kvm-ha
206
207 Please find more information at:
208 http://artifacts.opnfv.org/opnfvdocs/brahmaputra/configguide/configoptions.html#opnfv-scenario-s.
209
210 .. _`OPNFV Configuration Guide`: http://artifacts.opnfv.org/opnfvdocs/brahmaputra/docs/configguide
211 .. _`OPNFV User Guide`: http://artifacts.opnfv.org/opnfvdocs/brahmaputra/docs/userguide