...
- Service registration per service provider instances
- Registration
Service instances are registered to the registry by proxy or themselves. The visible scope should be indicated as a parameter when register. If a service is only internal visible, the service information is only pulled by the internal gateway (aka router & load balancer) and used by other components inside the system, the interal services can't be accessed by external systems or front end(web client). If a service is visible to external system, the service information is pulled by the external gateway and can be accessed by external systems and front end (web client) with auth.
- Discovery & Service Consuming
- For internal service consumers(Components inside ONAP system, such as A&AI, SO, Controller, etc.)
- Client side discovery and load balancing
- Server side discovery and load balancing
- Client side discovery and load balancing
- For external service clients(OSS, BSS, Web client, etc.), access the service via external gateway
- For internal service consumers(Components inside ONAP system, such as A&AI, SO, Controller, etc.)
- Registration
- Service registration per service
The service may have its own load balancer built inside, for example, Kubernetes can create a load balancer for a service. In such case, only need to register the service LB node to MSB, and the service request from the consumer is routed to the service LB node.- Registration
- Discovery & Service Consuming
Note: Only show the client side discovery in this diagram for simplicity, it's also possible to use server side discovery by the internal gateway.
- Registration
- Centralized Authentication&Authorization via MSB plugin
MSB is a pluggable architecture, so it can provide centralized authentication & authorization for service request with plugin of auth service provider like AAF.
Minimum Viable Product
Service Registration & Discovery
Service API Gateway(External API Gateway)
Service Router(Internal API Gateway)Describe the MVP for this release.
Functionalities
List the functionalities that this release is committing to deliver by providing a link to JIRA Epics and Stories. In the JIRA Priority field, specify the priority (either High, Medium, Low). The priority will be used in case de-scoping is required. Don't assign High priority to all functionalities.
...
Sub-components are repositories are consolidate in a single centralized place. Edit the Release Components name for your project in the centralized page.
ONAP Dependencies
...
- Integration: work with Integration project to integrate MSB with other ONAP components
- OOM: work with OOM team to register services to MSB after ONAP components are deployed and started by OOM
Architecture
High level architecture diagram
...
Anyone reading this section should have a good understanding of all the interacting modules.
API Incoming Dependencies
...
API Name | API Description | API Definition Date | API Delivery date | API Definition link (i.e.swagger) | To fill out | High level description of the
---|---|---|---|---|---|
API
...
API Outgoing Dependencies
API this release is delivering to other releases.
API Name | API Description | API Definition Date | API Delivery date | API Definition link (i.e.swagger) | To fill out | High level description of the API | Date for which the API is reviewed and agreed | To fill out | Link toward the detailed API description|
---|---|---|---|---|---|---|---|---|---|
Service Registration | 6/26/2017 | release API Freeze date | Microservice Bus API Documentation | ||||||
Service Discovery | 6/26/2017 | release API Freeze date | Microservice Bus API Documentation |
Third Party Products Dependencies
Third Party Products mean products that are mandatory to provide services for your components. Development of new functionality in third party product may or not be expected.
List the Third Party Products (OpenStack, ODL, RabbitMQ, ElasticSearch,Crystal Reports, ...).
Name | Description | Version | To fill out | To fill out | To fill out|
---|---|---|---|---|---|
Consul | Consul is a distributed, highly-available, and multi-datacenter aware tool for service discovery, configuration, and orchestration. | 0.8.4 | |||
OpenResty | OpenResty® is a full-fledged web platform that integrates the standard Nginx core, LuaJIT, many carefully written Lua libraries, lots of high quality 3rd-party Nginx modules, and most of their external dependencies. It is designed to help developers easily build scalable web applications, web services, and dynamic web gateways. |
In case there are specific dependencies (Centos 7 vs Ubuntu 16. Etc.) list them as well.
...