Introduction and Purpose of the SEBA Architecture
SEBA Blueprint is a member of the Telco Appliance blueprint family and provides an appliance tuned to support the ONF SDN-enabled Broadband Access (SEBA) platform. The SEBA blueprint will utilize a reusable set of modules introduced by the first example of the Telco Appliance blueprint family, Radio Edge Cloud (REC). The SEBA blueprint provides the following on designated servers:
- Installation of host OS
- Configuration of network
- Installation/setup of Kubernetes cluster
- Installation/testing/validation for SEBA components (VOLTHA, NEM, ONOS)
- Built from reusable components of the “Telco Appliance” blueprint family
- Automated Continuous Deployment pipeline testing the full software stack (bottom to top, from firmware up to and including application)
- Integration with Regional Controller (Akraino Feature Project) for “zero touch” deployment of SEBA to edge sites
- Deployability to multiple hardware models
High level architectural view: (NEED AN EDITABLE VERSION TO UPDATE)
Objectives
- Fully automated simultaneous deployment and testing on multiple hardware platforms
- Blueprint defines exact hardware configurations
- Each hardware variant is deployed into a Continuous Deployment system that runs the full test suite
- Appliance model automates the installation, configuration and testing of:
- Firmware and/or BIOS/UEFI
- Base Operating System
- Components for management of containers, performance, fault, logging, networking, CPU
- Application:
- RIC is the application running on the REC appliance
- Other appliances will be created by combining other applications with the same underlying components to create additional blueprints
- Fully automated testing includes running full application test suite
Components of Radio Edge Cloud
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
- A distributed lock management framework
- Remote Installer: Docker image used by Regional Controller to launch deployer
Upstream Components That Are Packaged Into REC with Configuration and Tuning:
- CPU Pooler: Open Source Nokia project for K8s CPU management
- DANM: Open Source Nokia project for K8s network management
- Flannel: K8s networking component
- Helm: K8s package manager
- etcd: K8s distributed key-value store
- kubedns: K8s DNS
- Kubernetes
- Fluentd: Logging service
- Elasticsearch: Logging 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