SlideShare a Scribd company logo
1 of 44
Download to read offline
The Single Source of
Truth for Network
Automation
_____________________________________________________________________________



Andy Davidson <andy@asteroidhq.com>

Friday 15th June

TREX Workshop 2018, Tampere Finland
Automation Journey
📈Reporting
Most network engineers begin their automation journey by producing
some simple reporting software. It is low-risk, has a positive useful
impact, and a good introduction to network scripting and the many
libraries that support network automation.
!2
Automation Journey
📈Reporting
Most network engineers begin their automation journey by producing
some simple reporting software. It is low-risk, has a positive useful
impact, and a good introduction to network scripting and the many
libraries that support network automation.
!3
Automation Journey
📈Reporting
Eventually, tasks which are repetitive, and simple to automate start to
look like great candidates to automate. Engineers discover that the
great libraries that integrate with software tools can be used to write
as well as read configuration, and simple standalone tools are created.
🔨Tooling
!4
Automation Journey
📈Reporting
Eventually, tasks which are repetitive, and simple to automate start to
look like great candidates to automate. Engineers discover that the
great libraries that integrate with software tools can be used to write
as well as read configuration, and simple standalone tools are created.
🔨Tooling
!5
Automation Journey
📈Reporting
More complex tools are eventually produced. Engineers begin to
“configure the network and not the device”, so state becomes a
problem (I mean state becomes properly managed). This takes the
look and feel of a proper application.
🔨Tooling
📲Application
!6
Automation Journey
📈Reporting
More complex tools are eventually produced. Engineers begin to
“configure the network and not the device”, so state becomes a
problem (I mean state becomes properly managed). This takes the
look and feel of a proper application.
🔨Tooling
📲Application
!7
Automation Journey
📈Reporting
The ultimate place to reach is a fully automated and integrated
business with a set of processes enforced and delivered by software.
“Configure the product, not the network”. 

Generally solved by businesses with scale challenges (mass access,
hosting) but now a commonplace medium sized ISP/IXP requirement.
🔨Tooling
📲Application
🌀Business
!8
This presentation..
• Offer a technical perspective/thoughts on architecture on Greenfield deployment
at the ‘automated business’ end of the spectrum

• What motivated this decision?

• Replication - “as a service” product

• Efficiency, leanness

• Service assurance (rapid provisioning, ongoing high availability)

• Integration with third party peering networks, Euro-IX, PeeringDB

• Experience in this field, and frustration with traditional model

• Chance to align business and technical process from the start - in our “DNA”
!9
This presentation .. (2)
• Data model

• Why and how to build a data model to support integrated
automated business

• Software architecture for network centric businesses

• Abstraction

• APIs & API integration with customers

• Software testing

• Useful third party tools
!10
OrganisationsPeople
What I mean, “data model”?
Products
Configured
Services
• A description of the things your business needs to ‘know’
in order to operate

• Start with the steady state of the business
Infrastructure
Elements
!11
What I mean, “data model”?
OrganisationsPeople Products
Configured
Services
Infrastructure
Elements
Quotes Configurations
• Then model the interactions
between those “things”
!12
Why to care from an
engineering point of view?
OrganisationsPeople Products
Configured
Services
Infrastructure
Elements
Quotes Configurations
Monitoring
!13
Where does/shall data live?
Finance Sales
SupportEngineering
!14
Where does/shall data live?
Finance Sales
SupportEngineering
Fundamentally it is fine
for data to “live” in
different tools and
databases
!15
Where does/shall data live?
Finance Sales
SupportEngineering
Search Engine (Netherlands) B.V.
Search Engine, Inc.
Search Engine
!16
Where does/shall data live?
Finance Sales
SupportEngineering
Search Engine (Netherlands) B.V.
Search Engine, Inc.
Search Engine
We just deal with Fred
!17
Where does/shall data live?
Finance Sales
SupportEngineering
Fundamentally it is 

not fine for more than
one data place to be
authoritative for any
single type of record

The other databases
must refer to the key
(id) of a single
authoritative source
!18
Where does/shall data live?
Finance Sales
SupportEngineering
Fundamentally it is 

not fine for more than
one data place to be
authoritative for any
single type of record

The other databases
must refer to the key
(id) of a single
authoritative source
We will talk about how to configure and enforce that shortly.
Rules of Engagement
• Store any item of data ONCE

• Easy to ensure that it is correct

• “Third normal form”

• Give every record a unique ID which has nothing to do with the
record

• (ASN is not to be used as ID!)

• Decide where it will be authoritative

• Requires buy in and planning from across the business.
!20
Separate your customer/
infrastructure data
Port
port_id
customer_id
bridge_id
port_name
Service
service_id
port_id
service_item1
product_id
Ensure infrastructure centric and customer-centric data is not in the same table

This will make your data substantially easier to maintain in terms of portability
!21
Database Fashions
• Document store -vs- RDBMS

• Developers like document stores because they are very
extensible and less strict

• “Storage” cost reduced, so now we can be lazy

• Strict is a benefit / feature
!22
Common Data Stores in
Engineering
• SQL - Truths about users, ports, services, ‘state’, e.g.
MySQL

• Time Series - e.g. Port utilisation, light level, error count,
e.g. InfluxDB

• Third Party - Someone else’s sorted data, e.g. CRM, e.g.
EuroIX/PeeringDB
!23
General Architecture
Client Utilities (scripts, portals, even customers)
API
Worker
Device
A
Device
A
Device
W
A single API layer makes it simpler to develop

and monitor your platform, and easier to make

changes to back end services as time goes by
!24
General Architecture
Client Utilities (scripts, portals, even customers)
API
Worker
Device

A
Device
A
Device
W
It also makes it easier to expose your tools and

data to customers. This is a good thing!
!25
General Architecture
Client Utilities (scripts, portals, even customers)
API
Worker
Device

A
Device
A
Device
W
API can export data, no matter about back end

storage format in a single format (pick JSON)
!26
Worker, BIRD
Internal SQL
Worker, Arista
InfluxDB
Models <> Templates
• Once you have confidence in your data model you can
harness the power of templated configuration

• Once your data model extends across the business you
can do that with greater accuracy and devolved control

• e.g. at Asteroid, our sales people can deliver exchange
ports directly from the quotation

• So can customers

• Simultaneous delivery of monitoring from the quotation
!28
Automation fire triangle
StructuredData
Templates
Automaton
Templates - Jinja
• Generate any kind of configuration

• Takes variables from your JSON API

• Facilitates programatic methods in configuration strophe

• Loops

• Conditionals
!30
Automation - Ansible
!31
Conditional Logic without
script
!32
Advantages
• API layer lightweight

• Retrieve and update database records

• Write in a familiar type-safe language (I chose Python)

• Automation layer lightweight

• Essentially Ansible configuration files

• Configuration “easier” than coding?
!33
Business Logic
!34
Client Utilities (scripts, portals, even customers)
API
Worker
Device
A
Device
A
Device
W
Ensure your API choices allow you to store, retrieve

and process business logic as well as your technical

products. Example: Asteroid Campaign logic.
Worker Architecture
Client Utilities (scripts, portals, even customers)
API
Worker
Device

A
Device
A
Device
W
Must consider:

• Inter Process Communication

• Job and network state

• Device independent

• Vendor failure behaviour

• Device swap-outs
!35
Inter-Process
communication
• Message Queue based?

• e.g. RabbitMQ

• 👍 Quite good support in major scripting languages

• 👍 Fault tolerant, order matters, guaranteed delivery, HA

• 👎 Extra software to support & Centralised

• Web Services

• 👍 Same technology stack as central API

• 👍 Inherently extensible

• 👍 Decentralised

• 👎 Extra software to write and more state to manage
!36
Device Independence
• I chose to write a different worker per back end
technology

• 👎 A bit of copy/paste code, which is an anti-pattern

• 👍 No stress trying to treat different vendors generically

• 👍 NAPALM allows me to continue with Ansible 

• 👍 Can swap out a switch/server architecture for sure
!37
Device Swap-outs
• Using Ansible/NAPALM for switch configuration allows a
process for rolling full configuration in event of device
failure

• No need for specific software feature, an operational
process is ok
!38
Software Testing
• Write the test first

• Red, Green, Refactor mantra
!39
Integration vs Unit Testing
• If you are like me, you will prefer Integration tests

• Write lots, and remember to cover desired exceptions

• Run on your development instance after every change

• “Back to Zero” testing catches unexpected failures
!40
The Joy of Errors
!41
Ubiquity of JSON for an ISP
• Especially in Peering!

• PeeringDB

• Euro-IX IXF-DB

• Asteroid JSON
!42
Summary
• Single source of truth under the control of all departments

• Which is used to configure services and network

• Accessible to all departments

• Customer self service

• Provision from quote

• “Information in one place and tool”

• Account Managers can do troubleshooting
!43
Any Questions?
_____________________________________________________________________________



Andy Davidson <andy@asteroidhq.com>

www.asteroidhq.com

More Related Content

What's hot

Introduction to Quantum Computing and Quantum Service Oriented Computing
Introduction to Quantum Computing and Quantum Service Oriented ComputingIntroduction to Quantum Computing and Quantum Service Oriented Computing
Introduction to Quantum Computing and Quantum Service Oriented ComputingFacultad de Informática UCM
 
INCREASING THE THROUGHPUT USING EIGHT STAGE PIPELINING
INCREASING THE THROUGHPUT USING EIGHT STAGE PIPELININGINCREASING THE THROUGHPUT USING EIGHT STAGE PIPELINING
INCREASING THE THROUGHPUT USING EIGHT STAGE PIPELININGijiert bestjournal
 
Real time stock processing with apache nifi, apache flink and apache kafka
Real time stock processing with apache nifi, apache flink and apache kafkaReal time stock processing with apache nifi, apache flink and apache kafka
Real time stock processing with apache nifi, apache flink and apache kafkaTimothy Spann
 
Building Data Pipelines for Music Recommendations at Spotify
Building Data Pipelines for Music Recommendations at SpotifyBuilding Data Pipelines for Music Recommendations at Spotify
Building Data Pipelines for Music Recommendations at SpotifyVidhya Murali
 
Experiences Migrating Hive Workload to SparkSQL with Jie Xiong and Zhan Zhang
Experiences Migrating Hive Workload to SparkSQL with Jie Xiong and Zhan ZhangExperiences Migrating Hive Workload to SparkSQL with Jie Xiong and Zhan Zhang
Experiences Migrating Hive Workload to SparkSQL with Jie Xiong and Zhan ZhangDatabricks
 
Event-Driven Messaging and Actions using Apache Flink and Apache NiFi
Event-Driven Messaging and Actions using Apache Flink and Apache NiFiEvent-Driven Messaging and Actions using Apache Flink and Apache NiFi
Event-Driven Messaging and Actions using Apache Flink and Apache NiFiDataWorks Summit
 
Automated Machine Learning
Automated Machine LearningAutomated Machine Learning
Automated Machine LearningYuriy Guts
 
Winning Kaggle 101: Introduction to Stacking
Winning Kaggle 101: Introduction to StackingWinning Kaggle 101: Introduction to Stacking
Winning Kaggle 101: Introduction to StackingTed Xiao
 
Using Data Science to Transform OpenTable Into Your Local Dining Expert-(Pabl...
Using Data Science to Transform OpenTable Into Your Local Dining Expert-(Pabl...Using Data Science to Transform OpenTable Into Your Local Dining Expert-(Pabl...
Using Data Science to Transform OpenTable Into Your Local Dining Expert-(Pabl...Spark Summit
 

What's hot (10)

Introduction to Quantum Computing and Quantum Service Oriented Computing
Introduction to Quantum Computing and Quantum Service Oriented ComputingIntroduction to Quantum Computing and Quantum Service Oriented Computing
Introduction to Quantum Computing and Quantum Service Oriented Computing
 
INCREASING THE THROUGHPUT USING EIGHT STAGE PIPELINING
INCREASING THE THROUGHPUT USING EIGHT STAGE PIPELININGINCREASING THE THROUGHPUT USING EIGHT STAGE PIPELINING
INCREASING THE THROUGHPUT USING EIGHT STAGE PIPELINING
 
Real time stock processing with apache nifi, apache flink and apache kafka
Real time stock processing with apache nifi, apache flink and apache kafkaReal time stock processing with apache nifi, apache flink and apache kafka
Real time stock processing with apache nifi, apache flink and apache kafka
 
Project lfsr
Project lfsrProject lfsr
Project lfsr
 
Building Data Pipelines for Music Recommendations at Spotify
Building Data Pipelines for Music Recommendations at SpotifyBuilding Data Pipelines for Music Recommendations at Spotify
Building Data Pipelines for Music Recommendations at Spotify
 
Experiences Migrating Hive Workload to SparkSQL with Jie Xiong and Zhan Zhang
Experiences Migrating Hive Workload to SparkSQL with Jie Xiong and Zhan ZhangExperiences Migrating Hive Workload to SparkSQL with Jie Xiong and Zhan Zhang
Experiences Migrating Hive Workload to SparkSQL with Jie Xiong and Zhan Zhang
 
Event-Driven Messaging and Actions using Apache Flink and Apache NiFi
Event-Driven Messaging and Actions using Apache Flink and Apache NiFiEvent-Driven Messaging and Actions using Apache Flink and Apache NiFi
Event-Driven Messaging and Actions using Apache Flink and Apache NiFi
 
Automated Machine Learning
Automated Machine LearningAutomated Machine Learning
Automated Machine Learning
 
Winning Kaggle 101: Introduction to Stacking
Winning Kaggle 101: Introduction to StackingWinning Kaggle 101: Introduction to Stacking
Winning Kaggle 101: Introduction to Stacking
 
Using Data Science to Transform OpenTable Into Your Local Dining Expert-(Pabl...
Using Data Science to Transform OpenTable Into Your Local Dining Expert-(Pabl...Using Data Science to Transform OpenTable Into Your Local Dining Expert-(Pabl...
Using Data Science to Transform OpenTable Into Your Local Dining Expert-(Pabl...
 

Similar to The Single Source of Truth for Network Automation - Automation Journey and Data Modeling

Webinar: Digital Transformation With Integration Platform as a Service (iPaaS)
Webinar: Digital Transformation With Integration Platform as a Service (iPaaS)Webinar: Digital Transformation With Integration Platform as a Service (iPaaS)
Webinar: Digital Transformation With Integration Platform as a Service (iPaaS)APPSeCONNECT
 
[Analyst Research Slides] Build vs. Buy: Finding the Best Path to Network Aut...
[Analyst Research Slides] Build vs. Buy: Finding the Best Path to Network Aut...[Analyst Research Slides] Build vs. Buy: Finding the Best Path to Network Aut...
[Analyst Research Slides] Build vs. Buy: Finding the Best Path to Network Aut...Enterprise Management Associates
 
[Infographic] Transforming IT through RPA and AI
[Infographic] Transforming IT through RPA and AI[Infographic] Transforming IT through RPA and AI
[Infographic] Transforming IT through RPA and AIUiPath
 
Asynchronous API Testing: Trends, Tools & More | Calidad Infotech
Asynchronous API Testing: Trends, Tools & More | Calidad Infotech Asynchronous API Testing: Trends, Tools & More | Calidad Infotech
Asynchronous API Testing: Trends, Tools & More | Calidad Infotech Calidad Infotech
 
Confluent Partner Tech Talk with BearingPoint
Confluent Partner Tech Talk with BearingPointConfluent Partner Tech Talk with BearingPoint
Confluent Partner Tech Talk with BearingPointconfluent
 
Enterprise Integration Patterns Revisited (again) for the Era of Big Data, In...
Enterprise Integration Patterns Revisited (again) for the Era of Big Data, In...Enterprise Integration Patterns Revisited (again) for the Era of Big Data, In...
Enterprise Integration Patterns Revisited (again) for the Era of Big Data, In...Kai Wähner
 
Technology insights: Decision Science Platform
Technology insights: Decision Science PlatformTechnology insights: Decision Science Platform
Technology insights: Decision Science PlatformDecision Science Community
 
Confluent Partner Tech Talk with Reply
Confluent Partner Tech Talk with ReplyConfluent Partner Tech Talk with Reply
Confluent Partner Tech Talk with Replyconfluent
 
Industrial Internet of Things: Protocols an Standards
Industrial Internet of Things: Protocols an StandardsIndustrial Internet of Things: Protocols an Standards
Industrial Internet of Things: Protocols an StandardsJavier Povedano
 
Faster and more efficient processes by combining BPM and Mobile – yes we can!
Faster and more efficient processes by combining BPM and Mobile – yes we can!Faster and more efficient processes by combining BPM and Mobile – yes we can!
Faster and more efficient processes by combining BPM and Mobile – yes we can!Sebastian Faulhaber
 
Building Successful Cloud Software Business with AWS (Stanley Chan, Head of T...
Building Successful Cloud Software Business with AWS (Stanley Chan, Head of T...Building Successful Cloud Software Business with AWS (Stanley Chan, Head of T...
Building Successful Cloud Software Business with AWS (Stanley Chan, Head of T...Amazon Web Services Korea
 
How to create custom dashboards in Elastic Search / Kibana with Performance V...
How to create custom dashboards in Elastic Search / Kibana with Performance V...How to create custom dashboards in Elastic Search / Kibana with Performance V...
How to create custom dashboards in Elastic Search / Kibana with Performance V...PerformanceVision (previously SecurActive)
 
MongoDB World 2019: Building Flexible and Secure Customer Applications with M...
MongoDB World 2019: Building Flexible and Secure Customer Applications with M...MongoDB World 2019: Building Flexible and Secure Customer Applications with M...
MongoDB World 2019: Building Flexible and Secure Customer Applications with M...MongoDB
 
Breaking Up the Monolith While Migrating to AWS (GPSTEC320) - AWS re:Invent 2018
Breaking Up the Monolith While Migrating to AWS (GPSTEC320) - AWS re:Invent 2018Breaking Up the Monolith While Migrating to AWS (GPSTEC320) - AWS re:Invent 2018
Breaking Up the Monolith While Migrating to AWS (GPSTEC320) - AWS re:Invent 2018Amazon Web Services
 
Take Action: The New Reality of Data-Driven Business
Take Action: The New Reality of Data-Driven BusinessTake Action: The New Reality of Data-Driven Business
Take Action: The New Reality of Data-Driven BusinessInside Analysis
 
Securing the Cloud Native Stack
Securing the Cloud Native StackSecuring the Cloud Native Stack
Securing the Cloud Native StackApcera
 

Similar to The Single Source of Truth for Network Automation - Automation Journey and Data Modeling (20)

presentation slides
presentation slidespresentation slides
presentation slides
 
Webinar: Digital Transformation With Integration Platform as a Service (iPaaS)
Webinar: Digital Transformation With Integration Platform as a Service (iPaaS)Webinar: Digital Transformation With Integration Platform as a Service (iPaaS)
Webinar: Digital Transformation With Integration Platform as a Service (iPaaS)
 
[Analyst Research Slides] Build vs. Buy: Finding the Best Path to Network Aut...
[Analyst Research Slides] Build vs. Buy: Finding the Best Path to Network Aut...[Analyst Research Slides] Build vs. Buy: Finding the Best Path to Network Aut...
[Analyst Research Slides] Build vs. Buy: Finding the Best Path to Network Aut...
 
[Infographic] Transforming IT through RPA and AI
[Infographic] Transforming IT through RPA and AI[Infographic] Transforming IT through RPA and AI
[Infographic] Transforming IT through RPA and AI
 
Asynchronous API Testing: Trends, Tools & More | Calidad Infotech
Asynchronous API Testing: Trends, Tools & More | Calidad Infotech Asynchronous API Testing: Trends, Tools & More | Calidad Infotech
Asynchronous API Testing: Trends, Tools & More | Calidad Infotech
 
Confluent Partner Tech Talk with BearingPoint
Confluent Partner Tech Talk with BearingPointConfluent Partner Tech Talk with BearingPoint
Confluent Partner Tech Talk with BearingPoint
 
Enterprise Integration Patterns Revisited (again) for the Era of Big Data, In...
Enterprise Integration Patterns Revisited (again) for the Era of Big Data, In...Enterprise Integration Patterns Revisited (again) for the Era of Big Data, In...
Enterprise Integration Patterns Revisited (again) for the Era of Big Data, In...
 
Technology insights: Decision Science Platform
Technology insights: Decision Science PlatformTechnology insights: Decision Science Platform
Technology insights: Decision Science Platform
 
Confluent Partner Tech Talk with Reply
Confluent Partner Tech Talk with ReplyConfluent Partner Tech Talk with Reply
Confluent Partner Tech Talk with Reply
 
inmation Presentation
inmation Presentationinmation Presentation
inmation Presentation
 
Inventory managment system
Inventory managment systemInventory managment system
Inventory managment system
 
Airtel-BML
Airtel-BMLAirtel-BML
Airtel-BML
 
Industrial Internet of Things: Protocols an Standards
Industrial Internet of Things: Protocols an StandardsIndustrial Internet of Things: Protocols an Standards
Industrial Internet of Things: Protocols an Standards
 
Faster and more efficient processes by combining BPM and Mobile – yes we can!
Faster and more efficient processes by combining BPM and Mobile – yes we can!Faster and more efficient processes by combining BPM and Mobile – yes we can!
Faster and more efficient processes by combining BPM and Mobile – yes we can!
 
Building Successful Cloud Software Business with AWS (Stanley Chan, Head of T...
Building Successful Cloud Software Business with AWS (Stanley Chan, Head of T...Building Successful Cloud Software Business with AWS (Stanley Chan, Head of T...
Building Successful Cloud Software Business with AWS (Stanley Chan, Head of T...
 
How to create custom dashboards in Elastic Search / Kibana with Performance V...
How to create custom dashboards in Elastic Search / Kibana with Performance V...How to create custom dashboards in Elastic Search / Kibana with Performance V...
How to create custom dashboards in Elastic Search / Kibana with Performance V...
 
MongoDB World 2019: Building Flexible and Secure Customer Applications with M...
MongoDB World 2019: Building Flexible and Secure Customer Applications with M...MongoDB World 2019: Building Flexible and Secure Customer Applications with M...
MongoDB World 2019: Building Flexible and Secure Customer Applications with M...
 
Breaking Up the Monolith While Migrating to AWS (GPSTEC320) - AWS re:Invent 2018
Breaking Up the Monolith While Migrating to AWS (GPSTEC320) - AWS re:Invent 2018Breaking Up the Monolith While Migrating to AWS (GPSTEC320) - AWS re:Invent 2018
Breaking Up the Monolith While Migrating to AWS (GPSTEC320) - AWS re:Invent 2018
 
Take Action: The New Reality of Data-Driven Business
Take Action: The New Reality of Data-Driven BusinessTake Action: The New Reality of Data-Driven Business
Take Action: The New Reality of Data-Driven Business
 
Securing the Cloud Native Stack
Securing the Cloud Native StackSecuring the Cloud Native Stack
Securing the Cloud Native Stack
 

Recently uploaded

Complet Documnetation for Smart Assistant Application for Disabled Person
Complet Documnetation   for Smart Assistant Application for Disabled PersonComplet Documnetation   for Smart Assistant Application for Disabled Person
Complet Documnetation for Smart Assistant Application for Disabled Personfurqan222004
 
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作ys8omjxb
 
Font Performance - NYC WebPerf Meetup April '24
Font Performance - NYC WebPerf Meetup April '24Font Performance - NYC WebPerf Meetup April '24
Font Performance - NYC WebPerf Meetup April '24Paul Calvano
 
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012rehmti665
 
VIP Kolkata Call Girl Salt Lake 👉 8250192130 Available With Room
VIP Kolkata Call Girl Salt Lake 👉 8250192130  Available With RoomVIP Kolkata Call Girl Salt Lake 👉 8250192130  Available With Room
VIP Kolkata Call Girl Salt Lake 👉 8250192130 Available With Roomishabajaj13
 
Russian Call Girls in Kolkata Ishita 🤌 8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Ishita 🤌  8250192130 🚀 Vip Call Girls KolkataRussian Call Girls in Kolkata Ishita 🤌  8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Ishita 🤌 8250192130 🚀 Vip Call Girls Kolkataanamikaraghav4
 
The Intriguing World of CDR Analysis by Police: What You Need to Know.pdf
The Intriguing World of CDR Analysis by Police: What You Need to Know.pdfThe Intriguing World of CDR Analysis by Police: What You Need to Know.pdf
The Intriguing World of CDR Analysis by Police: What You Need to Know.pdfMilind Agarwal
 
VIP Kolkata Call Girl Alambazar 👉 8250192130 Available With Room
VIP Kolkata Call Girl Alambazar 👉 8250192130  Available With RoomVIP Kolkata Call Girl Alambazar 👉 8250192130  Available With Room
VIP Kolkata Call Girl Alambazar 👉 8250192130 Available With Roomdivyansh0kumar0
 
Git and Github workshop GDSC MLRITM
Git and Github  workshop GDSC MLRITMGit and Github  workshop GDSC MLRITM
Git and Github workshop GDSC MLRITMgdsc13
 
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一Fs
 
Denver Web Design brochure for public viewing
Denver Web Design brochure for public viewingDenver Web Design brochure for public viewing
Denver Web Design brochure for public viewingbigorange77
 
Russian Call Girls in Kolkata Samaira 🤌 8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Samaira 🤌  8250192130 🚀 Vip Call Girls KolkataRussian Call Girls in Kolkata Samaira 🤌  8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Samaira 🤌 8250192130 🚀 Vip Call Girls Kolkataanamikaraghav4
 
Magic exist by Marta Loveguard - presentation.pptx
Magic exist by Marta Loveguard - presentation.pptxMagic exist by Marta Loveguard - presentation.pptx
Magic exist by Marta Loveguard - presentation.pptxMartaLoveguard
 
Call Girls Service Adil Nagar 7001305949 Need escorts Service Pooja Vip
Call Girls Service Adil Nagar 7001305949 Need escorts Service Pooja VipCall Girls Service Adil Nagar 7001305949 Need escorts Service Pooja Vip
Call Girls Service Adil Nagar 7001305949 Need escorts Service Pooja VipCall Girls Lucknow
 
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts serviceChennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts servicesonalikaur4
 
Call Girls In Mumbai Central Mumbai ❤️ 9920874524 👈 Cash on Delivery
Call Girls In Mumbai Central Mumbai ❤️ 9920874524 👈 Cash on DeliveryCall Girls In Mumbai Central Mumbai ❤️ 9920874524 👈 Cash on Delivery
Call Girls In Mumbai Central Mumbai ❤️ 9920874524 👈 Cash on Deliverybabeytanya
 
AlbaniaDreamin24 - How to easily use an API with Flows
AlbaniaDreamin24 - How to easily use an API with FlowsAlbaniaDreamin24 - How to easily use an API with Flows
AlbaniaDreamin24 - How to easily use an API with FlowsThierry TROUIN ☁
 
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts serviceChennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts servicevipmodelshub1
 
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一Fs
 

Recently uploaded (20)

Complet Documnetation for Smart Assistant Application for Disabled Person
Complet Documnetation   for Smart Assistant Application for Disabled PersonComplet Documnetation   for Smart Assistant Application for Disabled Person
Complet Documnetation for Smart Assistant Application for Disabled Person
 
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
 
Font Performance - NYC WebPerf Meetup April '24
Font Performance - NYC WebPerf Meetup April '24Font Performance - NYC WebPerf Meetup April '24
Font Performance - NYC WebPerf Meetup April '24
 
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
 
VIP Kolkata Call Girl Salt Lake 👉 8250192130 Available With Room
VIP Kolkata Call Girl Salt Lake 👉 8250192130  Available With RoomVIP Kolkata Call Girl Salt Lake 👉 8250192130  Available With Room
VIP Kolkata Call Girl Salt Lake 👉 8250192130 Available With Room
 
Russian Call Girls in Kolkata Ishita 🤌 8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Ishita 🤌  8250192130 🚀 Vip Call Girls KolkataRussian Call Girls in Kolkata Ishita 🤌  8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Ishita 🤌 8250192130 🚀 Vip Call Girls Kolkata
 
The Intriguing World of CDR Analysis by Police: What You Need to Know.pdf
The Intriguing World of CDR Analysis by Police: What You Need to Know.pdfThe Intriguing World of CDR Analysis by Police: What You Need to Know.pdf
The Intriguing World of CDR Analysis by Police: What You Need to Know.pdf
 
VIP Kolkata Call Girl Alambazar 👉 8250192130 Available With Room
VIP Kolkata Call Girl Alambazar 👉 8250192130  Available With RoomVIP Kolkata Call Girl Alambazar 👉 8250192130  Available With Room
VIP Kolkata Call Girl Alambazar 👉 8250192130 Available With Room
 
Git and Github workshop GDSC MLRITM
Git and Github  workshop GDSC MLRITMGit and Github  workshop GDSC MLRITM
Git and Github workshop GDSC MLRITM
 
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
 
Denver Web Design brochure for public viewing
Denver Web Design brochure for public viewingDenver Web Design brochure for public viewing
Denver Web Design brochure for public viewing
 
Russian Call Girls in Kolkata Samaira 🤌 8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Samaira 🤌  8250192130 🚀 Vip Call Girls KolkataRussian Call Girls in Kolkata Samaira 🤌  8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Samaira 🤌 8250192130 🚀 Vip Call Girls Kolkata
 
Magic exist by Marta Loveguard - presentation.pptx
Magic exist by Marta Loveguard - presentation.pptxMagic exist by Marta Loveguard - presentation.pptx
Magic exist by Marta Loveguard - presentation.pptx
 
Call Girls Service Adil Nagar 7001305949 Need escorts Service Pooja Vip
Call Girls Service Adil Nagar 7001305949 Need escorts Service Pooja VipCall Girls Service Adil Nagar 7001305949 Need escorts Service Pooja Vip
Call Girls Service Adil Nagar 7001305949 Need escorts Service Pooja Vip
 
young call girls in Uttam Nagar🔝 9953056974 🔝 Delhi escort Service
young call girls in Uttam Nagar🔝 9953056974 🔝 Delhi escort Serviceyoung call girls in Uttam Nagar🔝 9953056974 🔝 Delhi escort Service
young call girls in Uttam Nagar🔝 9953056974 🔝 Delhi escort Service
 
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts serviceChennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
 
Call Girls In Mumbai Central Mumbai ❤️ 9920874524 👈 Cash on Delivery
Call Girls In Mumbai Central Mumbai ❤️ 9920874524 👈 Cash on DeliveryCall Girls In Mumbai Central Mumbai ❤️ 9920874524 👈 Cash on Delivery
Call Girls In Mumbai Central Mumbai ❤️ 9920874524 👈 Cash on Delivery
 
AlbaniaDreamin24 - How to easily use an API with Flows
AlbaniaDreamin24 - How to easily use an API with FlowsAlbaniaDreamin24 - How to easily use an API with Flows
AlbaniaDreamin24 - How to easily use an API with Flows
 
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts serviceChennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts service
 
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
定制(UAL学位证)英国伦敦艺术大学毕业证成绩单原版一比一
 

The Single Source of Truth for Network Automation - Automation Journey and Data Modeling

  • 1. The Single Source of Truth for Network Automation _____________________________________________________________________________ 
 Andy Davidson <andy@asteroidhq.com> Friday 15th June TREX Workshop 2018, Tampere Finland
  • 2. Automation Journey 📈Reporting Most network engineers begin their automation journey by producing some simple reporting software. It is low-risk, has a positive useful impact, and a good introduction to network scripting and the many libraries that support network automation. !2
  • 3. Automation Journey 📈Reporting Most network engineers begin their automation journey by producing some simple reporting software. It is low-risk, has a positive useful impact, and a good introduction to network scripting and the many libraries that support network automation. !3
  • 4. Automation Journey 📈Reporting Eventually, tasks which are repetitive, and simple to automate start to look like great candidates to automate. Engineers discover that the great libraries that integrate with software tools can be used to write as well as read configuration, and simple standalone tools are created. 🔨Tooling !4
  • 5. Automation Journey 📈Reporting Eventually, tasks which are repetitive, and simple to automate start to look like great candidates to automate. Engineers discover that the great libraries that integrate with software tools can be used to write as well as read configuration, and simple standalone tools are created. 🔨Tooling !5
  • 6. Automation Journey 📈Reporting More complex tools are eventually produced. Engineers begin to “configure the network and not the device”, so state becomes a problem (I mean state becomes properly managed). This takes the look and feel of a proper application. 🔨Tooling 📲Application !6
  • 7. Automation Journey 📈Reporting More complex tools are eventually produced. Engineers begin to “configure the network and not the device”, so state becomes a problem (I mean state becomes properly managed). This takes the look and feel of a proper application. 🔨Tooling 📲Application !7
  • 8. Automation Journey 📈Reporting The ultimate place to reach is a fully automated and integrated business with a set of processes enforced and delivered by software. “Configure the product, not the network”. Generally solved by businesses with scale challenges (mass access, hosting) but now a commonplace medium sized ISP/IXP requirement. 🔨Tooling 📲Application 🌀Business !8
  • 9. This presentation.. • Offer a technical perspective/thoughts on architecture on Greenfield deployment at the ‘automated business’ end of the spectrum • What motivated this decision? • Replication - “as a service” product • Efficiency, leanness • Service assurance (rapid provisioning, ongoing high availability) • Integration with third party peering networks, Euro-IX, PeeringDB • Experience in this field, and frustration with traditional model • Chance to align business and technical process from the start - in our “DNA” !9
  • 10. This presentation .. (2) • Data model • Why and how to build a data model to support integrated automated business • Software architecture for network centric businesses • Abstraction • APIs & API integration with customers • Software testing • Useful third party tools !10
  • 11. OrganisationsPeople What I mean, “data model”? Products Configured Services • A description of the things your business needs to ‘know’ in order to operate • Start with the steady state of the business Infrastructure Elements !11
  • 12. What I mean, “data model”? OrganisationsPeople Products Configured Services Infrastructure Elements Quotes Configurations • Then model the interactions between those “things” !12
  • 13. Why to care from an engineering point of view? OrganisationsPeople Products Configured Services Infrastructure Elements Quotes Configurations Monitoring !13
  • 14. Where does/shall data live? Finance Sales SupportEngineering !14
  • 15. Where does/shall data live? Finance Sales SupportEngineering Fundamentally it is fine for data to “live” in different tools and databases !15
  • 16. Where does/shall data live? Finance Sales SupportEngineering Search Engine (Netherlands) B.V. Search Engine, Inc. Search Engine !16
  • 17. Where does/shall data live? Finance Sales SupportEngineering Search Engine (Netherlands) B.V. Search Engine, Inc. Search Engine We just deal with Fred !17
  • 18. Where does/shall data live? Finance Sales SupportEngineering Fundamentally it is 
 not fine for more than one data place to be authoritative for any single type of record The other databases must refer to the key (id) of a single authoritative source !18
  • 19. Where does/shall data live? Finance Sales SupportEngineering Fundamentally it is 
 not fine for more than one data place to be authoritative for any single type of record The other databases must refer to the key (id) of a single authoritative source We will talk about how to configure and enforce that shortly.
  • 20. Rules of Engagement • Store any item of data ONCE • Easy to ensure that it is correct • “Third normal form” • Give every record a unique ID which has nothing to do with the record • (ASN is not to be used as ID!) • Decide where it will be authoritative • Requires buy in and planning from across the business. !20
  • 21. Separate your customer/ infrastructure data Port port_id customer_id bridge_id port_name Service service_id port_id service_item1 product_id Ensure infrastructure centric and customer-centric data is not in the same table This will make your data substantially easier to maintain in terms of portability !21
  • 22. Database Fashions • Document store -vs- RDBMS • Developers like document stores because they are very extensible and less strict • “Storage” cost reduced, so now we can be lazy • Strict is a benefit / feature !22
  • 23. Common Data Stores in Engineering • SQL - Truths about users, ports, services, ‘state’, e.g. MySQL • Time Series - e.g. Port utilisation, light level, error count, e.g. InfluxDB • Third Party - Someone else’s sorted data, e.g. CRM, e.g. EuroIX/PeeringDB !23
  • 24. General Architecture Client Utilities (scripts, portals, even customers) API Worker Device A Device A Device W A single API layer makes it simpler to develop
 and monitor your platform, and easier to make
 changes to back end services as time goes by !24
  • 25. General Architecture Client Utilities (scripts, portals, even customers) API Worker Device
 A Device A Device W It also makes it easier to expose your tools and
 data to customers. This is a good thing! !25
  • 26. General Architecture Client Utilities (scripts, portals, even customers) API Worker Device
 A Device A Device W API can export data, no matter about back end
 storage format in a single format (pick JSON) !26
  • 28. Models <> Templates • Once you have confidence in your data model you can harness the power of templated configuration • Once your data model extends across the business you can do that with greater accuracy and devolved control • e.g. at Asteroid, our sales people can deliver exchange ports directly from the quotation • So can customers • Simultaneous delivery of monitoring from the quotation !28
  • 30. Templates - Jinja • Generate any kind of configuration • Takes variables from your JSON API • Facilitates programatic methods in configuration strophe • Loops • Conditionals !30
  • 33. Advantages • API layer lightweight • Retrieve and update database records • Write in a familiar type-safe language (I chose Python) • Automation layer lightweight • Essentially Ansible configuration files • Configuration “easier” than coding? !33
  • 34. Business Logic !34 Client Utilities (scripts, portals, even customers) API Worker Device A Device A Device W Ensure your API choices allow you to store, retrieve
 and process business logic as well as your technical
 products. Example: Asteroid Campaign logic.
  • 35. Worker Architecture Client Utilities (scripts, portals, even customers) API Worker Device
 A Device A Device W Must consider: • Inter Process Communication • Job and network state • Device independent • Vendor failure behaviour • Device swap-outs !35
  • 36. Inter-Process communication • Message Queue based? • e.g. RabbitMQ • 👍 Quite good support in major scripting languages • 👍 Fault tolerant, order matters, guaranteed delivery, HA • 👎 Extra software to support & Centralised • Web Services • 👍 Same technology stack as central API • 👍 Inherently extensible • 👍 Decentralised • 👎 Extra software to write and more state to manage !36
  • 37. Device Independence • I chose to write a different worker per back end technology • 👎 A bit of copy/paste code, which is an anti-pattern • 👍 No stress trying to treat different vendors generically • 👍 NAPALM allows me to continue with Ansible • 👍 Can swap out a switch/server architecture for sure !37
  • 38. Device Swap-outs • Using Ansible/NAPALM for switch configuration allows a process for rolling full configuration in event of device failure • No need for specific software feature, an operational process is ok !38
  • 39. Software Testing • Write the test first • Red, Green, Refactor mantra !39
  • 40. Integration vs Unit Testing • If you are like me, you will prefer Integration tests • Write lots, and remember to cover desired exceptions • Run on your development instance after every change • “Back to Zero” testing catches unexpected failures !40
  • 41. The Joy of Errors !41
  • 42. Ubiquity of JSON for an ISP • Especially in Peering! • PeeringDB • Euro-IX IXF-DB • Asteroid JSON !42
  • 43. Summary • Single source of truth under the control of all departments • Which is used to configure services and network • Accessible to all departments • Customer self service • Provision from quote • “Information in one place and tool” • Account Managers can do troubleshooting !43