33
“The DNA of OPNFV” Frank Brockners Distinguished Engineer, Cisco

The DNA of OPNFV

Embed Size (px)

Citation preview

“The DNA of OPNFV”

Frank Brockners

Distinguished Engineer, Cisco

Composing a Platform for NFV

Enhancements

Additions

OPNFV –

Systems Integration as an open community effort.

Serving different Audiences – RUN, TEST, CREATE

End-User Developerin active Upstream

Projects

Does my newpatch work at NFV-I

system level?

Developerof new features not

yet in Upstream(NFV specific

requirements)

How can I get my patches integrated/ accepted

(OPNFV and Upstream)?

Systems-Integrator/Tester

Could I get a tested foundation that avoids me

re-starting all test-work with every new release?

Could I get a NFV-I foundation with common

UX to run any VNF on?

Deployable NFV-Infrastructure

with a common User-Experience

to run VNFs

Towards a Common User Experience

Tools

Components

MyVNF

“Black Box NFV-Infra”

Theme: “Run my VNF for real” Assemble a set of infrastructure to enable real-world VNF deployments

• Predictable performance –Deploy to bare metal

• Validated –Functional testing, multiple test environments

• Repeatable –Automatic deployment

• Carrier-class –High availability

Hardware

Clear-cut components: “This is the Unix philosophy:

Write programs that do one thing and do it well. Write

programs to work together.” Build with lego-blocks instead

of using clay.

Doug McIlroy

Focus: “Do One Thing And Do It Well – DOTADIW”

Arno Release: Bottom’s Up Approach to UX: Components Driven

Do One Thing And Do It Well - DOTADIW

Fixed Set of Hardware Fixed Set of Components(“consume upstream”)

(Mostly) Fixed Set of Tools

6 Servers>= 3 Control nodes, >= 2 Compute nodes, 1 Provisioning node (“jumphost”) (Centos 7, runs test infra and installer VM)

Reference lab hosted by the Linux FoundationBlade servers with 80G connectivity each (Cisco UCS-B), CIMC management

TestTempest, Rally, Robot

InstallOption: Either Fuel, or Foreman/Quickstack

ComputeO/S Nova, KVM

StorageO/S Glance, O/S Cinder

NetworkOpenDaylight, OVS

InfraRabbitMQ, Corosync, Pacemaker, MySQL

See also: https://wiki.opnfv.org/get_started/get_started_system_state

• Component-selection drives

Platform Defintion

• Enhanced UX achieved through

different composition of

components

– Virtual deployments (using nested

virtualization – 1 server)

– Simple deployments

(no HA – 4 servers)

– Deployments with HA (6 servers)

Arno Service Release 1 (SR1)

... follows the same bottoms-up approach

FlexibilizedMinor version

updatesMinor version

updates & fixes

Arno SR1 improves Arno while keepingthe platform composition approach

Example:

Create a testing environment

https://wiki.opnfv.org/get_started_experiment1

Example of a deployment tool (Foreman/Quickstack):

Deployment tools are a composition of tools and

scripts/manifests

• Vagrant - Create and configure lightweight, reproducible, and portable

development environments.

• VirtualBox - A "hosted" hypervisor used to host the Foreman node.

• Khaleesi - An Ansible framework responsible kicking off builds and

tests

• Foreman - A bare-metal/virtual host management tool

• OPNFV/Genesis - Puppet modules for invoking QuickStack

• QuickStack - Puppet modules for installing/configuring OpenStack +

OpenDaylight

• OpenStack Puppet Modules (OPM) - Used to install OpenStack

• OpenDaylight Puppet Module - Used to install OpenDaylight

OPNFV – Number of Projects – When Arno was released

0

5

10

15

20

25

30

35

40

45

50

25-Nov-14 25-Dec-14 25-Jan-15 25-Feb-15 25-Mar-15 25-Apr-15 25-May-15 25-Jun-15 25-Jul-15 25-Aug-15

Total Release 1

June 4th, 2015: 28 Projects in total in OPNFV5 Projects participated in Arno

Arno

OPNFV – Number of Projects – As of Oct 12th, 2015

0

5

10

15

20

25

30

35

40

45

50

25-Nov-14 25-Dec-14 25-Jan-15 25-Feb-15 25-Mar-15 25-Apr-15 25-May-15 25-Jun-15 25-Jul-15 25-Aug-15

Total Release 2 Release 1

47 Project in total in OPNFV5 Projects participated in Arno38 Projects plan to participate in Brahmaputra

Arno

Brahmaputra

See also: https://wiki.opnfv.org/releases/brahmaputra/release_plan#participating_projects

Do one thing and do it well... for the User

Top-down UX definition to complement bottoms-up method

“Define” and “Observe”: Combining…

– “Observer approach” (black box: test driven definition) with

– “System level requirements” (white box: requirements and building-block driven definition)

Common user-observable behavior achieved through

– Description of user-observable behavior (requirements, common capabilities). Definition of common building blocks. Comparable to a “law”. Example: “System to support IPv6-only transport network”.

– System tests to verify existence of desired user-observable behavior. Comparable to test/check-points/samples that executive powers (“court & police”) do. Testing only observes a portion of the entire system behavior and can never fully describe the entire system behavior: Test samples can be defined to check IPv6 support for a specific set of scenarios.

Rules And Requirements(“Law”)

Tests/Samples(“Law enforcement:

Police/Court)+

Defining a common user-experience for OPNFV:

Tests and Gating Conditions

Common UX definition:Definition of user-observable

system behavior, common system requirements and common building

blocks

Deploy-and

Configtool

A

Deploy-and

Configtool

B

Deploy-and

Configtool

C

Deploy-and

Configtool

Functional Tests

Performance Tests

Component Tests

… Tests

Tests

Hardware definition

Still a meritocracy:Healthy competitionamong deploy toolsto allow merit to win

https://wiki.opnfv.org/testinghttps://wiki.opnfv.org/genesis

Project Genesis: Consolidate and Harmonize the UX

• Define common requirements that all installer projects have to follow

– For Brahmaputra those are: Apex, Compass4NFV, Fuel, JOID

• Genesis project is a democracy

– All installer projects are equally represented in Genesis

– Majority votes in case there is no consensus

See also: https://wiki.opnfv.org/genesis

Meritocracy with democratic elements

• OPNFV technical decision making follows standard meritocracy model

• Genesis consolidates requirements for UX across deployment tools: Define a baseline

• Installers can continue to differentiate (not on outcome, but on process like e.g. ease of use, etc.)

– Only baseline “choices” – continue to allow for “choosing” of non-UX impacting capabilities.

– Installers can install different (and eventually competing) components

Developer of component(s) and

Systems Integrator:

Test components at system level

in a variety of hardware setups

OPNFV Arno Core Infrastructure

• Arno established the key capabilites for continous deploy and testing

• “Do one thing and do it well”

• Install/Deploy tools & System Definition – Bootstrap/GetStarted

• CI/CD Pipeline – Octopus

• Docs – OPNFVdocs

• Testing - Functest

• Hardware definition - Pharos

Install/Deploy

Docs Function-Test

AutomationCI/CD

PipelineHardware

Systems Integration And Evolution as a Community Effort

Automatic Deploy and Test – CI/CD Pipeline

Install on reference system(s)

Test on reference system(s)

Lab1Lab2

Lab3

Lab1Lab2

Lab3

Integrate & build*as a system

*OPNFV currently composes builts fromexisting artifacts (e.g. RPMs) ratherthan builds from source

Choice of existing and new components,System state definition

Synchronize your Tool Chain with OPNFV:

Continuously deploy OPNFV to your lab

• Create an

OPNFV

compliant lab

• Hook-up your

local Jenkins to

OPNFV

• Continuously

deploy to your

lab

Further details: https://www.opnfv.org/sites/opnfv/files/release/opnfv-jenkins-slave-connection.arno.2015.1.0.pdfCurrent Jenkins slaves: https://build.opnfv.org/ci/computer/

OPNFV Jenkins master

Your Lab

Community Lab A

Community Lab ..

Jenkins slaveOPNFV’s slave.jar

Jenkins slaveOPNFV’s slave.jar

Jenkins slaveOPNFV’s slave.jar

• OPNFV offers a set of community test labs

• Compliant to OPNFV hardware reference spec

• Individual hardware components for

custom/advanced testing

Build your own lab or choose an OPNFV community lab

See also: https://wiki.opnfv.org/pharos

https://www.opnfv.org/sites/opnfv/files/release/pharos-spec.arno.2015.1.0.pdf

Developer of new/evolved components:

Get components and associated

requirements recognized by Upstream

Projects

Private Features and Tests in Arno...

... weren’t really in scope

• “Arno consumed Upstream” – OPNFV purely “composed”

• Already Arno release time, there were already a lot of projects

that were working on additional things, and the number

increased since then...

For Brahmaputra, there are a lot of projects which compile

requirements and perform development – focused on upstream...

OPNFV is very open to new projects...

If your project meet the following, then your project can likely have a life in OPNFV...

• Open Source

• Open Community

• Open Development

• Open Design

• Scope: NFV-I and VIM

Building/evolving features means contributing upstream

Team Up To Drive Required Change Upstream

Swimming upstreamis hard

Team-up to increasethe likelyhood to succeed

Swimming upstreamis dangerous

Brahmaputra: Enable Choice

• More infrastructure tool projects (e.g. installers, etc.)

• More test-tools and test projects

• More component projects (e.g. SDN controllers)

• More feature/component evolution projects

0

5

10

15

20

25

30

35

40

Infra Test Feature Component

OPNFV Brahmaputra

• Core and Context

– Core Infrastructure: Continue to

do-one-thing-and-do-it-well

– Context: Enable Choice

• Add additional components,

enhance individual components

(complement/evolve upstream)

TestCI/CDPipeline

InstallDocs

Hardware

How to deal with choice and an exponentially growing set of combinations while allowing OPNFV to scale horizontally?

http://www.oxforddictionaries.com/us/definition/learner/subsidiarity

Enable Choice: Scale OPNFV HorizontallyScale-out approach to new projects - All “well behaving projects” can be integrated

Baseline

Add new tests?

Add newfeatures?

Common Tools, Common User Experience

How to deal with different test scenarios?

Subsidiarity: You want the test! You create the test case! You integrate

the test case into the OPNFV test tools! You make sure that the

hardware to run the additional test cases exist.

How to deal with new components?

Subsidiarity: You want the component! You integrate it into the installers!

You create the associated test cases.

Subsidiarity: “It is a fundamental principle of social philosophy,

fixed and unchangeable, that one should not withdraw from

individuals and commit to the community what they can

accomplish by their own enterprise and industry.”

Oswald von

Nell-BreuningPope Pius XIPope Leo XIII

Pope Pius XI, Quadragesimo anno, 1931

https://en.wikipedia.org/wiki/Subsidiarity_(Catholicism)

Focus & ComponentizeDo one thing and do it well

MeritocracyAllow for healthy competition

DemocracyAchieve consistent UX definition

SubsidiarityScale horizontally

OpenCommunity

OpenSource

Open Development

OpenDesign

NFV-I & VIMScope

Continous Systems Integration as an Open Community Effort

Thank you

Picture References

• Slide 7:

– Doug McIroy http://www.computerhope.com/people/malcolm_mcilroy.htm

• Slide 25:

– Salmon (left): http://www.johnfarkas.com/Creating_Culture/Blog/Entries/2008/10/10_Blueprint_for_a_Personal_Revolution.html

– Salmon (middle): https://thesalmonlife.wordpress.com/

– Salmon (right): http://paigehunter.com/5-reasons-run-entrepreneur/

• Slide 30:

– Oswald von Nell-Breuning: http://www.rheinische-geschichte.lvr.de/persoenlichkeiten/N/Seiten/OswaldvonNell-Breuning.aspx?print=true

– Pope Leo XIII: http://professorjohnston.com/pope-leo-xiii-on-self-conquest/

– Pope Pius XI: http://wdtprs.com/blog/2012/11/podcazt-133-reparation-for-sin-pius-xis-miserentissimus-redemptor/