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}