Terraform: ThousandEyes on
Catalyst 9000 Switches
Robert Csapo, Product Manager – Catalyst 9000 Switching
@robertcsapo
DEVNET-1548
• Infrastructure as Code
• Application Hosting on
Catalyst 9000
• ThousandEyes
Agenda • Terraform
• Deploy ThousandEyes on
Catalyst 9000
DEVNET-1458 © 2024 Cisco and/or its affiliates. All rights reserved. Cisco Public 3
ROBERT CSAPO
❖ Product Manager for Catalyst 9000 Core Switches
❖ More than 10 years at Cisco
❖ Cisco Certified: DevNet Associate/Professional
❖ Passionate about simplifying and automation
❖ From Stockholm, Sweden
DEVNET-1458 © 2024 Cisco and/or its affiliates. All rights reserved. Cisco Public 4
Applications live in a multicloud and distributed world
Devices and things
IaaS
WAN SaaS
Mobile users Campus and branch users
Data center/
private cloud
DEVNET-1458 © 2024 Cisco and/or its affiliates. All rights reserved. Cisco Public 5
Infrastructure as Code (IAC)
Help to reduce Cost, increase Speed, and minimize Risk
User Tool Code Infrastructure
Version Control Automation Software Templates/Plugins Platforms
DEVNET-1458 © 2024 Cisco and/or its affiliates. All rights reserved. Cisco Public 6
Application Hosting on Catalyst 9000
Enables hosting docker containers and third-party apps
x86 CPU Linux-based OS Memory/Storage
Cisco Application Framework (IoX)
IOS XE
Docker Container Enterprise Application
CLI/YANG
Cisco IOS XE Kernel
DEVNET-1458 © 2024 Cisco and/or its affiliates. All rights reserved. Cisco Public 7
Network Visibility for the Applications
Cisco ThousandEyes
Proactively diagnose
network issues that affect
customer experience
Extending Root Cause Analysis
(MTTI/MTTR) for network & internet
related problems
Extending our coverage and root cause
analysis for Enterprise Collaboration
and Productivity SaaS Applications
Monitor & troubleshoot connectivity
and network performance to IaaS,
PaaS services, whilst understanding 3rd
party service dependencies
DEVNET-1458 © 2024 Cisco and/or its affiliates. All rights reserved. Cisco Public 8
Public Internet – no longer a black box
Data
Center
End User Device
Branch Offices
Datacenter
Enterprise SD-WAN Internet Cloud
DEVNET-1458 © 2024 Cisco and/or its affiliates. All rights reserved. Cisco Public 9
What is ThousandEyes?
ThousandEyes is a Digital Experience Monitoring SaaS platform to see, understand, and improve digital experiences of
customers and employees over any network. We offer a distribution of global vantage points from where users can run a
variety of tests.
Cloud Agent Enterprise Agent Endpoint Agent
Globally distributed agents installed Lightweight software-based agents, easily installed on Lightweight service installed on
and managed by ThousandEyes in your own network, provide visibility from within the end-user laptops and desktops
800+ cities. enterprise campus, data centers, cloud VPCs/VNets, that provides proactive and
real-time monitoring of
and branches.
application experience and
Supports active monitoring, SNMP-based monitoring,
network connectivity
and topological mapping of internal network devices.
Enterprise Agent is applicable to Enterprise Infra Hardware
External Vantage Points Internal Vantage Points End-User Experience
DEVNET-1458 © 2024 Cisco and/or its affiliates. All rights reserved. Cisco Public 10
Terraform is…
Terraform uses the RESTCONF API
Open-source Infrastructure as Code (IaC) Software Tool
providing a consistent CLI workflow to manage hundreds
of cloud services. Terraform codifies cloud APIs into
declarative configuration files.
• Cloud Native Tooling circa 2014 from
HashiCorp
• Agentless, single binary file
• Zero server-side dependencies
DEVNET-1458 © 2024 Cisco and/or its affiliates. All rights reserved. Cisco Public 11
Why Terraform with Catalyst 9000 Switches?
Terraform is a single tool that is used to configure networks and applications Cisco Catalyst 9300X IOS XE
RESTCONF / YANG
Now support for Terraform with IOS XE is being introduced
IPSEC crypto tunnel configuration
Cisco
vManage TLS Cisco Catalyst
Center
Users Terraform (.tf) Terraform
Plan Execution File
Compute and VPC, application,
network configuration, transit
gateway
DEVNET-1458 © 2024 Cisco and/or its affiliates. All rights reserved. Cisco Public 12
Terraform with Cisco Application Hosting
Terraform Registry GitHub Examples Terraform CLI
Plan
Apply
DEVNET-1458 © 2024 Cisco and/or its affiliates. All rights reserved. Cisco Public 13
Terraform with multiple providers
End-to-End deployment with Cisco ThousandEyes
DEVNET-1458 © 2024 Cisco and/or its affiliates. All rights reserved. Cisco Public 14
Getting started
with Terraform
Install Terraform
macOS CentOS/RHEL Windows
CLI
More details [Link]
DEVNET-1458 © 2024 Cisco and/or its affiliates. All rights reserved. Cisco Public 16
Code in Terraform language
Terraform Provider
Download from the Terraform Public Registry
Terraform Provider Settings
Cisco IOS XE RESTCONF
Terraform Variables
Application Settings
DEVNET-1458 © 2024 Cisco and/or its affiliates. All rights reserved. Cisco Public 17
Initialize Terraform
$ terraform init
The folder with all the .tf files
DEVNET-1458 © 2024 Cisco and/or its affiliates. All rights reserved. Cisco Public 18
Deploy ThousandEyes Agent
on Catalyst 9000 switches
Prerequisites for Terraform
With Catalyst 9000 and ThousandEyes
Catalyst 9000 Switching Series Cisco ThousandEyes
Catalyst 9300/9400 Activate the Dashboard
Cisco IOS XE 17.8.1+ Enterprise Agents
RESTCONF enabled Account Token
Cisco DNA Advantage Internet Access
Application Hosting HTTPS access
ThousandEyes Agent
DEVNET-1458 © 2024 Cisco and/or its affiliates. All rights reserved. Cisco Public 20
Download the examples from Github
Link
Edit the files
Catalyst 9300/9400 Config
ThousandEyes Account Token
DEVNET-1458 © 2024 Cisco and/or its affiliates. All rights reserved. Cisco Public 21
ThousandEyes Token
[Link]
Terraform Config
DEVNET-1458 © 2024 Cisco and/or its affiliates. All rights reserved. Cisco Public 22
Terraform Cloud
DEVNET-1458 © 2024 Cisco and/or its affiliates. All rights reserved. Cisco Public 23
Plan and Apply using Terraform
$ terraform plan $ terraform apply
Preview of the configuration Deploying the configuration
DEVNET-1458 © 2024 Cisco and/or its affiliates. All rights reserved. Cisco Public 24
ThousandEyes Dashboard
DEVNET-1458 © 2024 Cisco and/or its affiliates. All rights reserved. Cisco Public 25
Application Monitoring
Network Visibility using Cisco Catalyst 9000 and Cisco ThousandEyes
DEVNET-1458 © 2024 Cisco and/or its affiliates. All rights reserved. Cisco Public 26
Web performance monitoring
Page load test view
• Web tests: HTTP, page load, transaction
• Monitor and validate web applications’
usability and performance, including SaaS and
internally-hosted apps
• HTTP Server Test
• Measure availability, response time
and throughput of an HTTP service
• Page Load Tests
• Measure page load times of
individual web components using waterfall analysis
• Transaction Tests
• Monitor application usability by emulating
user journey through an app with multi-
step transactions scripts
• Validate third-party API performance and
application logic of complex workflows
DEVNET-1458 © 2024 Cisco and/or its affiliates. All rights reserved. Cisco Public 27
Demo Deployment
Using Terraform
Demo: Terraform Cloud – ThousandEyes- Catalyst 9000
DEVNET-1458 © 2024 Cisco and/or its affiliates. All rights reserved. Cisco Public 29
Automation using
CI/CD Pipeline
DevOps NetDevOps
Version
Control Functional
Testing
Code
Build
Diagnostics
Testing
DEVNET-1458 © 2024 Cisco and/or its affiliates. All rights reserved. Cisco Public 31
Network as Code with NetDevOps
Branch Branch
iot_vrf iosx174
Ready for production
Branch
main
Branch
vlan-guest-service
DEVNET-1458 © 2024 Cisco and/or its affiliates. All rights reserved. Cisco Public 32
GitLab PipeLine
1 2 3
DEVNET-1458 © 2024 Cisco and/or its affiliates. All rights reserved. Cisco Public 33
GitLab Pipeline Execution of Terraform
DEVNET-1458 © 2024 Cisco and/or its affiliates. All rights reserved. Cisco Public 34
ThousandEyes Agents in the Dashboard
DEVNET-1458 © 2024 Cisco and/or its affiliates. All rights reserved. Cisco Public 35
Terraform Destroy through GitLab Pipeline
DEVNET-1458 © 2024 Cisco and/or its affiliates. All rights reserved. Cisco Public 36
Key Takeaways
Infrastructure as Code with Catalyst 9000
GitHub with Examples
Hardware
Monitoring
Automation
More information about Cisco Application Hosting
[Link]
DEVNET-1458 © 2024 Cisco and/or its affiliates. All rights reserved. Cisco Public 38
DEVNET-1458 © 2024 Cisco and/or its affiliates. All rights reserved. Cisco Public 39
Thank you