Network Automation using modern tech. Egor Krivosheev 2degrees

Similar documents
OpenNTI Collect and visualize KPI from Networks devices

Cisco Network Programmability for the Enterprise NPEN v1.0

Technologies for the future of Network Insight and Automation

Model Driven APIs for the Network Infrastructure Layer

The Art of Container Monitoring. Derek Chen

Model-Driven Telemetry and Analytics

Panoptes: A Network Telemetry Ecosystem - Part Deux

Model-Driven Telemetry. Shelly Cadora Principal Engineer, Technical Marketing

Introduction to OpenConfig

Consuming Model-Driven Telemetry

Optimizing the Usability of YANG Models for Network Automation

NetDevOps. Building New Culture around Infrastructure as Code and Automation. Tom Davies Sr. Manager,

NETCONF Protocol. Restrictions for the NETCONF Protocol. Information About the NETCONF Protocol

Cisco IOS XR Programmability for Cloud-Scale Networking

Stratum Project. Enabling era of next generation of SDN

Monitoring MySQL with Prometheus & Grafana

How to be a Network Engineer in a Programmable Age An evolution that goes beyond Infrastructure as Code and Automation

NetDevOps Style Configuration Management for the Network

Ingest. Aaron Mildenstein, Consulting Architect Tokyo Dec 14, 2017

Ingest. David Pilato, Developer Evangelist Paris, 31 Janvier 2017

grpc Network Management Interface

NetDevOps Style Configuration Management for the Network

Maximizing Network Programmability and Automation with Open NX-OS

LEAP DATA SHEET. Lumina Extension Adaptation Platform. Benefits: Model-driven software platform enables automation of heterogeneous networks.

Intent Driven Network Operations with AppFormix Advanced Analytics Platform. Joseph Li

Empower your testing with Cisco Test Automation Solution Featuring pyats & Genie

Junos Platform Automation (JAUT)

INTRODUCTION TO J-EDI: THE JUNIPER EVENT- DRIVEN INFRASTRUCTURE

Resource Allocation Resource Usage Data Access Control. Network Intelligence, Guidance. Statistics, States, Objects and Events.

Components to Use Data Models

Basic Concepts of the Energy Lab 2.0 Co-Simulation Platform

Enabling Network Automation with Junos OS

ONOS Roadmap. September, 2017

Managing the Management Switches. Erik Ruiter SURFsara Cumulus Meetup Amsterdam 2017

Data Model-Driven Management: Latest Industry and Tool Developments

Network configuration management at CERN

NetDevOps for the Network Dude How to get started with API's, Ansible and Python

The Road to Digital Transformation: Increase Agility Building and Managing Cloud Infrastructure. Albert Law Solution Architect Manager

Taxonomy of SDN. Vara Varavithya 17 January 2018

Skalierbare Automatisierung und Orchestrierung im Netzwerk Welche Vorteile sind entscheidend?

Implementing the Network Configuration Protocol

pmacct and Streaming Telemetry

Network Automation at Oracle+Dyn NANOG on the Road Boston, 14 Sept 2017

Lab 2: P4 Runtime. Copyright 2018 P4.org

DEPLOYING NFV: BEST PRACTICES

Components to Use Data Models

ODTN An Open Controller for the Disaggregated Optical Network

Fluentd + MongoDB + Spark = Awesome Sauce

Taking Network Management into the 21st Century. Rob Shakir

grpc - A solution for RPCs by Google Distributed Systems Seminar at Charles University in Prague, Nov 2016 Jan Tattermusch - grpc Software Engineer

Hands-On with IoT Standards & Protocols

JBOT (Juniper Bot) Oct Pablo Sagrera Efrain Gonzalez Copyright 2014 Juniper Networks, Inc.

Hands On Exploration of NETCONF and YANG

LAB EXERCISE: RedHat OpenShift with Contrail 5.0

Introducing Jaeger 1.0

Software Defined Networks and OpenFlow. Courtesy of: AT&T Tech Talks.

RIPE75 - Network monitoring at scale. Louis Poinsignon

Monitor your infrastructure with the Elastic Beats. Monica Sarbu

Ethernet Fabrics- the logical step to Software Defined Networking (SDN) Frank Koelmel, Brocade

Self-driving Datacenter: Analytics

FUJITSU Software ServerView Cloud Monitoring Manager V1.1. Release Notes

Fluentd. Open Source Data Collector. Eduardo Jan 23, 2016 Scale14x, Pasadena!

Powerful Insights with Every Click. FixStream. Agentless Infrastructure Auto-Discovery for Modern IT Operations

I2rs Requirements for NETCONF

DATABASE SYSTEMS. Database programming in a web environment. Database System Course, 2016

Continuous delivery while migrating to Kubernetes

PSOACI Tetration Overview. Mike Herbert

PROVIDING YOU LOG INFRASTRUCTURE LOG COLLECTION SOLUTIONS TO BUILD A SECURE, FLEXIBLE AND RELIABLE

Weiterentwicklung von OpenStack Netzen 25G/50G/100G, FW-Integration, umfassende Einbindung. Alexei Agueev, Systems Engineer

Thales PunchPlatform Agenda

Implementing Network Configuration Protocol

Software-Defined Networking (SDN) Overview

The SMACK Stack: Spark*, Mesos*, Akka, Cassandra*, Kafka* Elizabeth K. Dublin Apache Kafka Meetup, 30 August 2017.

NETWORK AUTOMATION AND PROGRAMMABILITY: Reality Versus The Vendor Hype When Considering Legacy And NFV Networks P. Moore NANOG 70 June 7, 2017

P4 support in ONOS. Carmelo Cascone ONF

Eduardo

Core Components of Policy-based Telemetry Streaming

Cisco Tetration Analytics

PNDA.io: when BGP meets Big-Data

Monitoring MySQL Performance with Percona Monitoring and Management

Important DevOps Technologies (3+2+3days) for Deployment

Monitor your containers with the Elastic Stack. Monica Sarbu

Designing MQ deployments for the cloud generation

perfsonar: A Look Ahead Andrew Lake, ESnet Mark Feit, Internet2 October 16, 2017

RESTCONF Protocol. draft-ietf-netconf-restconf-03 NETCONF WG IETF #91 Honolulu, HI, USA

Network Security: Network Flooding. Seungwon Shin GSIS, KAIST

Microservices at Netflix Scale. First Principles, Tradeoffs, Lessons Learned Ruslan

OpenDaylight as a Platform for Network Programmability FOSDEM, 3 February Charles Eckel, Cisco DevNet

Cisco ISR G2 Management Overview

Routing Basics. Campus Network Design & Operations Workshop

Could IXPs Use OpenFlow To Scale? Ivan Pepelnjak Chief Technology Advisor NIL Data Communications

Shackbus. interconnecting your Shack. Tobias

ODTN and TIP Collaboration with Whitebox Transponder Cassini

Advancing OpenFlow Interoperability with TTPs

Full Stack Developer with Java

Build Cloud like Rackspace with OpenStack Ansible

Container 2.0. Container: check! But what about persistent data, big data or fast data?!

Designing and Implementing Cisco Network Programmability (NPDESI) v1.0

How to be a Network Engineer in a Programmable Age Cisco DevNet Webinar Series

Automation and Programmability using Cisco Open NXOS and DevOps Tools

Transcription:

Network Automation using modern tech Egor Krivosheev 2degrees

Key parts of network automation today Streaming Telemetry APIs SNMP and screen scraping are still around

NETCONF RFC6241 XML encoding Most implementations use SSH as transport There are libraries for many languages Python, Go, C, Java, PHP

Vendor support Nokia Cisco Juniper Brocade Arista

Can be used for: Configuration management Operational data collection

BGP session viewer github.com/vasya4k/gojun

RESTCONF RFC8040 XML or JSON as encoding Configuration management Operational data HTTP POST, GET, PUT, DEL to manage configuration or collect operational data

RESTCONF VS NETCONF In RESTCONF you need one request to change an interface config another one to change BGP and so on. No verification, instead each request succeeds or fails In NETCONF you lock the config make all the changes, verify, then commit and unlock

grpc grpc - is an open source remote procedure call system Uses HTTP/2 for transport Protocol Buffers as the interface description language Bi-directional streaming Client libraries for more than ten languages

grpc - network interfaces Two interfaces: Open Config Telemetry and gnmi First only supports data streaming Seconds can be used for both configuration management and streaming telemetry Vendor support - Cisco, Juniper, Nokia, Arista

grpc Example A streaming telemetry collector with a web interface and a simple API Default collection frequency is 2 sec Packaged in three Docker containers Grafana, Collector and Influx DB Found here github.com/vasya4k/nest

https://github.com/vasya4k/nest

Control Plane - Proprietary APIs Juniper JET and Cisco IOS-XR Service Layer both grpc based Provide direct access to things like firewall policies or CoS without a need for a configuration change Much faster than dealing with management plane Cisco: BFD, Interfaces, MPLS, Routing Juniper: Interfaces, MPLS, Routing, BGP, CoS and Firewall

Use cases Adjusting CoS policy on a microwave link Adding a lot of static routes in BGP for testing Quickly create an IP interface for automatic testing

Forwarding plane API With P4 programing language P4 Runtime supported by at least Arista, Cisco, Juniper Available on many whitebox switches running Barefoot Tofino ASICs Capabilities depend on hardware

What is P4? A domain specific language Open-source Protocol independent, Target independent Match-action pipelines, packet forwarding can be split into series of table lookups and corresponding header manipulations

Can be used to: Implement a new encapsulation Update forwarding plane code of existing routers

Build your own automation system

Inventory and Discovery Inventory can be in the form of REST or grpc APIs with a web interface. The API is intended to be used by Configuration Management, Monitoring and many other systems as a source of truth. Discovery service is a program which detects changes in hardware or software and sends updates to a streaming platform. If inventory is updated manually, it also sends updated data into a streaming platform.

Data Streaming Platform Also known as message bus Most popular choices are Apache Kafka, RabbitMQ and NSQ My personal favourite is Kafka as it provides built-in redundancy, persistent storage and is horizontally scalable It also allows many systems to subscribe for the same data

Configuration management Few choices available Ansible, Saltstack and of cause you can always build your own There is also at least one attempt to create a python automation framework called Nornir I think a combination of ready to use tools and purposely written systems works the best

Ansible Agentless Easy to install and use Inventory variables are stored in txt files YAML syntax for playbooks Written in Python Extensible by writing y modules in any language AWX is an open source version of Ansible Tower

Saltstack Needs an agent called proxy minion to manage network devices Uses NAPALM under the hood Has an API Built-in inventory and data cache Provides event-driven infrastructure capabilities

Telemetry Protocol Buffers as encoding Collectors get data using grpc, NEtCONF, SNMP or even screen scraping and publish stream of records into one or more Kafka topics Consumers subscribe to topics and process the streams of records Few open-source collectors exist fluentd, Open-nti, Telegraf

Having metrics in Kafka allows to Check state to verify configuration changes Get events and react to them Provide a feedback loop

Time Series DB Elasticsearch to store structured data and logs InfluxDB for flat times series data Both have high adoption rate well documented and open-source With Influx DB you do not get horizontal scaling in free version

Analytics and Visualisation Grafana to present graphs, dashboards KIbana to provide GUI and build reports for logs and events There is a very interesting project called Yandex.ClickHouse for data analytics

Chatbot as a universal interface Using a chatbot makes it easy to abstract multiple actions into one and share information between teams For example you can have a bot which goes and fetches an image of a graph from Grafana which can be discussed by a team within same chat You can build a bot which can shut down a faulty link or make changes to you BGP policy

People are the most important part Automation is hard if you do not have a buy-in from your network engineers It takes a lot of time to change mentality It took a long time to change mentality of my own team in my previous organisation even though my bosses were all in with automation

Links Juniper control plane API www.juniper.net/documentation/en_us/jet17.1/topics/concept/jet-service-apis-overview.html Cisco control plane API http://xrdocs.io/cisco-service-layer/apidocs/modules.html grpc https://grpc.io/docs/quickstart/go.html My github account with examples https://github.com/vasya4k Golang NETCONG library https://github.com/juniper/go-netconf Python NETCONG https://github.com/ncclient/ncclient