Introduction and Purpose of the REC Architecture

Akraino Radio Edge Cloud (REC) provides an appliance tuned to support the O-RAN Alliance and O-RAN Software Community's Radio Access Network Intelligent Controller (RIC) and is the first example of the Telco Appliance blueprint family which provides a reusable set of modules that will be used to create sibling blueprints for other purpose tuned appliances.

High level architectural view:

Objectives

Components of Radio Edge Cloud

A detailed listing of the git code repositories hosted on the Akraino Gerrit server is available at PCEI Gerrit Code Repository Overview.


Components Used in Creation of the ISO Image

  • Build-tools: Based on OpenStack Disk Image Builder
  • Dracut: Tool for building ISO images for CentOS
  • RPM Builder: Common code for creating RPM packages
  • Specs: the build specification for each RPM package
  • Dockerfiles: the build specifications for each Docker container
  • Unit files: the systemd configuration for starting/stopping services
  • Ansible playbooks: Configuration of all the various components
  • Test automation framework


Components Which Provide Additional REC Functionality

  • L3 Deployer: an OpenStack Ironic-based hardware manager framework
  • Hardware Detector: Used to adapt L3 deployer to specific hardware
  • Virtual installer: tooling to deploy REC on a VM (for testing only)
  • North-bound REST API framework: For creating/extending REC APIs
  • CLI interface
  • AAA server to manage cloud infrastructure users and their roles
  • Configuration management
  • Container image registry
  • Security hardening configuration
  • Remote Installer: Docker image used by Regional Controller to launch deployer


Most Notable Upstream Components That Are Packaged Into REC with Configuration and Tuning:

  • Kubernetes
  • Docker
  • CPU-Pooler: for enhanced CPU management in K8s
  • DANM: for TelCo grade network management in K8s
  • CNI: to provision specific network interfaces for containers
  • SR-IOV CNI and Device Plugin: to provision SR-IOV Virtual Functions for containers
  • Flannel: a CNI backend, implementing an overlay management network for containers 
  • Helm: K8s package manager
  • etcd: a distributed key-value store
  • kubedns: K8s in-built service discovery
  • Fluentd: Log aggregation and forwarding service
  • Elasticsearch: Log collection, store, and analysis service
  • Prometheus: Performance measurement service
  • OpenStack Swift: Used for container image storage
  • Ceph: Distributed block storage
  • NTP: Network Time Protocol
  • MariaDB, Galera: Database for OpenStack components
  • RabbitMQ: Message Queue for Openstack components
  • Python Peewee: A Python ORM
  • Redis: high-available configuration data store
  • The static local provisioner is included as a beta/preview feature https://github.com/kubernetes-sigs/sig-storage-local-static-provisioner
  • The dynamic local provisioner is included as a beta/preview feature https://github.com/nokia/dynamic-local-pv-provisioner