Subido por Alejandro Osorio

DEVNET-1296

Anuncio
#CLUS
Build a NetDevOps
CICD Pipeline
Leveraging the “best” of Open Source,
free, and commercial softward
Hank Preston, Principal Engineer
NetDevOps Evangelist
@hfpreston
ccie 38336 R/S
Session ID DEVNET-1296
#CLUS
Build a Network Configuration CICD
Pipeline
•
•
•
Today’s Network Configuration
Pipelines
DevOps -> NetDevOps
Pipelines with CICD
NetDevOps CICD in Action
#CLUS
DEVNET-1296
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public
3
Cisco Webex Teams
Questions?
Use Cisco Webex Teams (formerly Cisco Spark)
to chat with the speaker after the session
How
1 Find this session in the Cisco Events App
2 Click “Join the Discussion”
3 Install Webex Teams or go directly to the team space
4 Enter messages/questions in the team space
Webex Teams will be moderated
by the speaker until June 18, 2018.
cs.co/ciscolivebot#DEVNET-1296
#CLUS
DEVNET-1296
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public
4
Today’s Network
Configuration Pipelines
“Every time we implement a network
change something goes wrong…”
“Isn’t it great, our switch hasn’t been
rebooted in 6 years”
“We can’t update/change the
network, our business won’t allow it”
* Paraphrased quotes from actual network operators
#CLUS
DEVNET-1296
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public
6
74% of operators report network
changes have significantly impacted
their business*
97% of operators admit human factors
cause network outages*
22% of unplanned outages caused by
human error**
#CLUS
DEVNET-1296
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public
7
Today’s reality…
•
•
•
Functional but considered
fragile
Network configuration more
“art than science”
Tribal knowledge of key
engineers
#CLUS
DEVNET-1296
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public
8
More Stuff
•
Copy Pasta
#CLUS
DEVNET-1296
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public
9
Today’s Pipeline Realities
Sequential and Manual
Infrastructure
Provisioning
Snowflake Infrastructure
with Organic
Configurations
#CLUS
DEVNET-1296
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public
10
DevOps -> NetDevOps
Pipelines with CICD
Software Development Process – Integration
•
Bring together individual
developers code
•
Compile/Build components
•
Execute Tests
#CLUS
DEVNET-1296
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public
12
Software Development Process – Delivery
•
On tested and working code
•
Create final artifacts
•
Make available for usage
#CLUS
DEVNET-1296
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public
13
Software Development Process – Deployment
•
Install application
•
Configure for use
#CLUS
DEVNET-1296
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public
14
•
Continuous development is
the natural progression of
iteration times shrinking into
insignificance. Through heavy
use of automation, flexible
infrastructure and modular
architecture, software
development leaders have
come to the point where each
code change is its own
deployment.
•
http://searchsoftwarequality.t
echtarget.com/essentialguide/
Next-generation-AgileGuide-to-continuousdevelopment
Continuous
Development
(or CICD)
DEVNET-1296
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public
15
Continuous Development Process Flow
Continuous Integration
Continuous Delivery
Continuous Deployment
Merging of development work with
code base constantly so that
automated testing can catch
problems early
Software package delivery
mechanism for releasing code
to staging for review and
inspection
Relies on CI and CD to
automatically release code into
production as soon as it is
ready. Constant flow of new
features into production
#CLUS
DEVNET-1296
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public
16
NetDevOps Configuration Pipeline
•
•
•
•
•
“Treating the Network as Code”
Network Configuration stored in
Source Control
Changes are proposed in code
“branches”
CICD Build Servers deploy and
test proposed configurations
Successful configurations
automatically deployed to
“Production”
#CLUS
DEVNET-1296
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public
17
The NetDevOps Engineers Tool Bag
(Example tools, not comprehensive)
Distributed Source Control
(git, Subversion, Mercurial, GitHub, BitBucket, GitLab)
Build Server
(GitLab, Jenkins, Team City, Drone)
Configuration Management
(Ansible, Puppet, NSO, NAPALM, DIY)
CLI
Network Test Tooling
(PyATS, TRex, Robot, Behave)
NETCONF/
RESTCONF
SNMP
gRPC
Telemetry & Monitoring
(ELK, Grafana, Pipeline, UTM)
REST APIs
YANG/Native Data Model
Configuration Data
Operational Data
Network Device
Development Environment
(Vagrant, NSO, VIRL/CML)
Test Environment
(VIRL/CML)
#CLUS
DEVNET-1291
Network
Virtualization
Platforms
(VIRL/CML, NFVIS,
Vagrant)
Production Environment
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public
18
NetDevOps CICD in
Action
Our Target Network Configuration Goals
•
Typical end to end network
topology
•
Multi-platform (XR, XE, NX)
•
Test and Production parity
•
Test
Production
Entire configuration managed
with “Network as Code”
#CLUS
DEVNET-1296
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public
21
Demo Environment
Version
Control
Infrastructure
as Code
Dev Network
Environment
Source
Control
Chat and
Notifications
Network
Testing
#CLUS
Network
Simulation
DEVNET-1296
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public
22
Pipeline Instruction Files
•
pipeline:
notify:
spark:
roomName: App Builds
Special file in repo provides
pipeline definition
•
Examples: .drone.yml, .gitlabci.yml
•
Often YAML format
•
Define the build phases
integration:
commands:
- python testing.py
delivery:
commands:
- git merge
deployment:
commands:
- ansible-playbook site.yaml
Use available plugins
• Execute commands
• Operate conditionally
•
* For reference, not a fully complete configuration
#CLUS
DEVNET-1296
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public
23
Build Stages
Notification: Stage Goals
•
•
Be notified of status following
each build
3
Using Cisco Webex Teams
#CLUS
DEVNET-1296
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public
25
Continuous Integration: Stage Goals
•
Deploy full code base to test
environment
•
Run validation tests
•
Build any artifacts needed
#CLUS
DEVNET-1296
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public
27
Continuous Delivery: Stage Goals
•
•
Publish artifacts available for
production use
The Ansible playbook and
information represents artifact
•
</>
Merge from “test” ->
“production”
#CLUS
DEVNET-1296
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public
29
Continuous Deployment: Stage Goals
•
•
Update running application
Application = Production
Network
</>
#CLUS
DEVNET-1296
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public
31
Use your Pipeline!
Closing and Review
What we did…
Continuous Integration
Continuous Delivery
Continuous Deployment
Merging of development work with
code base constantly so that
automated testing can catch
problems early
Software package delivery
mechanism for releasing code
to staging for review and
inspection
Relies on CI and CD to
automatically release code into
production as soon as it is
ready. Constant flow of new
features into production
#CLUS
DEVNET-1296
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public
36
For the Network!
#CLUS
DEVNET-1296
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public
38
NetDevOps CICD Pipelines Deliver
Consistent Version Controlled Infrastructure
deployed with Parallel & Automated Provisioning
#CLUS
DEVNET-1296
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public
39
What do do next?
•
NetDevOps Readings
• NetDevOps Learning Resources
• Network Programmability Basics Video
Course
Embrace NetDevOps, Say
Goodbye to a "Culture of Fear”
• NetDevOps Goes Beyond
Infrastructure as Code
• What does "Network as Code"
Mean?
• A Network Engineers Journey in
Programmability
• NetDevOps and the Rise of the
Programmable Network
•
• Network Programmability for Application
Developers
• NetDevOps Videos
• How to be a Network Engineer in a
Programmable Age
• Network as Code in Action
• Benefits of Configuration Management
#CLUS
DEVNET-1296
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public
40
Got more questions? Stay in touch!
Hank Preston
developer.cisco.com
hapresto@cisco.com
@hfpreston
http://github.com/hpreston
@CiscoDevNet
facebook.com/ciscodevnet/
http://github.com/CiscoDevNet
#CLUS
DEVNET-1296
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public
41
Complete your online session evaluation
Give us your feedback to be entered
into a Daily Survey Drawing.
Complete your session surveys through
the Cisco Live mobile app or on
www.CiscoLive.com/us.
Don’t forget: Cisco Live sessions will be available for viewing
on demand after the event at www.CiscoLive.com/Online.
#CLUS
DEVNET-1296
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public
42
Continue
your
education
Demos in
the Cisco
campus
Walk-in
self-paced
labs
#CLUS
DEVNET-1296
Meet the
engineer
1:1
meetings
Related
sessions
© 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public
43
Thank you
#CLUS
#CLUS
#CLUS
Descargar