4. Agile: Moving At the Speed Your Business Needs
▪… isn’t flying a thousand miles an hour, or a
million, or flying at the speed of light. … Perfect
speed, my son, is being there.”
4
5. Agility Translated Into Practice
▪How do you build predictable networks ?
▪How do you make changes predictably ?
▪How do you recover from errors without
affecting business ?
5
6. Agile Me If You Can
▪Fail without serious consequences
▪Architect networks with fine-grained failure domain
▪Recover quickly
▪Revert to good configuration
▪Troubleshoot offline without keeping production
network down
▪Catch errors without the pressure
6
8. cumulusnetworks.com 8
Traditional Network Deployment
Physical
Install
Ordering / Delivery
Manually
Configure
Production
Weeks
Traditional Deployment
Days/Weeks
Test & Verify
9. cumulusnetworks.com 9
Accelerating Network Deployment with Automation
Physical
Install
Ordering / Delivery
Manually
Configure
Production
Weeks
Traditional Deployment
Days/Weeks
Test & Verify
Test & Verify
Automation
Assisted
Deployment
Physica
l
Install
Production
Modern Deployment
Physical
Install
Ordering / Delivery
MinutesWeeks
Unused Time...
10. cumulusnetworks.com 10
Accelerating Deployment with VX and Automation
Physical
Install
Ordering / Delivery
Manually
Configure
Production
Weeks
Traditional Deployment
Days/Weeks
Test & Verify
Automation
Assisted
Deployment
Physica
l
Install
Production
Agile Deployment
Physical
InstallOrdering / Delivery
Test & VerifySimulate
MinutesWeeks
11. cumulusnetworks.com 11
Testing Underpins Agility
What prevents us from testing in the network?
● Budget
○ Hardware is expensive
● Network Size
○ Large customers often get cheap/free POC
● Time
○ Wiring of physical gear
○ Building configurations
○ Setup of Test Tools
○ Teams are lean
12. cumulusnetworks.com 12
Leveraging Simulation: Where does it make sense?
Keeping Costs Down
Testing Control Plane
Failure Scenarios
Network OS Installation
Deployment of Automation
Hardware Scale Limits
Forwarding Performance
Simulation is GREAT for Simulation is not so great for
13. cumulusnetworks.com 13
Leveraging Simulation: Where does it make sense?
Don’t Test Just Routers/Switches
• Integrate Servers to Test the Whole Stack
• Install your Business Apps
• Evaluate Network/Application Interactions
• Firewall/Loadbalancers
Level of Detail is AWESOME
• Pxeboot your Virtual Servers over your Virtual Network
• Run Routing on the Host On your Servers and Advertise
Your Containers/VMs
Simulate “All the Things”…
14. cumulusnetworks.com 14
Leveraging Simulation: Where does it make sense?
Automation
Assisted
Deployment
Physical
Install
Production
Physical
Install
Ordering / Delivery
Test &
Verify
Simulate
Initial Setup
15. cumulusnetworks.com 15
Leveraging Simulation: Where does it make sense?
Automation
Assisted
Deployment
Physica
l
Install
Production
Physical
Install
Ordering / Delivery
Test &
Verify
Simulate
Test &
Verify
Simulate
Automation
Assisted
Deployment
Production
Change Control
See this in action: https://gitlab.com/plumbis/interop-2016
Initial Setup
18. cumulusnetworks.com 18
Tool Overview: VirtualBox
● Free/Open Source
● Cross Platform
(Windows/Linux/Mac Support)
● Drivable with GUI & CLI
● Ideal for Small Scale Use
● Limited to 36 Interfaces
Tool Type: Hypervisor
19. cumulusnetworks.com 19
Tool Overview: Vagrant
● Free/Open Source
● Interconnects VMs Programmatically
● Share whole simulations in one text file
● Supports Control of Virtualbox/KVM/VMware Hypervisors
● Uses “Vagrantfiles” written in Ruby
Tool Type: Orchestration
Vagrant.configure(2) do |config|
config.vm.box = "CumulusCommunity/cumulus-vx"
end
21. cumulusnetworks.com 21
Representing a Topology
Using a Topology.dot File
● Simple text file written in Graphviz
which is an open standard
● Built by hand or via scripting
graph dc1 {
"leaf01":"swp1" -- "leaf02":"swp2"
}
leaf01 leaf02
swp1
swp2
A Basic Topology.dot File
22. cumulusnetworks.com 22
Overloading a Topology File
Creating a More Useful Simulation
● Describe Nodes
● OS downloaded from Vagrant site
(on first use, if not locally present)
graph dc1 {
"leaf01" [function="leaf“
os="CumulusCommunity/cumulus-vx“ ]
“server01" [function=“host“
os=“ubuntu/trusty64“ memory=“2048”]
"leaf01":"swp1" -- “server01":“eth1“
}
leaf01
server01
swp1
eth1
Node Info Specify OS
23. cumulusnetworks.com 23
Topology Converter: Dot -> Vagrantfile
https://github.com/CumulusNetworks/topology_converter
● Avoid learning Ruby to write Vagrantfiles by hand
● Builds Vagrantfiles for Virtualbox and libvirt/KVM
● Allows use of production interface names
Topology
Converter
Topology
File
Vagrantfile
24. cumulusnetworks.com 24
Using Production Interface Names in Simulation
eth0
Normal Vagrant Topology Converter
leaf01 leaf02
1 2 1 2
4 4
3 3
eth0
eth0
leaf01 leaf02
1 2 1 2
49 49
50 50
eth0
vagrant vagrant
Reuse the EXACT configuration in productionArtificial Port Numbers
25. cumulusnetworks.com 25
A More Complete Topology File
Creating a More Useful Simulation
● Describe Nodes
● (optionally) Add Link Data
graph dc1 {
"leaf01" [function="leaf“
os="CumulusCommunity/cumulus-vx"
config="./helper_scripts/extra_switch_config.sh"]
“server01" [function=“host“
os=“Ubuntu/trusty64" memory=“2048“
config="./helper_scripts/extra_server_config.sh“]
"leaf01":"swp1" -- “server01":“eth1" [left_mac="A0:00:00:00:00:31"]
}
leaf01
server01
swp1
eth1
Link Data
https://github.com/CumulusNetworks/topology_converter/tree/master/documentation#supported-attributes
26. cumulusnetworks.com 26
Using Topology Converter: Getting Started
Prerequisites:
● Vagrant v1.8.4 or later installed
● Python installed
● Virtualbox
Download the Software:
$ git clone https://github.com/CumulusNetworks/topology_converter.git
27. cumulusnetworks.com 27
Using Topology Converter
1). Make a Topology File
Examples Included
https://github.com/CumulusNetworks/topology_converter/blob/master/examples/
2). Run the Converter
3). Start the Simulation
Many more options, see the help listing: $ python topology_converter.py -h
$ python topology_converter.py topology.dot -p libvirt
$ vagrant up
29. cumulusnetworks.com 29
Reference Topology
What does it provide?
https://github.com/CumulusNetworks/cldemo-vagrant#understanding-what-is-provided
● Pre-built Simulation environment
○ Built with Topology Converter
● Realistic Spine/Leaf Architecture
○ Uses Actual Port Names
○ Full-Fledged Feature Support
● Simulates the MGMT Network
○ DHCP via static MAC entries
○ DNS & Apache Installed
34. cumulusnetworks.com 34
Today’s Demo
1). Deploy the Reference Topology
2). Login to the Management Server
3). Fetch your Configurations and Automation
4). Deploy to Virtual Infrastructure
35. cumulusnetworks.com 35
Today’s Demo
1). Deploy the Reference Topology
2). Login to the Management Server
3). Fetch your Configurations and Automation
4). Deploy to Virtual Infrastructure
$ vagrant up oob-mgmt-server oob-mgmt-switch
$ vagrant up spine01 spine02 leaf01 leaf02 server01 server02
$ vagrant ssh oob-mgmt-server
$ git clone https://github.com/CumulusNetworks/ansible_snippets.git
$ cd ./ansible_snippets/basic_ansible/
$ ansible-playbook ./all.yaml
36. cumulusnetworks.com 36
Today’s Demo
We’re going to highlight the components that are universal
• Hostname
• MOTD
• License
• Banner Message
• NTP
• Syslog
• Prescriptive Topology Manager (PTM)
• BGP Unnumbered
37. cumulusnetworks.com 37
Reference Topology
• Routing on the Host
• Ansible Automation
• Puppet Automation
• Chef Automation
• ONIE & Zero Touch Provisioning
• OpenStack
• Multi Chassis LAG (MLAG)
• AND MORE
• Contributions Welcome
Extensive Framework of 10+ Demos and Config Examples
https://github.com/CumulusNetworks/cldemo-vagrant#available-demos
39. cumulusnetworks.com 39
Getting More Information
Cumulus VX
https://cumulusnetworks.com/cumulus-vx/
Recreate Our Workflow Today
https://github.com/CumulusNetworks/ansible_snippets/tree/master/basic_ansible
Reference Topology – https://github.com/CumulusNetworks/cldemo-vagrant
Topology Converter – https://github.com/CumulusNetworks/topology_converter
Watch This Again – https://cumulusnetworks.com/webinars/#past-webinars
CI/CD Workflow Example – https://gitlab.com/plumbis/interop-2016
40. Summary
▪Agile Network Deployment is now possible with
open networking
▪Cumulus VX fits seamlessly with powerful tools
such as Vagrant to allow operators to build
entire networks on a server
▪Using simulation allows for building robust,
predictable networks
40
41. Next Webinar
▪Network Troubleshooting with Cumulus Linux
▪When: Oct 27, 2016, 10 am PDT
▪Guest: TBD
41
Try Open Networking with Cumulus VX
https://cumulusnetworks.com/cumulus-vx/
42. CUMULUS, the Cumulus Logo, CUMULUS NETWORKS, and the Rocket Turtle Logo (the “Marks”) are trademarks and service marks of Cumulus Networks, Inc. in the U.S. and other
countries. You are not permitted to use the Marks without the prior written consent of Cumulus Networks. The registered trademark Linux® is used pursuant to a sublicense from LMI,
the exclusive licensee of Linus Torvalds, owner of the mark on a world-wide basis. All other marks are used under fair use or license from their respective owners.
▪Thank You!
cumulusnetworks.com 42
Bringing the Linux Revolution to Networking