Slide 1

Slide 1 text

Overview of DevOps Phil Huang SDN Solution Engineer, Edgecore Networks Corporation Dec 1, 2016

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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/

Slide 6

Slide 6 text

Operator got… 6 © 2016 Edgecore Networks. All rights reserved | www.edge-core.com Ref: VMWare ESX Host Purple Diagnostic Screen

Slide 7

Slide 7 text

PM & QA think… 7 © 2016 Edgecore Networks. All rights reserved | www.edge-core.com

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

No Value, No Revenue 10 © 2016 Edgecore Networks. All rights reserved | www.edge-core.com

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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/

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

Sharing 23 © 2016 Edgecore Networks. All rights reserved | www.edge-core.com § Focus on communication § Any experiences for team ØFocus on people

Slide 24

Slide 24 text

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/

Slide 25

Slide 25 text

Periodic Table of DevOps Tools 25 © 2016 Edgecore Networks. All rights reserved | www.edge-core.com

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

Baby Step 3 – Packer + Vagrant 31 © 2016 Edgecore Networks. All rights reserved | www.edge-core.com Provisioning Runtime VM

Slide 32

Slide 32 text

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

Slide 33

Slide 33 text

Gerrit Code Review 33 © 2016 Edgecore Networks. All rights reserved | www.edge-core.com

Slide 34

Slide 34 text

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

Slide 35

Slide 35 text

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

Slide 36

Slide 36 text

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

Slide 37

Slide 37 text

Case Study – BigSwitch Chaos Monkey 37 © 2016 Edgecore Networks. All rights reserved | www.edge-core.com

Slide 38

Slide 38 text

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

Slide 39

Slide 39 text

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..

Slide 40

Slide 40 text

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

Slide 41

Slide 41 text

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

Slide 42

Slide 42 text

Show Changes In Action 42 © 2016 Edgecore Networks. All rights reserved | www.edge-core.com

Slide 43

Slide 43 text

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

Slide 44

Slide 44 text

Step 3: Choose CM 44 © 2016 Edgecore Networks. All rights reserved | www.edge-core.com

Slide 45

Slide 45 text

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

Slide 46

Slide 46 text

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

Slide 47

Slide 47 text

Step 5: Virtualize Copy of Network 47 © 2016 Edgecore Networks. All rights reserved | www.edge-core.com

Slide 48

Slide 48 text

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

Slide 49

Slide 49 text

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

Slide 50

Slide 50 text

Recommend Books 50 © 2016 Edgecore Networks. All rights reserved | www.edge-core.com

Slide 51

Slide 51 text

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

Slide 52

Slide 52 text

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