VOLTHA Architecture - Open Networking Foundation · 2018-12-18 · Kafka. Kafka. GRPC. High Level...
Transcript of VOLTHA Architecture - Open Networking Foundation · 2018-12-18 · Kafka. Kafka. GRPC. High Level...
Copyright © Ciena Corporation 2016. All rights reserved. Confidential & Proprietary.
VOLTHA Architecture
Sergio Slobodrian
Wednesday December 5, 2018
V2.0
Copyright © Ciena Corporation 2016. All rights reserved. Confidential & Proprietary. 2
Contents
Per μService Architectures
Call flows through the system
High Level Architecture
Kubernetes Integration
High Availability Model
Kafka Adapter Messaging Model
Copyright © Ciena Corporation 2016. All rights reserved. Confidential & Proprietary. 3
High Level Architecture
Subhead Information
Copyright © Ciena Corporation 2016. All rights reserved. Confidential & Proprietary. 4
Kubernetes
Kafka
Kafka
GRPC
High Level Architecture
CLI OFagent RESTagent NetconfNorthbound endpoints
Affinity routing reverse proxy
GRPC
Voltha coreDevice Handler
Device Handler
Device Handler
Device Handler
Device Handler
Device Handler
Read Only
Read Only
Read Only
afrouter
Device Profiles
Message Bus
Adapters Ponsim SimOLT OLTA ONUX OLTB ONUY ONUZ
afrouterd
KafkaKafka
KV Store
volthaetcd
Copyright © Ciena Corporation 2016. All rights reserved. Confidential & Proprietary. 5
High availability model
Subhead Information
Copyright © Ciena Corporation 2016. All rights reserved. Confidential & Proprietary. 6
High Availability Model
Copyright © Ciena Corporation 2016. All rights reserved. Confidential & Proprietary. 7
High Availability Model
Copyright © Ciena Corporation 2016. All rights reserved. Confidential & Proprietary. 8
High Availability Model
Copyright © Ciena Corporation 2016. All rights reserved. Confidential & Proprietary. 9
High Availability Model
Copyright © Ciena Corporation 2016. All rights reserved. Confidential & Proprietary. 10
High Availability Model
Copyright © Ciena Corporation 2016. All rights reserved. Confidential & Proprietary. 11
High Availability Model
Copyright © Ciena Corporation 2016. All rights reserved. Confidential & Proprietary. 12
High Availability Model
Copyright © Ciena Corporation 2016. All rights reserved. Confidential & Proprietary. 13
High Availability Model: Affinity Router Structure
Servers
Routers
Backend Clusters
Server: name, addr, port, routers•••
• A server may reference multiple routers• Routers are keyed by proto package &
service• Only one router per package/service can
be defined per server
Router: name, package, service, routes
•••
Route: name, type, methods …•••
• Multiple routes exist per router.• Route selection is based on gRPC method.• Route types include affinity, round robin,
and binding.• Affinity routes use a proto message value
as a backend selector key. Initial binding direction (north or south) is selectable by RPC.
Cluster: nameBackend: name, type, association …
••••••
Connection: name, addr, port•••
• Each cluster can have multiple backends the routing strategy determines which in the backend is used when
• Each backed can have multiple connections. The association determines how identical messages can be identified
Copyright © Ciena Corporation 2016. All rights reserved. Confidential & Proprietary. 14
High Availability Model
Copyright © Ciena Corporation 2016. All rights reserved. Confidential & Proprietary. 15
High Availability Model
DeviceID BackendCluster
DDD129827 CPx
CCC839032 CPy
XZX187160 CPz
Package Service
voltha VolthaService
Copyright © Ciena Corporation 2016. All rights reserved. Confidential & Proprietary. 16
High Availability Model
DeviceID BackendCluster
DDD129827 CPx
CCC839032 CPy
XZX187160 CPz
Package Service
voltha VolthaService
Copyright © Ciena Corporation 2016. All rights reserved. Confidential & Proprietary. 17
High Availability ModelDeviceID BackendCluster
DDD129827 CPx
CCC839032 CPy
XZX187160 CPz
Package Service
voltha VolthaService
Copyright © Ciena Corporation 2016. All rights reserved. Confidential & Proprietary. 18
High Availability ModelDeviceID BackendCluster
DDD129827 CPx
CCC839032 CPy
XZX187160 CPz
Package Service
voltha VolthaService
Copyright © Ciena Corporation 2016. All rights reserved. Confidential & Proprietary. 19
High Availability ModelDeviceID BackendCluster
DDD129827 CPx
CCC839032 CPy
XZX187160 CPz
Package Service
voltha VolthaService
Copyright © Ciena Corporation 2016. All rights reserved. Confidential & Proprietary. 20
High Availability ModelDeviceID BackendCluster
DDD129827 CPx
CCC839032 CPy
XZX187160 CPz
Package Service
voltha VolthaService
Copyright © Ciena Corporation 2016. All rights reserved. Confidential & Proprietary. 21
Kafka Adapter Messaging Model
Subhead Information
Copyright © Ciena Corporation 2016. All rights reserved. Confidential & Proprietary. 22
Kafka Adapter Message Model
A B C D
Copyright © Ciena Corporation 2016. All rights reserved. Confidential & Proprietary. 23
Per μService Architecture
Subhead Information
Copyright © Ciena Corporation 2016. All rights reserved. Confidential & Proprietary. 24
Affinity Router μService
GRPC Server(s)
GRPC Client(s)
Backend Connection(s)
Backend(s)
Backend Cluster(s)
Router(s)
Server Handler(s)
Backend Cluster Handler(s)
Backend Handler(s)
GRPC Config Server
Config &Proto descriptor
Config P
roxy
Config Handler
Stream Handler(s)
Codec
Config Data Control Data & Control
Copyright © Ciena Corporation 2016. All rights reserved. Confidential & Proprietary. 25
Affinity Router Daemon μService
Kubernetes A
PI C
lient
Device Handler μService Client
Polling Handler
Backend Allocator
Afrouter μService Config Client
Affinity Handler
Copyright © Ciena Corporation 2016. All rights reserved. Confidential & Proprietary. 26
Device Handler μService
gRPC Server – Northbound Request
Transaction Handler
API Handler
voltha etcd Adapter Proxy
Inter Container Kafka Messaging Proxy
Kafka Client
Flow Decomposer
Adapter Request Handler
Logical Device Agent
Device Agent
KV
Client
Kafka Adapter Message Bus
KV
Shim
Device Manager Logical Device Manager
Device State MachineData M
odel
Copyright © Ciena Corporation 2016. All rights reserved. Confidential & Proprietary. 27
Read Only μService
API Handler
KV
Client
Data Cache Handler
voltha etcd
gRPC Server – Northbound Request
Data M
odel
Copyright © Ciena Corporation 2016. All rights reserved. Confidential & Proprietary. 28
Adapter ShimsDevice Handler
Device Handler
Device Handler
Inter-Container Kafka Messaging Proxy
Kafka Client
Adapter ProxyCore ProxyCore Request Handler
iAdapter Abstract Class
OLT Adapter Core Features
KV
Client
KV
Shim
OLTDevices
Core Requests
Inter-Adapter Requests
Kafka
Inter-Container Kafka Messaging Proxy
Kafka Client
Adapter ProxyCore ProxyCore Request Handler
iAdapter Abstract Class
ONU Adapter Core Features
KV
Client
KV
Shim
Core Requests
Inter-Adapter Requests
Copyright © Ciena Corporation 2016. All rights reserved. Confidential & Proprietary. 29
Transaction Flows Through The System
Subhead Information
Copyright © Ciena Corporation 2016. All rights reserved. Confidential & Proprietary. 30
Modify Request
Affinity Router
Device Handler
OLT Adapter
Envoy
OLT ONU
Kafka
GRPCGRPC
REST
ONU Adapter
Server
Select router based on package and service; query the router for the backend cluster
RouterProvides both backend clusters and backends based on GRPC call
set affinity as required
Backend ClusterQuery the router for the backend based on the method and selector
field value
BackendOpen the south and
northbound streams to the serv er, generate the serial
number, and start monitoring.
StreamStreamSend to serv er
until EOF.
StreamStreamSend to client
until EOF.To the other
active backend
Transaction Handler
etcd
Secure transaction ownership. Lock serial
number in etcd.
Request Processing
Proxy Handler
Messaging Proxy and Client
Copyright © Ciena Corporation 2016. All rights reserved. Confidential & Proprietary. 31
Read Request
Affinity Router
Read Only Service
Envoy
GRPCGRPC
REST
Server
Select router based on package and service; query the router for the backend cluster
RouterProvides both backend clusters and backends based on GRPC call.
Reads use round-robin
Backend Cluster
Query the router for the backend based on the a round-robin algorithm
BackendOpen the south and
northbound streams to the serv er, generate the serial
number, and start monitoring.
StreamSend to serv er
until EOF.
StreamSend to client
until EOF.
etcd
Read Processing
Load the requested data from etcd
Copyright © Ciena Corporation 2016. All rights reserved. Confidential & Proprietary. 32
Control Plane Packet Flow Init
Affinity Router
Device Handler
OLT Adapter
OLT ONU
Kafka
GRPC
ONU Adapter
Server
Select router based on package and service; query the router for the backend cluster
Router
Provides both backend clusters and backends based on GRPC call
Backend Cluster
Query the router for the backend and bind to it
permanently
BackendOpen the south and
northbound streams to the serv er, generate the serial
number, and start monitoring.
StreamStreamSend to serv er
until EOF.
StreamStreamSend to client
until EOF.To the other
passive backend
Transaction Handler
etcd
The transaction handler is a noop for control plane flows
Request Processing
Proxy Handler
Messaging Proxy and Client
OFAgent
Copyright © Ciena Corporation 2016. All rights reserved. Confidential & Proprietary. 33
Kubernetes Integration
Subhead Information
Copyright © Ciena Corporation 2016. All rights reserved. Confidential & Proprietary. 34
K8s Integration
35Copyright © Ciena Corporation 2016. All rights reserved. Confidential & Proprietary.