The art of assembling OPNFV Frank Brockners OPNFV TSC Member Distinguished Engineer, Cisco
Assembling a Platform for NFV Additions Enhancements
OPNFV – Systems Integration as an open community effort.
Serving different Audiences – RUN, TEST, CREATE Could I get a tested Could I get a NFV-I Does my new How can I get my patches foundation that avoids me foundation with common patch work at NFV-I integrated/ accepted re-starting all test-work UX to run any VNF on? system level? (OPNFV and Upstream)? with every new release? End-User Systems-Integrator/ Developer Developer Tester in active Upstream of new features not Projects yet in Upstream (NFV specific requirements)
Deployable NFV-Infrastructure with a common User-Experience to run VNFs
VOID
Towards a Common User Experience Theme: “Run my VNF for real” My Assemble a set of infrastructure to enable VNF real-world VNF deployments • Predictable performance – Deploy to bare metal “Black Box NFV - Infra” • Validated – Functional testing, multiple test environments • Repeatable – Components Automatic deployment Tools • 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. Focus : “Do One Thing And Do It Well – DOTADIW” Doug McIlroy
Arno Release: Bottom’s Up Approach to UX: Components Driven Do One Thing And Do It Well - DOTADIW Fixed Set of Components Fixed Set of Hardware (Mostly) Fixed Set of Tools (“ consume upstream ”) 6 Servers Compute Test >= 3 Control nodes, >= 2 Compute O/S Nova, KVM Tempest, Rally, Robot nodes, 1 Provisioning node Storage (“ jumphost ”) ( Centos 7, runs test Install O/S Glance, O/S Cinder infra and installer VM) Option: Either Fuel, or Network Foreman/Quickstack OpenDaylight, OVS Reference lab hosted by Infra the Linux Foundation RabbitMQ, Corosync, Pacemaker, Blade servers with 80G connectivity MySQL each (Cisco UCS-B), CIMC management See also: https://wiki.opnfv.org/get_started/get_started_system_state
Arno Service Release 1 (SR1) ... follows the same bottoms-up approach • Component-selection drives Minor version Minor version Flexibilized Platform Defintion updates & fixes updates • Enhanced UX achieved through different composition of components – Virtual deployments (using nested virtualization – 1 server) – Simple deployments (no HA – 4 servers) Arno SR1 improves Arno while keeping the platform composition approach – Deployments with HA (6 servers)
OPNFV – Number of Projects – When Arno was released
OPNFV – Number of Projects – As of Nov 11 th , 2015 Brahmaputra Arno 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 Tests/Samples Rules And Requirements + (“Law enforcement: (“Law”) Police/Court”) “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.
Defining a common user-experience for OPNFV: Tests and Gating Conditions Functional Tests Common UX definition : Performance Tests Definition of user-observable system behavior, common system requirements and common building Component Tests blocks … Tests Still a meritocracy: Deploy- Deploy- Deploy- Deploy- and and and and Healthy competition Config Config Config Config among deploy tools tool tool tool tool Tests to allow merit to win A B C … Hardware definition https://wiki.opnfv.org/testing https://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 Install/ Deploy • Arno established the key capabilites for continous Function- Docs Test deploy and testing • “Do one thing and do it well” Automation CI/CD Hardware Pipeline • Install/Deploy tools & System Definition – Bootstrap/GetStarted • CI/CD Pipeline – Octopus • Docs – OPNFVdocs • Testing - Functest • Hardware definition - Pharos
Systems Integration And Evolution as a Community Effort Automatic Deploy and Test – CI/CD Pipeline Choice of existing and new components, System state definition Test on Integrate & build* reference system(s) as a system Lab3 Install on Lab2 Lab1 reference system(s) *OPNFV currently composes builts from existing artifacts (e.g. RPMs) rather Lab1 Lab3 than builds from source Lab2
Build your own lab or choose an OPNFV community lab • OPNFV offers a set of community test labs • Compliant to OPNFV hardware reference spec • Individual hardware components for custom/advanced testing 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 upstream Swimming upstream Team-up to increase is hard is dangerous the likelihood to succeed
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
OPNFV Brahmaputra • Infra-Core and Features/Components Hardware – Infrastructure: Continue to Install Docs do-one-thing-and-do-it-well – Features/Components: Enable Choice CI/CD • Test Add additional components, Pipeline enhance individual components (complement/evolve upstream) 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 Horizontally Scale-out approach to new projects - All “well behaving projects” can be integrated Baseline Common Tools, Common User Experience How to deal with different test scenarios? Add new Subsidiarity: You want the test! You create the test case! You integrate tests? 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? Add new Subsidiarity: You want the component! You integrate it into the installers! features? You create the associated test cases.
Oswald von Pope Leo XIII Pope Pius XI Nell-Breuning 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 .” Pope Pius XI, Quadragesimo anno, 1931 https://en.wikipedia.org/wiki/Subsidiarity_(Catholicism)
Recommend
More recommend