sonic application extension…the sdk docker: • easy development without the need to build a core...

15

Upload: others

Post on 09-Oct-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: SONiC Application Extension…The SDK Docker: • Easy development without the need to build a core image • Contains all dev packages built with the core image The Distribution docker
Page 2: SONiC Application Extension…The SDK Docker: • Easy development without the need to build a core image • Contains all dev packages built with the core image The Distribution docker

SONiC Application Extension Infrastructure

Marian Pritsak, SW Architect, Mellanox

SONiC & Networking SW

Page 3: SONiC Application Extension…The SDK Docker: • Easy development without the need to build a core image • Contains all dev packages built with the core image The Distribution docker

Agenda

State of SONiC TodayCase for extendable SONiCHow SONiC will enable native appsGradual AcceptanceModular DevelopmentSeamless integrationDistributed Orchestration

Page 4: SONiC Application Extension…The SDK Docker: • Easy development without the need to build a core image • Contains all dev packages built with the core image The Distribution docker

State of SONiC Today

More and more features coming to SONiC• Some are specific to the use case• Some are specific to the platform• Some are experimental or not mature

enough

Thresh.

SONiC

IFA

PTP

INT

Telemetry

Load Balancer

MLAG

sFlow

IP multicast

MSTP

NAT

Page 5: SONiC Application Extension…The SDK Docker: • Easy development without the need to build a core image • Contains all dev packages built with the core image The Distribution docker

State of SONiC Today

• Troublesome to maintain• Prone to break• Not scalableThresh.

SONiC

IFA

PTP

INT

Telemetry

Load Balancer

MLAG

sFlow

IP multicast

MSTP

NAT

Thresh.

SONiC

IFA

PTP

INT

Telemetry

Load Balancer

MLAG

sFlow

IP multicast

MSTP

NAT

Page 6: SONiC Application Extension…The SDK Docker: • Easy development without the need to build a core image • Contains all dev packages built with the core image The Distribution docker

Case for extendable SONiC• Rock solid SONiC image with the capability

to be extended• Functionality added on demand• SONiC+ applications behave natively

SONiC

Telemetry

IP multicast

PTP

SONiC

Telemetry

SONiC

Telemetry

Load Balancer

Page 7: SONiC Application Extension…The SDK Docker: • Easy development without the need to build a core image • Contains all dev packages built with the core image The Distribution docker

How SONiC will enable native apps

Gradual Acceptance

Modular Development

Seamless Integration

Distributed Orchestration

Page 8: SONiC Application Extension…The SDK Docker: • Easy development without the need to build a core image • Contains all dev packages built with the core image The Distribution docker

Gradual AcceptanceHow Linux brings in new features:• Start as a module• Become popular• Become stable• Be accepted into the main codebase

SONiC community needs to follow the same guideline:• New “modules” shouldn’t be a part of the core image• New “modules” shouldn’t delay the SONiC release cycle• Even some of existing the SONiC features should become optional• The “modules” can become a part of the core image if the community

decides so

Gradual Acceptance

Modular Development

Seamless Integration

Distributed Orchestration

Page 9: SONiC Application Extension…The SDK Docker: • Easy development without the need to build a core image • Contains all dev packages built with the core image The Distribution docker

Modular DevelopmentThe concept of SONiC SDK:• The two docker images provided with each next SONiC releaseThe SDK Docker:• Easy development without the need to build a core image• Contains all dev packages built with the core imageThe Distribution docker• Contains all libraries without the dev components• Provides a base for distributing the SONiC application

Gradual Acceptance

Modular Development

Seamless Integration

Distributed Orchestration

SDK docker Distribution docker

Page 10: SONiC Application Extension…The SDK Docker: • Easy development without the need to build a core image • Contains all dev packages built with the core image The Distribution docker

Seamless integration

Steady Acceptance

Modular Development

Seamless Integration

Distributed Orchestration

Systemd service

Docker container definition

CLI

REST API

Warm reboot

Defaults

Autogenerated integration

Page 11: SONiC Application Extension…The SDK Docker: • Easy development without the need to build a core image • Contains all dev packages built with the core image The Distribution docker

Distributed Orchestration

Why a distributed orchestration is beneficial:• Enables the SONiC extensibility on the SAI layer• Failsafe – custom addons can fail, but the switch stays operational• Convenient for partial upgrades

Steady Acceptance

Modular Development

Seamless Integration

Distributed Orchestration

Page 12: SONiC Application Extension…The SDK Docker: • Easy development without the need to build a core image • Contains all dev packages built with the core image The Distribution docker

Distributed Orchestration

Gradual Acceptance

Modular Development

Seamless Integration

Distributed Orchestration

sonic-swss

Orchagent

Switch OIDPort OIDsMirror session OIDs

APP_DB

ASIC_DB

My-container

My-app

ACL (switch OID? Ports OIDs? Mirror session OIDs?)

???

Page 13: SONiC Application Extension…The SDK Docker: • Easy development without the need to build a core image • Contains all dev packages built with the core image The Distribution docker

Distributed Orchestration

Gradual Acceptance

Modular Development

Seamless Integration

Distributed Orchestration

sonic-swss

Orchagent

Switch OIDPort OIDsMirror session OIDs

APP_DB

ASIC_DB

My-container

My-app

ACL (switch OID? Ports OIDs? Mirror session OIDs?)

OID_LABEL_MAP

SWITCH_TABLE:switch|oid0x0000001PORT_TABLE:Ethernet0|oid:0x0000002MIRROR_TABLE:session1|oid:0x0000003MY_APP_ACL:rule1|oid:0x00000004

Page 14: SONiC Application Extension…The SDK Docker: • Easy development without the need to build a core image • Contains all dev packages built with the core image The Distribution docker

Call to Action

• A new development flow for the future scalable SONiC• Follow up on the SONiC Application WorkgroupMailing list: https://groups.google.com/d/forum/sonic-application-workgroup

Page 15: SONiC Application Extension…The SDK Docker: • Easy development without the need to build a core image • Contains all dev packages built with the core image The Distribution docker