...
- Model Driven: All ONAP modules should be model-driven, avoiding, as much as possible, new programming code. This allows for a catalog-based reusable repository for resources, network & services lifecycle management.
- Meta-data & Policy Driven Automation: ONAP should support high levels of automation at every phase of lifecycle management – e.g. onboard, design, deployment, instantiation, upgrade, monitoring, management, to end of life cycle. These automations should be policy driven, allowing users to dynamically control automation behavior via policy changes.
- Self-Service & User Focused: ONAP Platform should support a self-service model with a fully integrated user-friendly design studio to design all facets of lifecycle management (productresources / service design, operational automation, etc.). All interfaces and interactions with ONAP should be user friendly and easy to use.
- Integration Friendly: When an ONAP component relies on software outside of the ONAP project, the dependency on that external software should be designed to pluggable, API-oriented, supporting multiple possible implementations of that dependency.
- Multi-tenancy managed environment: The ONAP platform should support the ability manage multiple tenants and provide isolation for those tenants.Cloud Agnostic: ONAP platform should be able to run and support multiple cloud environments (simultaneously), including container environments like Kubernetes.
- Backward Compatibility: Every new ONAP platform release should support backward compatibility with every new release.
...
- Microservices: ONAP modules should be designed as microservices: service-based with clear, concise function addressed by each service with loose coupling.
- Shared Services: Where applicable, reusable components can be provided as shared services across ONAP components.
- CI / CD Support: ONAP is predicated on an accelerated lifecycle for network services. As such, agility is key in all aspects of ONAP: development of ONAP, designing of network services, and operation of both ONAP and network services. Principles of continuous integration and deployment should be followed by all modules of the ONAP platform.
- Integration Friendly / Standard API: Various service providers and users of ONAP should be able quickly integrate ONAP with their existing OSS / BSS systems. An open, standards-based architecture with well-defined APIs fosters interoperability both within ONAP and across complementary projects and applications
- Software Layered Architecture Abstraction: Define ONAP as a layered architecture similar to the OSI model for the internet. Define abstract interfaces between the different layers to support information and request flowing between the layers in an implementation-independent manner. Such a layered architecture provides flexibility to swap technology or replace an individual ONAP module, if desired.
4. ONAP Deployment / resiliency / scalability Support:
- Cloud Environment Support: All components in ONAP should be virtualized, preferably with support for both virtual machines and containers. All components should be software-based with no requirement on a specific hardware platform.
- Scalability: ONAP must be able to manage a small set of PNF / VNFs to highly distributed, very large network and service environment deployed across the globe. It should be possible to deploy multiple instances of ONAP and create a network of inter-working ONAP instances.
- Availability & Resiliency: ONAP must support various deployment and configuration options to meet varying availability and resiliency needs of various service providers.
- Security: All ONAP components should keep security considerations at the fore-front of all architectural decisions. Security should be a pervasive underlying theme in all aspects of ONAP. The ONAP architecture should have a flexible security framework, allowing ONAP platform users to meet their security requirements.
- Platform Plumbing: Identifies areas of commonality and implements reusable solutions that can be used to support generic needs such as (a) resiliency and traffic control, (b) observability, (c) security, and (d) data persistence, alleviating the burden of this on the module developers, and speeding up the process accordingly.
Mind map diagram above maintained in ONAP Architecture Principles and Notes.xmind
...