If ( Network == Server ) { Magic happens }
Attilla de Groot
Sr. Systems Engineer, HCIE #3494 | Cumulus Networks
1 Cumulus Linux Architecture Space Network Orchestration Automation Monitoring Routing User User Suite switchd Bridging VXLAN Third Party/Customer Applications Switch HAL
ASIC Routing ARP Bridge Ethernet VxLAN Driver Tables Table Table Interfaces Linux Kernel
CPU, RAM, Flash, etc. Switch Silicon
Front Panel Ports 2 Network Orchestration Software defining your network
How to do Orchestration
Linux DevOPS tools § Ansible, Puppet, Chef, Saltstack
Orchestration § Infrastructure as code § Telemetry data § Continuous integration
3 Who recently made a network change?
4 Did anyone had a change without issues?
5 What is CI / CD
Continuous Integration (CI) Continuous Deployment (CD)
A system where all changes are Built on a CI system where changes automatically tested before being are automatically pushed to production pushed to production or seen by after tests past, often multiple times others per day
Why aren’t you Not for doing this? everyone
6 Infrastructure as Code Build tools
Implementing CI/CD
Build Tool? § The digital duct tape
Common Tools § Gitlab § Jenkins § Travis CI § Atlassian Bamboo GitLab
7 Infrastructure as Code Pipeline
Git change Successful push validation
Infrastructure 1.1
Infrastructure Build tool pipeline 1.0
Infrastructure 1.0
Automated Validation Testing failed 8 Automated testing Testing infrastructure
Traditional networking Cumulus Linux
Testing environment Testing environment § Physical lab § Physical lab? § Virtualization environment? § Cumulus VX DevOPS integration? DevOPS integration! § Proprietary modules § Native modules § Vendor tools § Vagrant, Virtualbox, Libvirt
Infrastructure validation Infrastructure validation § Vendor APIs? § Home grown tools (Python?) § Stackstorm § Cumulus NetQ
9 Automated testing Cumulus VX
Linux network virtualization
Cumulus VX § Linux networking § Familiarizing
Copying production § Virtualbox, VMware, Libvirt § Vagrant § Topology Generator
10 Automated testing Validation
Linting tests Unit and System tests
Code validation Validating the infrastructure § Test Yaml / Jinja § Unit tests are limited § Enfore a style § Combining Unit and System tests § Easy troubleshooting Testing multiple verticals § Does my BGP session work? § Are routes being learned? AND • Is my application redundant? • Does my application still work?
11 Automated testing Cumulus NetQ
Design Provision Automate Validate Troubleshoot Analyze
Day 0 to day 1 Day 2 and on
Cumulus Linux Cumulus NetQ Open Network Operating System Telemetry-Based Fabric validation application
Open OS foundation of network Validate changes flexibility & choice of apps before & during production rollout
Disaggregation of SW & HW Precise fault location alerts supply chain freedom for rapid problem resolution
Speed of provisioning workloads Time-machine diagnosis & troubleshooting with automation at scale
12 Automated testing NetQ Agent
NetQ Agent NetQ Agent Subscribes to Linux Kernel Events § Interface State BGP mLAG VxLAN § MTU § Routes learned § Macs learned § (M)LAG state Linux Kernel Polls routing Information § OSPF, PIM, BGP, EVPN § Neighbor state § Error conditions
13 Automated testing Fabric state testing over time
NetQ Agent New Route Added
OSPF Neighbor Change BGP mLAG VxLAN
MAC Address Removed
Linux Kernel
14 15 Automated testing Gitlab testing
Test results returned
Checks for updates
GitLab
Pulls code update and runs tests git push
Developer Build Server
16 Automated testing Gitlab testing
stages: - staging Gitlab Pipeline - production staging: tags: - staging before_script: Stages, before_script, after_script - cd automation § Stages run in order on success stage: staging script: § *_script run at each stage - 'ansible-playbook deploy.yml' - sleep 25 Script defines testing steps - netq check bgp - netq check mtu § Git repository is cloned on build server - netq check vxlan
§ Each script step is run in environment production: § If step fails, validation fails tags: - production § Simple bash scripts can be added before_script: - cd automation stage: production Before/After stages for setup / when: manual cleanup script: - 'ansible-playbook deploy.yml' § vagrant up / vagrant destroy -f - sleep 10 - netq check bgp 17 CI/CD Demo
18 Join the Linux Networking Revolution
Linux 101 Linux Networking Linux Resource eBook Guides Center
www.cumulusnetworks.com/lp/linux-networking-resources/
QUESTIONS?
19 Join the Cumulus Networks Community!
Get involved in the conversation: § Join the community & share your Cumulus Linux tips and experiences: https://getsatisfaction.cumulusnetworks.com/cumulus § Chat with others on our Slack channel: https://cumulusnetworks.slack.com/ § Keep on learning: https://community.cumulusnetworks.com Download Cumulus VX to work on proofs of concept, test your automation and continue practicing: § https://cumulusnetworks.com/cumulus-vx/ Learn at your own pace with demos using our reference topology: § https://github.com/CumulusNetworks/cldemo-vagrant § https://cumulusnetworks.com/products/cumulus-in-the-cloud/
20 Thank you!
21