NRF comprises of various microservices deployed in
Kubernetes based Cloud Native Environment (CNE, example: OC-CNE) . Some common
services like logs or metrics data collection, analysis and graphs or charts
visualization, etc. is provided by the environment. The microservices
integrates with them and provide them necessary data. The following diagram
describes the overall architecture of the NRF:
The followings are the components of NRF product:
- NRF API Gateway
All NRF service requests are sent to the NRF API Gateway. The API
Gateway hides the deployment details of the NRF services and other components
from other NFs in the CNE and external entities. It is deployed in the CNE as a
Kuberbetes service by the NRF Helm Chart.
Note:
Ambassador is used as NRF
API Gateway
The primary functions of the NRF API Gateway are as follows:
- The NRF endpoint hosts
the FQDN(s) of the NRF deployment
- Inspects the service URI
and route the traffic to the appropriate upstream NRF micro-service
- Measures the request
count routed to each micro-service
- Measures the response
count based on the HTTP Status Code
- Generates HTTP Trace
data for the requests routed through
- Generates the logs of
the routing activity
- Integrates with CNE
common services EFK, Prometheus and Jaeger for sending them logs, metrics data
and HTTP Tracing data respectively
- NF Registration MicroService
This microservice handles the following service operations:
- receives and handles
NFRegister service requests from the NFs
- receives and handles
NFUpdate service requests from the NFs
- receives and handles
NFDeregister service requests from the NFs
- stores the registered
profiles in its own data store using the database service
- receives and handles the
Heart-beat messages from the NFs
- monitors the heart-beat
expiry, mark the NF profiles as suspended and act appropriately on the
suspended NF profiles
- NF Subscription MicroService
This microservice handles the following service operations:
- receives and handles
NFStatusSubscribe service requests from the NFs
- receives and handles
NFStatusUnsubscribe service requests from the NFs
- receives and handles
NFNotify service requests from the NFs
- stores the subscription
data in its own data store using the database service
- NF Discover MicroService
This microservice handles the following service operations:
- receives and handles
NFDiscover service requests from the NFs
- NRF Auditor MicroService
This microservice is internal to NRF. This microservice performs
the following tasks:
- finds and deletes the
expired subscription records
- finds and deletes the
profile records which have been SUSPENDED for a very long time
- processes the heartbeat
records and update them if a heartbeat is missed
- transitions the profiles
from REGISTERED to SUSPENDED state if n consecutive heartbeats are missed
For information on configuring these microservices, See
the OCNRF Cloud
Native Installation and Upgrade Guide.
- Data Service
The data service is deployed by the CNE provider. It is a common CNE
service with persistent data storage and highly available clustered MySql. The
OCNRF microservices create their data store using the Data Service upon
initialization.