diff --git a/doc/architecture/CRIDGE/CRIDGEforDevelopers.md b/doc/architecture/CRIDGE/CRIDGEforDevelopers.md index 0457e529c34d138e17203fb2fbb2b10f858a386b..07b0138edeea670eaf972709f12f7afbc9c40435 100644 --- a/doc/architecture/CRIDGE/CRIDGEforDevelopers.md +++ b/doc/architecture/CRIDGE/CRIDGEforDevelopers.md @@ -160,7 +160,7 @@ The sync process is found in the code and explained by the following picture: # Expose CRDs as Service Specifications in OpenSlice catalogs -See [ExposingKubernetesResources](ExposingKubernetesResources.md) +See [ExposingKubernetesResources](../../service_design/kubernetes/ExposingKubernetesResources.md) diff --git a/doc/architecture/architecture.md b/doc/architecture/architecture.md index 9181348600e7706d51ec95802c023ccc68a3982b..7f7e723c2c81ebe74413d5c22bb53174f884140e 100644 --- a/doc/architecture/architecture.md +++ b/doc/architecture/architecture.md @@ -1,49 +1,60 @@ # Architecture - -Openslice offers the following main functionalities: +## High-Level Introduction +<!-- OpenSlice offers the following main functionalities: * Service Catalog Management: A CSP will have the ability to manage the Service Catalog Items, their attributes , organize in categories and decide what to make available to Customers * Services Specifications: A CSP will be able to manage Service Specifications * Service Catalog Exposure: A CSP will be able to expose catalog to customers and related parties * Service Catalog to Service Catalog: Openslice able to consume and provide Service Catalog items to other catalogs * Service Order: The Customer will be able to place a Service Order -* Service Inventory: The Customer and Provider will be able to view deployed Services status +* Service Inventory: The Customer and Provider will be able to view deployed Services status --> + +[](./images/architecture.png) -The following figure displays the overall architecture of Openslice. -[](../images/architecture.png) +OpenSlice consists of: +* Web frontend User Interface (UI) that consists of mainly two portal categories: + 1. An NFV portal allowing users to onboard VNFDs/NSDs to facility’s NFVOs and self-service management + 2. Several TMF-family portals (Product, Service, Resource, Testing) which allow users to browse the respective layers of a modern BSS/OSS solution +* An API gateway that proxies the internal APIs, which are used by the Web frontend as well as any other 3rd party services, and consist of: + 1. A microservice offering TMF-compliant API services (e.g. Product/Service/Resource Catalog API, Service Ordering API, etc) + 2. A microservice offering NFV-compliant API services (e.g. VNFD/NSD onboarding and management, etc) allowing to manage multiple NFVOs and store VNFDs and NSDs in the respective catalogues +* A Message Bus used by all microservices to exchange messages either via message Queues or via publish/subscribe Topics +* An Authentication Server implementing Oauth2 authentication scheme +* A microservice that is capable to interface with an issue management system (e.g. it raises an issue to all related stakeholders - CSPs, NOPs, CSCs - that a new Service Order is requested) +* A Central Logging microservice that logs all distributed actions into an Elasticsearch cluster +* A Service Orchestrator (SO) solution that will fulfill Service Ordering requests by propagating the orchestration actions to underlying components (e.g. NFVOs or Kubernetes) or to external SOs +* A MANO Client microservice which interfaces with SOL005-compliant NFVOs (synchronizing artifacts and propagating actions) +* A Custom Resource (CR) to TMF bridge (CRIDGE) microservice which interfaces with Kubernetes +* A Metrics Retrieval Component (METRICO) which interfaces with external monitoring tools, retrieving and injecting desired metrics into OpenSlice orchestration pipeline +* An Assurance Services component which generates and monitors alerts, as well executing defined actions based on the latter +* A visualization server (KROKI) microservice which enables a intuitive illustration of dependency graphs and interactions -Openslice allows Vertical Customers browsing the available offered service specifications. It consists of: -* Web frontend UIs that consist of mainly two portals: i) a NFV portal allowing users self-service management and onboarding VNFDs/NSDs to facility’s NFVO ii) a Services Portal, which allows users to browse the Service Catalog, Service Blueprints specifications and the Service Inventory -* An API gateway that proxies the internal APIs and used by the web front end as well as any other 3rd party service -* A Message Bus where all microservices use it to exchange messages either via message queues or via publish/subscribe topics -* An authentication server implementing Oauth2 authentication scheme -* A microservice offering TMF compliant API services (eg Service Catalog API, Service Ordering APIetc) -* A microservice offering NFV API services (eg VNF/NSD onboarding etc) and allows to store VNFDs and NSDs in a catalog -* A microservice that is capable to interface to an issue management system. For example it raises an issue to all related stakeholders (CSP, NOP, CSC) that a new Service Order is requested -* Central logging microservice that is capable to log all distributed actions in to an Elasticsearch cluster -* A Service Orchestrator solution that will propagate Service Ordering requests to the equivalent SOs and NFVOs +## Microservices Deployment +The following figure depicts how OpenSlice microservices are deployed -The following figure depicts how Openslice microservices are deployed +[](./images/microservices_network_deployment.png) -[](../images/microservices_network_deployment.png) +## Deploying OpenSlice in multi-domain scenarios -## Deploying Openslice in multi domain scenarios +A typical deployment across domains, involves some typical components: -A typical deployment across domains, involves today some typical components: i) an OSS/BSS to allow customers access the service catalog and perform service orders, ii) a Service Orchestrator (SO) component for executing the service order workflow, as well as iii) a Network Functions Virtualization Orchestrator (NFVO) for configuring the iv) network resources. +1. an OSS/BSS to allow customers access the service catalog and perform service orders, +2. a Service Orchestrator (SO) component for executing the service order workflow, +3. a Network Functions Virtualization Orchestrator (NFVO) or Kubernetes for configuring the network resources. -TMF Open APIs are introduced not only for exposing catalogues and accepting service orders, but also implementing the East-West interfaces between the domains, fulfilling also the LSO requirements as introduced by MEF. +TMF Open APIs are introduced not only for exposing catalogues and accepting service orders, but also implementing the East-West interfaces between the domains, fulfilling also the [LSO requirements](https://wiki.mef.net/pages/viewpage.action?pageId=56165271) as introduced by MEF. The following figure shows how openslice could be used in such scenarios: -[](../images/multi-domain-architecture.png) +[](../getting_started/configuration/images/multi-domain-architecture.png) -See more [Consuming Services From External Partner Organizations](./consumingServicesFromExternalPartners.md) +See more [Consuming Services From External Partner Organizations](../getting_started/configuration/consumingServicesFromExternalPartners.md). \ No newline at end of file diff --git a/doc/architecture/images/architecture.png b/doc/architecture/images/architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..6ad6fd808dc6c911c284e223843c98f79346dc9e Binary files /dev/null and b/doc/architecture/images/architecture.png differ diff --git a/doc/images/microservices_network_deployment.png b/doc/architecture/images/microservices_network_deployment.png similarity index 100% rename from doc/images/microservices_network_deployment.png rename to doc/architecture/images/microservices_network_deployment.png diff --git a/doc/deploymentK8s.md b/doc/deploymentK8s.md index 85f79965b9b63606904a872fba33163cea5158a6..ded68fabc2c80eb464ca073b75fcb2b3ceb8bdab 100644 --- a/doc/deploymentK8s.md +++ b/doc/deploymentK8s.md @@ -82,7 +82,7 @@ cd org.etsi.osl.main/kubernetes/helm/openslice/ ### 3. Prerequisites before deployment -Before deploying the Helm chart, ensure you have configured the necessary components as detailed in the following section, i.e. [Configure Helm Chart Services](#configure-helm-chart-services). By default, the `main` branch is selected for deployment. +Before deploying the Helm chart, ensure you have configured the necessary components as detailed in the following section, i.e. [Configure Helm Chart Services](#configure-helm-chart). By default, the `main` branch is selected for deployment. We recommend: @@ -487,7 +487,7 @@ The Keycloack server is managing authentication and running on a container at po - Navigate to Administration Console -- Login with the credentials from section [Keycloak Configuration](#3-keycloak-configuration). Default values are: +- Login with the credentials from section [Keycloak Configuration](#2-keycloak-configuration). Default values are: - user: admin - password: Pa55w0rd diff --git a/doc/architecture/consumingServicesFromExternalPartners.md b/doc/getting_started/configuration/consumingServicesFromExternalPartners.md similarity index 97% rename from doc/architecture/consumingServicesFromExternalPartners.md rename to doc/getting_started/configuration/consumingServicesFromExternalPartners.md index e43ca9829fdda74ef8c02b9ccb4b01d99fc94cfd..faa2efe62ead4904e6112b542a55380d895ddb9d 100644 --- a/doc/architecture/consumingServicesFromExternalPartners.md +++ b/doc/getting_started/configuration/consumingServicesFromExternalPartners.md @@ -6,7 +6,7 @@ TMF Open APIs are introduced not only for exposing catalogues and accepting serv The following figure shows how openslice could be used in such scenarios: -[](../images/multi-domain-architecture.png) +[](./images/multi-domain-architecture.png) In Openslice we can consume services from 3rd parties via Open APIs. @@ -47,8 +47,7 @@ An organization must have the following characteristics in openslice catalog, li An example Organization defined example in json: -``` - +```json { "uuid": "1a09a8b5-6bd5-444b-b0b9-a73c69eb42ae", "@baseType": "BaseEntity", diff --git a/doc/images/multi-domain-architecture.png b/doc/getting_started/configuration/images/multi-domain-architecture.png similarity index 100% rename from doc/images/multi-domain-architecture.png rename to doc/getting_started/configuration/images/multi-domain-architecture.png diff --git a/doc/index.md b/doc/index.md index ff13761005bcf30dc4d6c4636f1587e03bee3791..d2f13212eab39752401ed65eac3ae4a3b8c934b9 100644 --- a/doc/index.md +++ b/doc/index.md @@ -81,7 +81,7 @@ Login credentials: # Probe further -* Installing OpenSlice. See the [Deployment](deployment.md) of OpenSlice -* Learn more on [how OpenSlice supports Network as a Service(NaaS)](./naas/introduction) +* Installing OpenSlice: See the [Deployment](deployment.md) section +* Learn more on [how OpenSlice supports Network as a Service(NaaS)](./naas/introduction.md) * Who is implementing OpenSlice? See [OSL ETSI SDG](https://osl.etsi.org/) * How OpenSlice works? See the [Architecture](./architecture/architecture.md) of OpenSlice diff --git a/doc/service_design/catalogs.md b/doc/service_design/catalogs.md index fb89bedb51a0e7d59f2a36db20b61b0b483440fd..e98d9468e4eb5df9a0e1b5a96456523c66fac2d7 100644 --- a/doc/service_design/catalogs.md +++ b/doc/service_design/catalogs.md @@ -87,7 +87,7 @@ Delete it from the assigned Service Category. This action does not delete the ac ## Consume and expose Service Specifications from other Service Catalogues -See more on [Consuming Services From External Partner Organizations]( ../architecture/consumingServicesFromExternalPartners.md) +See more on [Consuming Services From External Partner Organizations]( ../getting_started/configuration/consumingServicesFromExternalPartners.md). ## Probe further diff --git a/mkdocs.yml b/mkdocs.yml index 7f051d7b154568205cdeb4fdec7e5173554b207b..ee87bb9641fa2f8f392884b8e0678f768227baf0 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -86,7 +86,7 @@ nav: - Role/Keycloak management: role_keycloak_management.md - NFV Orchestrator Configuration: nfvoconfig.md - Advanced topics: - - Consuming Services From External OSS: ./architecture/consumingServicesFromExternalPartners.md + - Consuming Services From External OSS: ./getting_started/configuration/consumingServicesFromExternalPartners.md - NaaS: - Introduction: ./naas/introduction.md - Services: @@ -125,27 +125,27 @@ nav: - Typical Examples: ./service_design/lcmrules/examples.md - Service Specification Examples: - Introduction: ./service_design/examples/intro.md - - Open5GS (NFV approach): ./service_design/examples/open5gs_nfv.md - - Open5GS (Kubernetes approach): ./service_design/examples/open5gs_kubernetes.md + # - Open5GS (NFV approach): ./service_design/examples/open5gs_nfv.md + # - Open5GS (Kubernetes approach): ./service_design/examples/open5gs_kubernetes.md - Exposing CRDs_aaS_Example_Calculator: ./service_design/examples/ExposingCRDs_aaS_Example_Calculator/ExposingCRDs_aaS_Example_Calculator.md - HELM Installation aaS Jenkins Example: ./service_design/examples/helmInstallation_aaS_Example_Jenkins/HELM_Installation_aaS_Jenkins_Example.md - Service Ordering: - Ordering Services from catalogs: ./service_ordering/ordering_services.md - - Testing services: - - Testing Specification: ./testing_services/test_spec.md - - Testing Catalogs: ./testing_services/test_catalogs.md - - Testing Inventory: ./testing_services/test_inventory.md - - Service as a Product: - - Product Specification: ./product_model/product_spec.md - - Product Catalogs: ./product_model/product_catalogs.md - - Product Inventory: ./product_model/product_inventory.md - - Assurance services: - - Introduction: ./assurance_services/intro.md - - Alarms and Actions: ./assurance_services/alarms_actions.md + # - Testing services: + # - Testing Specification: ./testing_services/test_spec.md + # - Testing Catalogs: ./testing_services/test_catalogs.md + # - Testing Inventory: ./testing_services/test_inventory.md + # - Service as a Product: + # - Product Specification: ./product_model/product_spec.md + # - Product Catalogs: ./product_model/product_catalogs.md + # - Product Inventory: ./product_model/product_inventory.md + # - Assurance services: + # - Introduction: ./assurance_services/intro.md + # - Alarms and Actions: ./assurance_services/alarms_actions.md - Design & Architecture: - Architecture: ./architecture/architecture.md - Cloud native support: - - Introduction: ./architecture/CRIDGE_cloud_native_intro.md + # - Introduction: ./architecture/CRIDGE_cloud_native_intro.md - CRIDGE for Developers: ./architecture/CRIDGE/CRIDGEforDevelopers.md - Message bus: ./architecture/messagebus.md - OSOM: ./architecture/osom.md