Overview of DevOps

D907136acebc72f1df878541b26f271a?s=47 Phil Huang
December 01, 2016

Overview of DevOps

D907136acebc72f1df878541b26f271a?s=128

Phil Huang

December 01, 2016
Tweet

Transcript

  1. Overview of DevOps Phil Huang <phil_huang@edge-core.com> SDN Solution Engineer, Edgecore

    Networks Corporation Dec 1, 2016
  2. Summary © 2016 Edgecore Networks. All rights reserved. Subject to

    errors and misprints. | www.edge-core.com Overview of DevOps 01 04 02 Overview of NetDevOps 03 DevOps Case Studies
  3. Who am I? 3 © 2016 Edgecore Networks. All rights

    reserved | www.edge-core.com § Phil Huang § Edgecore SDN Solution Engineer § ONOS/CORD Ambassador § Familiar with § Open Source / DevOps / NetDevOps § SDN Open Source Committer § ONOS / Mininet / ONIE § Project § Global ONOS SDN-IP Deployment, Taiwan § GitHub § pichuang
  4. General Product Team 4 © 2016 Edgecore Networks. All rights

    reserved | www.edge-core.com Ref: http://www.mindtheproduct.com/2016/02/what-the-hell-are-ci-cd-and-devops-a-cheatsheet-for-the-rest-of-us/ You QA/QC PM Operator
  5. Problem1: What’s wrong? 5 © 2016 Edgecore Networks. All rights

    reserved | www.edge-core.com Ref: http://www.mindtheproduct.com/2016/02/what-the-hell-are-ci-cd-and-devops-a-cheatsheet-for-the-rest-of-us/
  6. Operator got… 6 © 2016 Edgecore Networks. All rights reserved

    | www.edge-core.com Ref: VMWare ESX Host Purple Diagnostic Screen
  7. PM & QA think… 7 © 2016 Edgecore Networks. All

    rights reserved | www.edge-core.com
  8. You think… 8 © 2016 Edgecore Networks. All rights reserved

    | www.edge-core.com
  9. Problem 2: Lead time Too Long 9 © 2016 Edgecore

    Networks. All rights reserved | www.edge-core.com § Lead Time § Time between request to delivery ØThis is what customer sees § Cycle Time (or Process Time) § Time between production start to completion ØNot visible to customer Ref: http://www.slideshare.net/Managewell/lean-and-kanbanbased-software-development Time Request Delivery Production Start Lead Time Cycle Time
  10. No Value, No Revenue 10 © 2016 Edgecore Networks. All

    rights reserved | www.edge-core.com
  11. Problem 3: Schedule Visibility 11 © 2016 Edgecore Networks. All

    rights reserved | www.edge-core.com Result Visible Part Mindset Thinking Invisible Part Experience You Dirty work
  12. Problem 4: Human Error Race • 80% of outages impacting

    mission-critical services will be caused by people and process issue • 20% of those outages will be caused by change/configuration/release integration and hand-off issues © 2016 Edgecore Networks. All rights reserved | www.edge-core.com 12 Ref: http://www.slideshare.net/giganati/is-orchestration-the-next-big-thing-in-devops
  13. Problem 5: What happened in your system? 13 © 2016

    Edgecore Networks. All rights reserved | www.edge-core.com Administrator control via GUI and CLI Crontab from system Force majeure … Input Output
  14. Why DevOps? 14 © 2016 Edgecore Networks. All rights reserved

    | www.edge-core.com § Collaboration § Developer + Operator § Reduce challenges related to Ops and Dev collaboration § Deployment § Minimize deployment related downtime § Minimize roll-backs of deployed application § Defect resolution § Minimize MTTR § Increase the ability to reproduce and fix defects MTTR = Mean Time To Resolution
  15. DevOps is about CALMS 15 © 2016 Edgecore Networks. All

    rights reserved | www.edge-core.com §Culture § More communication with team member §Automation § The idea that you should program everything §Lean § Keeping everything to a minimum §Measurement § Try to have visibility into everything §Sharing § Regular exchanging of ideas across team
  16. Culture 16 © 2016 Edgecore Networks. All rights reserved |

    www.edge-core.com More Feedback Communication Automation
  17. Culture 17 © 2016 Edgecore Networks. All rights reserved |

    www.edge-core.com Waterfall Plan Code Build Test Release Deploy Operate Time Plan Code Build Test Release Plan Code Build Test Release Plan Code Build Test Release Agile
  18. Automation 18 © 2016 Edgecore Networks. All rights reserved |

    www.edge-core.com § DevOps Lifecycle Plan Code Build Test Release Deploy Operate Monitoring Metrics Analytics Feedback
  19. Automation 19 © 2016 Edgecore Networks. All rights reserved |

    www.edge-core.com Plan Commit Build Test Release Deploy Operate Monitoring Metrics Analytics Feedback Continuous Integration Continuous Delivery
  20. Lean 20 © 2016 Edgecore Networks. All rights reserved |

    www.edge-core.com §MVP ( Minimal Viable Product ) § Set a goal § Minimum cost § Time, Money…etc § Feedback from customer § Continual Improvement Ref: http://justinmcgill.net/product-idea-validation-dont-build-mvp/
  21. Lean 21 © 2016 Edgecore Networks. All rights reserved |

    www.edge-core.com Ref: https://blog.engineyard.com/2015/actually-mvp
  22. Measurement 22 © 2016 Edgecore Networks. All rights reserved |

    www.edge-core.com § Data collection § Syslog, performance data § Definition of measurement § Data visualization § A picture is worth a thousand words § Data analysis § Find business value
  23. Sharing 23 © 2016 Edgecore Networks. All rights reserved |

    www.edge-core.com § Focus on communication § Any experiences for team ØFocus on people
  24. 2016 State of DevOps Report 24 © 2016 Edgecore Networks.

    All rights reserved | www.edge-core.com Ref: https://puppet.com/resources/white-paper/2016-state-devops-report/
  25. Periodic Table of DevOps Tools 25 © 2016 Edgecore Networks.

    All rights reserved | www.edge-core.com
  26. Develop workflow 26 © 2016 Edgecore Networks. All rights reserved

    | www.edge-core.com You Workflow 1. Launch VM 2. Setting environment 3. Install applications 4. Quick start 5. Develop 6. Compile 7. Re-install application Choose Hypervisor, CPU, RAM, Disk size, location Bash, vim, dependency package View INSTALL file View README files View Developer’s Guide
  27. Develop workflow 27 © 2016 Edgecore Networks. All rights reserved

    | www.edge-core.com You Workflow 1. Launch VM 2. Setting environment 3. Install applications 4. Quick start 5. Develop 6. Compile 7. Re-install application Choose Hypervisor, CPU, RAM, Disk size, location Bash, vim, dependency package View INSTALL file View README files View Developer’s Guide
  28. Baby Step 1 – Reduce Routine Manual Job $ cd

    $PROJECT_ROOT $ python setup.py build $ python setup.py install $ cd $WORK_ROOT $ ./service start • $ /usr/bin/rebuild.sh © 2016 Edgecore Networks. All rights reserved | www.edge-core.com 28 Manually One-Click #!/bin/bash set -x cd $PROJECT_ROOT python setup.py build python setup.py install cd $WORK_ROOT/service start
  29. Baby Step 2 – Version Control Everything • $ /usr/bin/rebuild.sh

    © 2016 Edgecore Networks. All rights reserved | www.edge-core.com 29 #!/bin/bash set -x cd $PROJECT_ROOT echo “Start build” python setup.py build echo “Start install” python setup.py install cd $WORK_ROOT/service start
  30. Develop workflow 30 © 2016 Edgecore Networks. All rights reserved

    | www.edge-core.com You Workflow 1. Launch VM 2. Setting environment 3. Install applications 4. Quick start 5. Develop 6. Compile 7. Re-install application Choose Hypervisor, CPU, RAM, Disk size, location Bash, vim, dependency package View INSTALL file View README files View Developer’s Guide
  31. Baby Step 3 – Packer + Vagrant 31 © 2016

    Edgecore Networks. All rights reserved | www.edge-core.com Provisioning Runtime VM
  32. Case Study - OpenSource Contribution Workflow 32 © 2016 Edgecore

    Networks. All rights reserved | www.edge-core.com Ref: http://docs.openstack.org/infra/manual/developers.html You
  33. Gerrit Code Review 33 © 2016 Edgecore Networks. All rights

    reserved | www.edge-core.com
  34. Jenkins 34 © 2016 Edgecore Networks. All rights reserved |

    www.edge-core.com
  35. Case Study - CISCO 35 © 2016 Edgecore Networks. All

    rights reserved | www.edge-core.com Ref: http://www.slideshare.net/CiscoDevNet/enabing-devops-in-an-sdn-world
  36. Case Study - Spirent 36 © 2016 Edgecore Networks. All

    rights reserved | www.edge-core.com Ref: http://dw.connect.sys-con.com/session/2779/Marc_Hornbeek.pdf
  37. Case Study – BigSwitch Chaos Monkey 37 © 2016 Edgecore

    Networks. All rights reserved | www.edge-core.com
  38. What is NetDevOps? 38 © 2016 Edgecore Networks. All rights

    reserved | www.edge-core.com § Infrastructure as Code (IaC) § Bare Metal network § VM network § Container network Ø Configuration Management § Network automation ØRapid provisioning
  39. Traditional Networking Methodology 39 © 2016 Edgecore Networks. All rights

    reserved | www.edge-core.com § Logging in manually with a password § Typing commands § Copy and paste over console or terminal § Check, check and check..
  40. Step 1: Using Git & GitHub 40 © 2016 Edgecore

    Networks. All rights reserved | www.edge-core.com § Configuration file repository § File change and revision management § Build for teams to work the same files
  41. Step 2: Commit Your Configuration 41 © 2016 Edgecore Networks.

    All rights reserved | www.edge-core.com $ git add . $ git commit -a -m "Add new switch configuration" –s [master 8cf8a38] Add new switch configuration 1 file changed, 1 insertion(+) create mode 100644 ofswitch.conf $ git push -u origin master
  42. Show Changes In Action 42 © 2016 Edgecore Networks. All

    rights reserved | www.edge-core.com
  43. Blame someone 43 © 2016 Edgecore Networks. All rights reserved

    | www.edge-core.com $ git blame ofswitch.conf 69f5f511 (Phil Huang 2016-11-01 13:59:23 +0800 1) Phil Huang 69f5f511 (Phil Huang 2016-11-01 13:59:23 +0800 2) is a 60643262 (Phil Huang 2016-12-01 15:00:51 +0800 3) good 69f5f511 (Phil Huang 2016-11-01 13:59:23 +0800 4) man
  44. Step 3: Choose CM 44 © 2016 Edgecore Networks. All

    rights reserved | www.edge-core.com
  45. Ansible Network Modules 45 © 2016 Edgecore Networks. All rights

    reserved | www.edge-core.com
  46. Step 4: Templatize Configuration Files 46 © 2016 Edgecore Networks.

    All rights reserved | www.edge-core.com § Let you reuse code snippets § Avoid human error and typos Ref: https://github.com/CumulusNetworks/cldemo-netq-l3
  47. Step 5: Virtualize Copy of Network 47 © 2016 Edgecore

    Networks. All rights reserved | www.edge-core.com
  48. Step 6: Continuous Integrations System 48 © 2016 Edgecore Networks.

    All rights reserved | www.edge-core.com § Catch error or typos early § Make sure all of the setting is same as production
  49. Summary 49 © 2016 Edgecore Networks. All rights reserved |

    www.edge-core.com § More communication § Get early feedback § Automate everything § Version control § Visibility
  50. Recommend Books 50 © 2016 Edgecore Networks. All rights reserved

    | www.edge-core.com
  51. 51 Open Networking from Freedom Control Innovation © 2016 Edgecore

    Networks. All rights reserved | www.edge-core.com
  52. © 2015 Edgecore Networks. All rights reserved. Subject to errors

    and misprints. | www.edge-core.com