Architecture - sonata-nfv/tng-rep GitHub Wiki

This section covers the architecture of the repositories, as well as the overview of the APIs and the provided features.

Overview

5GTANGO repositories are composed by an API that handles the fetch, store and delete operations of the records in the database. From SONATA Service platform \cite{sonata.d22}, 5GTANGO Service Platform will reuse the NS Repositories and VNF Repositories, extracting them from son-catalogue-repos \cite{sonata.catrep.git} components and creating a specific component for repositories. 5GTANGO repositories will have in addition the Slice Records Repository, the SLA Records Repository and Policy Records Repository.

It is important to note that the design incorporates a place for the V&V Test Results Repositories that is described in-depth in 5GTANGO deliverable D3.2 \cite{tango.d32}.

The design of the 5GTANGO Repositories represented in [@Fig:tng_rep] is based on microservice architecture, a docker image is built with the APIs developed in Ruby. The container is deployed by Ansible scripts and it is listening on port 4012 ready to serve the Repositories. As a dependency, the 5GTANGO Repositories require a MongoDB. A collection is created in the Mongo database per API.

APIs

NS Repositories

[@Tbl:apis_nsrep] shows the API endpoints responsible for handling the runtime information of NSs that 5GTANGO MANO deploys. The schema designed for the NS record is available on GitHub in the sonata-nfv/tng-schema repository \cite{tango.schema.git}. NS records are used by 5GTANGO MANO to track the Service Information and also to configure the service via Function-Specific Managers (FSMs) and (Service-Specific Managers) SSMs.

Action HTTP Method Endpoint
Create NS Instance Record POST /records/nsr/ns-instances
List NS Instances Record GET /records/nsr/ns-instances
Fetch NS Instance Record GET /records/nsr/ns-instances/<service_instance_uuid>
Update NS Instance Record PUT /records/nsr/ns-instances/<service_instance_uuid>
Delete NS Instance Record DELETE /records/nsr/ns-instances/<service_instance_uuid>

: API for handling NS Records. {#tbl:apis_nsrep}

VNF Repositories

[@Tbl:apis_vnfrep] shows the API endpoints responsible for handling the runtime information of VNFs that 5GTANGO MANO deploys. The schema designed for the VNF records is available on GitHub in the sonata-nfv/tng-schema repository \cite{tango.schema.git}. VNFs records are used by MANO to track the VNF information and also to configure the service via FSMs and SSMs.

\newpage

Action HTTP Method Endpoint
Create VNF Instance Record POST /records/vnfr/vnf-instances
List VNF Instances Record GET /records/vnfr/vnf-instances
Fetch VNF Instance Record GET /records/vnfr/vnf-instances/<vnf_instance_uuid>
Update VNF Instance Record PUT /records/vnfr/vnf-instances/<vnf_instance_uuid>
Delete VNF Instance Record DELETE /records/vnfr/vnf-instances/<vnf_instance_uuid>

: API for handling VNF records. {#tbl:apis_vnfrep}

Slice Records Repositories

[@Tbl:apis_nsirrep] shows the API endpoints responsible for handling the runtime information of Slices that 5GTANGO Slicing Manager deploys. The schema designed for the NS record is available on GitHub in the sonata-nfv/tng-schema repository \cite{tango.schema.git}. Slice Records are used by 5GTANGO Slice Manager to track the information of slices deployed.

Action HTTP Method Endpoint
Create Network Slice Instance Record POST /records/nsir/ns-instances
List Network Slice Instances Record GET /records/nsir/ns-instances
Fetch Network Slice Instance Record GET /records/nsir/ns-instances/<slice_instance_uuid>
Update Network Slice Instance Record PUT /records/nsir/ns-instances/<slice_instance_uuid>
Delete Network Slice Instance Record DELETE /records/nsir/ns-instances/<slice_instance_uuid>

: API for handling Slice Instance records. {#tbl:apis_nsirrep}

SLA Mapping Repositories

[@Tbl:apis_slarep] contains the API endpoint information related to the operation of the SLA runtime information. This repository contains the correlations between the high-level and the low-level requirements.

Action HTTP Method Endpoint
Create SLA Instance Record POST /records/sla/sla-instances
List SLAs Instances Record GET /records/sla/sla-instances
Fetch SLA Instance Record GET /records/sla/sla-instances/<sla_instance_uuid>
Update SLAs Instance Record PUT /records/sla/sla-instances/<sla_instance_uuid>
Delete SLA Instance Record DELETE /records/sla/sla-instances/<sla_instance_uuid>

: API for handling SLA information. {#tbl:apis_slarep}

Policies Repositories

[@Tbl:apis_polrep] represents the endpoints required for the policies operations. In this repository, policies runtime information will be stored to be enforced by 5GTANGO MANO.

Action HTTP Method Endpoint
Create Policy Instance Record POST /records/policy/policy-instances
List Policy Instances Record GET /records/policy/policy-instances
Fetch Policy Instance Record GET /records/policy/policy-instances/<policy_instance_uuid>
Update Policy Instance Record PUT /records/policy/policy-instances/<policy_instance_uuid>
Delete Policy Instance Record DELETE /records/policy/policy-instances/<policy_instance_uuid>

: API for handling Policy information. {#tbl:apis_polrep}