Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
What Is NetDevOps?
How?
Leslie Carr
PuppetConf 2015
Who Is Leslie?
Operations Engineer
▪ @lesliegeek
▪ Google
▪ Craigslist
▪ Twitter
▪ Wikimedia Foundation
(Wikipedia)
Now at Cumulus Networks
Who Are You?
Network engineers who are automation curious,
but run their networks in the “traditional” model.
Systems engi...
What You Will Learn
Legacy Networks -> Modern Techniques
What Is DevOps?
?
What Is DevOps?
DevOps!
Infrastructure == Code
What Do We Look Like Now?
Traditional Networking
▪ Logging in manually with a password
▪ Typing in commands
▪ Cutting and pasting over console
▪ Som...
Traditional Networks
Automation is for everyone
Working Together
Common Complaints
▪ It’s a fad
▪ It’s hard
▪ This will steal my job
▪ One wrong move will take everything down
▪ My gear d...
Trust
Vendors and Automation!
Here's How to Start
Not Yet….
No Way!
Step 1 - Git!
▪ Source Code text file repository
▪ Automatic file revision/change management
▪ Built for teams to work on ...
Step 1 - Git!
https://help.github.com/categories/bootcamp/
Git Glossary
cumulusnetworks.com 22
Remote Repository – Central server hosting files
Local Repository – Your local copy of...
Step 2
Just check it in!
In Action
cumulusnetworks.com 24
Step 3
Templatize configuration files
Template Example
site.pp: config.pp
node 'network.server' {
switch::config { 'leaf1':
loopback => '10.0.0.1/32',
webserver...
Template Example
interfaces.erb:
auto eth0
iface eth0 inet dhcp
auto lo
iface lo inet loopback
address <%= @loopback %>
# ...
Configuration File!
auto eth0
iface eth0 inet dhcp
auto lo
iface lo inet loopback
address 10.0.0.1/32
# webserver vlan
aut...
Infrastructure as Code
Team Separation
Git Branches to the Rescue!
▪ Create changes in branches
cumulusnetworks.com 31
master
vlan
▪ Merge and review
master
vlan...
Git Branches to the Rescue!
Start a Pull Request
Approve or Deny!
Approved!
Security + Teamwork
Working Together
Advanced Topics
Continuous Integration Systems
Catch tpyos!
Use spell checking
Probably already have one
Virtualization
Puppet Agent
So Happy!
Oops!
site.pp:
node 'network.server' {
switch::config { 'leaf1':
loopback => '10.0.0.1/3',
webservers =>
{ interfaces => '...
Uh oh!
Where?
git revert!
cumulusnetworks.com 46
▪ Revert failures after merge
master
IPv6
git revert Workflow
leslie@mogwai:~$ git revert -m 1 HEAD~0
[master 4df89bb] Revert "Merge pull request #1 from LeslieCarr...
All Better
No Post Mortem
Post Mortems!
Opportunity, not a chore!
Blameless
Ruthlessly accurate
Fix!
It’s Okay
Benefits
By automating you’ve moved from this
Before Automation
After Automation
Step 1 - git
https://help.github.com/categories/bootcamp/
Infrastructure as Code
Team Separation
Advanced Topics
Teamwork
Questions?
Questions?
@lesliegeek
leslie@cumulusnetworks.com
© 2015 Cumulus Networks. Cumulus Networks, the Cumulus Networks Logo, and Cumulus Linux are trademarks or registered trade...
Upcoming SlideShare
Loading in …5
×

What is NetDevOps? How? Leslie Carr PuppetConf 2015

1,972 views

Published on

This talk describes NetDevOps. Why should you implement DevOps methodologies in your network? How do you take the first steps to do so?

Hopefully the gif's succesfully stay animated!

Published in: Technology
  • Login to see the comments

What is NetDevOps? How? Leslie Carr PuppetConf 2015

  1. 1. What Is NetDevOps? How? Leslie Carr PuppetConf 2015
  2. 2. Who Is Leslie? Operations Engineer ▪ @lesliegeek ▪ Google ▪ Craigslist ▪ Twitter ▪ Wikimedia Foundation (Wikipedia)
  3. 3. Now at Cumulus Networks
  4. 4. Who Are You? Network engineers who are automation curious, but run their networks in the “traditional” model. Systems engineers who love your network engineers and want to help them automate.
  5. 5. What You Will Learn Legacy Networks -> Modern Techniques
  6. 6. What Is DevOps? ?
  7. 7. What Is DevOps?
  8. 8. DevOps! Infrastructure == Code
  9. 9. What Do We Look Like Now?
  10. 10. Traditional Networking ▪ Logging in manually with a password ▪ Typing in commands ▪ Cutting and pasting over console ▪ Some vendors have rollback ▪ RANCID is the only decent tool to save configurations or state ▪ Typos can bring down your whole network
  11. 11. Traditional Networks
  12. 12. Automation is for everyone
  13. 13. Working Together
  14. 14. Common Complaints ▪ It’s a fad ▪ It’s hard ▪ This will steal my job ▪ One wrong move will take everything down ▪ My gear doesn’t support it ▪ I don’t know where to start
  15. 15. Trust
  16. 16. Vendors and Automation!
  17. 17. Here's How to Start
  18. 18. Not Yet….
  19. 19. No Way!
  20. 20. Step 1 - Git! ▪ Source Code text file repository ▪ Automatic file revision/change management ▪ Built for teams to work on the same files ▪ Easy to get started, lots of knobs for advanced users cumulusnetworks.com 20
  21. 21. Step 1 - Git! https://help.github.com/categories/bootcamp/
  22. 22. Git Glossary cumulusnetworks.com 22 Remote Repository – Central server hosting files Local Repository – Your local copy of the remote. Where you change things Branch – Isolated copy for new features, risky changes Merge – Apply branch changes to master repository copy (see also: “Pull Request”)
  23. 23. Step 2 Just check it in!
  24. 24. In Action cumulusnetworks.com 24
  25. 25. Step 3 Templatize configuration files
  26. 26. Template Example site.pp: config.pp node 'network.server' { switch::config { 'leaf1': loopback => '10.0.0.1/32', webservers => { interfaces => 'swp1 swp2 swp5', vlan => '3' }, storage => { interfaces => 'swp6', vlan => '10'}, } } define switch::config ( $switch = $title, $loopback, $webservers, $storage ) { file { "/home/switch_configs/${switch}.conf": ensure => present, content => template('switch/interfaces.erb') owner => 'cumulus', group => 'cumulus', mode => '0644', } }
  27. 27. Template Example interfaces.erb: auto eth0 iface eth0 inet dhcp auto lo iface lo inet loopback address <%= @loopback %> # webserver vlan auto br_webserver_<%= webservers['vlan'] %> iface br_webserver_<%= webservers['vlan'] %> bridge-ports <%= webservers['interfaces'] %> bridge-stp on #storage vlan auto br_storage_<%= storage['vlan'] %> iface br_storage_<%= storage['vlan'] %> bridge-ports <%= storage['interfaces'] %> bridge-stp on
  28. 28. Configuration File! auto eth0 iface eth0 inet dhcp auto lo iface lo inet loopback address 10.0.0.1/32 # webserver vlan auto br_webserver_3 iface br_webserver_3 bridge-ports swp1 swp2 swp5 bridge-stp on #storage vlan auto br_storage_10 iface br_storage_10 bridge-ports swp6 bridge-stp on
  29. 29. Infrastructure as Code
  30. 30. Team Separation
  31. 31. Git Branches to the Rescue! ▪ Create changes in branches cumulusnetworks.com 31 master vlan ▪ Merge and review master vlan Use merge/pull request as an opportunity to review impact of changes
  32. 32. Git Branches to the Rescue!
  33. 33. Start a Pull Request
  34. 34. Approve or Deny!
  35. 35. Approved!
  36. 36. Security + Teamwork
  37. 37. Working Together
  38. 38. Advanced Topics
  39. 39. Continuous Integration Systems Catch tpyos! Use spell checking Probably already have one
  40. 40. Virtualization
  41. 41. Puppet Agent
  42. 42. So Happy!
  43. 43. Oops! site.pp: node 'network.server' { switch::config { 'leaf1': loopback => '10.0.0.1/3', webservers => { interfaces => 'swp1 swp2 swp5', vlan => '3' }, storage => { interfaces => 'swp6', vlan => '10'}, } }
  44. 44. Uh oh!
  45. 45. Where?
  46. 46. git revert! cumulusnetworks.com 46 ▪ Revert failures after merge master IPv6
  47. 47. git revert Workflow leslie@mogwai:~$ git revert -m 1 HEAD~0 [master 4df89bb] Revert "Merge pull request #1 from LeslieCarr/new_vlan" 1 file changed, 1 deletion(-) leslie@MacBook-Pro:~/github/puppet-presentation (master)$ git push To git@github.com:LeslieCarr/puppet-presentation.git 546f0fa..4df89bb master -> master
  48. 48. All Better
  49. 49. No Post Mortem
  50. 50. Post Mortems! Opportunity, not a chore! Blameless Ruthlessly accurate Fix!
  51. 51. It’s Okay
  52. 52. Benefits By automating you’ve moved from this
  53. 53. Before Automation
  54. 54. After Automation
  55. 55. Step 1 - git https://help.github.com/categories/bootcamp/
  56. 56. Infrastructure as Code
  57. 57. Team Separation
  58. 58. Advanced Topics
  59. 59. Teamwork
  60. 60. Questions? Questions? @lesliegeek leslie@cumulusnetworks.com
  61. 61. © 2015 Cumulus Networks. Cumulus Networks, the Cumulus Networks Logo, and Cumulus Linux are trademarks or registered trademarks of Cumulus Networks, Inc. or its affiliates in the U.S. and other countries. Other names may be trademarks of their respective owners. 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. ▪Thank You!

×