Adding architecture options
[openretriever.git] / docs / development / gapanalysis / gap-analysis-architecture-options.rst
1 .. This work is licensed under a Creative Commons Attribution 4.0 International
2 .. License. http://creativecommons.org/licenses/by/4.0
3 .. (c) Gergely Csatari (Nokia)
4
5 ==================================
6 OpenRetriever architecture options
7 ==================================
8
9 1 Architecture options to support only containers on bare metal
10 ...............................................................
11 To support containers on bare metal without the support of VM-s only a single
12 VIM is needed.
13 This architecture option is targeted by OpenRetriever in OPNFV Euphrates, and
14 this architecture option is considered in the gap analyzis against
15 :doc:`OpenStack <gap-analysis-openstack>` and
16 :doc:`Kubernetes <gap-analysis-kubernetes-v1.5>`.
17 Examples: Kubernetes, OpenStack with Zun_ and Kuryr_, which as a side effect
18 also supports VM-s.
19
20 2 Architecture options to support containers and VM-s
21 .....................................................
22 There are different architecture options to support container based and VM based
23 VNF-s in OPNFV. This section provides a list of these options with a brief
24 description and examples.
25 In the descriptions providing the same API means, that the same set of API-s are
26 used (like the OpenStack_ API-s or the Kubernetes_ API), integrted networks mean,
27 that the network connections of the workloads can be connected without leaving
28 the domain of the VIM and shared hardware resources mean that it is possible to
29 start a workload VM and a workload container on the same physical host.
30
31 2.1 Separate VIM-s
32 ==================
33 There is a separate VIM for VM-s and a separate for containers, they use
34 different hardware pools, they provide different API-s and their networks are
35 not integrated.
36 Examples: A separate OpenStack instance for the VM-s and a separate Kubernetes_
37 instance for the containers.
38
39 2.2 Single VIM
40 ==============
41 One VIM supports both VM-s and containers using the same hardware pool, with
42 the same API and with integrated networking solution.
43 Examples: OpenStack with Zun_ and Kuryr_ or Kubernetes_ with Kubevirt_, Virtlet_ or
44 similar.
45
46 2.3 Combined VIM-s
47 ==================
48 There are two VIM-s from API perspective, but usually the VIM-s share hardware
49 pools on some level. This option have suboptions.
50
51 2.3.1 Container VIM on VM VIM
52 -----------------------------
53 A container VIM is deployed on top of resources managed by a VM VIM, they share
54 the same hardware pool, but they have separate domains in the pool, they provide
55 separate API-s and there are possibilities to integrate their networks.
56 Example: A Kubernetes_ is deployed into VM-s or bare metal hosts into an
57 OpenStack deployment optionally with Magnum. Kuryr_ integrates the networks on
58 some level.
59
60 2.3.2 VM VIM on Container VIM
61 -----------------------------
62 A VM VIM is deployed on top of resources managed by a container VIM, they do not
63 share the same hardware pool, provide different API and do not have integrated
64 networks.
65 Example: `Kolla Kubernetes <https://github.com/openstack/kolla-kubernetes>`_ or
66 `OpenStack Helm <https://wiki.openstack.org/wiki/Openstack-helm>`_.
67
68 .. _Kubernetes: http://kubernetes.io/
69 .. _Kubevirt: https://github.com/kubevirt/
70 .. _Kuryr: https://docs.openstack.org/developer/kuryr/
71 .. _OpenStack: https://www.openstack.org/
72 .. _Virtlet: https://github.com/Mirantis/virtlet
73 .. _Zun: https://wiki.openstack.org/wiki/Zun