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

異音検知プラットフォーム開発におけるMLOpsの実際と考察 - MLOps コミュニティ #3
異音検知プラットフォーム開発におけるMLOpsの実際と考察 - MLOps コミュニティ #3 異音検知プラットフォーム開発におけるMLOpsの実際と考察 - MLOps コミュニティ #3
異音検知プラットフォーム開発におけるMLOpsの実際と考察 - MLOps コミュニティ #3
Shota Saitoh
 
Introduction to Zend_Pdf
Introduction to Zend_PdfIntroduction to Zend_Pdf
Introduction to Zend_Pdf
dennisdc
 
Im workflow説明資料(patch01対応)
Im workflow説明資料(patch01対応)Im workflow説明資料(patch01対応)
Im workflow説明資料(patch01対応)
NTTDATA intra-mart
 

What's hot (20)

20200514 blockchain.tokyo v5
20200514 blockchain.tokyo v520200514 blockchain.tokyo v5
20200514 blockchain.tokyo v5
 
異音検知プラットフォーム開発におけるMLOpsの実際と考察 - MLOps コミュニティ #3
異音検知プラットフォーム開発におけるMLOpsの実際と考察 - MLOps コミュニティ #3 異音検知プラットフォーム開発におけるMLOpsの実際と考察 - MLOps コミュニティ #3
異音検知プラットフォーム開発におけるMLOpsの実際と考察 - MLOps コミュニティ #3
 
僕らのデータ同期プラクティス
僕らのデータ同期プラクティス僕らのデータ同期プラクティス
僕らのデータ同期プラクティス
 
WACATE2016 冬 組み合わせテスト
WACATE2016 冬 組み合わせテストWACATE2016 冬 組み合わせテスト
WACATE2016 冬 組み合わせテスト
 
品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)
品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)
品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)
 
Introducing libpd -Pdをアプリのサウンドエンジンに-
Introducing libpd -Pdをアプリのサウンドエンジンに-Introducing libpd -Pdをアプリのサウンドエンジンに-
Introducing libpd -Pdをアプリのサウンドエンジンに-
 
apidays LIVE India 2022 - Building the API Banking capability
apidays LIVE India 2022 - Building the API Banking capabilityapidays LIVE India 2022 - Building the API Banking capability
apidays LIVE India 2022 - Building the API Banking capability
 
ソフトウェアテストの最新動向の学び方
ソフトウェアテストの最新動向の学び方ソフトウェアテストの最新動向の学び方
ソフトウェアテストの最新動向の学び方
 
Rspec、あなたならどう書く? 20190626
Rspec、あなたならどう書く?  20190626Rspec、あなたならどう書く?  20190626
Rspec、あなたならどう書く? 20190626
 
Strategic Latency and World Power: How Technology Is Changing Our Concepts of...
Strategic Latency and World Power: How Technology Is Changing Our Concepts of...Strategic Latency and World Power: How Technology Is Changing Our Concepts of...
Strategic Latency and World Power: How Technology Is Changing Our Concepts of...
 
Advanced Voice Conversion
Advanced Voice ConversionAdvanced Voice Conversion
Advanced Voice Conversion
 
Introduction to Zend_Pdf
Introduction to Zend_PdfIntroduction to Zend_Pdf
Introduction to Zend_Pdf
 
ソフトウェア アーキテクチャ基礎 輪読会資料 第2章 アーキテクチャ思考
ソフトウェア アーキテクチャ基礎 輪読会資料 第2章 アーキテクチャ思考 ソフトウェア アーキテクチャ基礎 輪読会資料 第2章 アーキテクチャ思考
ソフトウェア アーキテクチャ基礎 輪読会資料 第2章 アーキテクチャ思考
 
2019 年後半 海外動画技術動向
2019 年後半 海外動画技術動向2019 年後半 海外動画技術動向
2019 年後半 海外動画技術動向
 
[cb22] Your Printer is not your Printer ! - Hacking Printers at Pwn2Own by A...
[cb22]  Your Printer is not your Printer ! - Hacking Printers at Pwn2Own by A...[cb22]  Your Printer is not your Printer ! - Hacking Printers at Pwn2Own by A...
[cb22] Your Printer is not your Printer ! - Hacking Printers at Pwn2Own by A...
 
Im workflow説明資料(patch01対応)
Im workflow説明資料(patch01対応)Im workflow説明資料(patch01対応)
Im workflow説明資料(patch01対応)
 
Xbox system ppt
Xbox system pptXbox system ppt
Xbox system ppt
 
OpenStack構築手順書Mitaka版 (期間限定公開)
OpenStack構築手順書Mitaka版 (期間限定公開)OpenStack構築手順書Mitaka版 (期間限定公開)
OpenStack構築手順書Mitaka版 (期間限定公開)
 
クラウド利活用セミナー資料 中里
クラウド利活用セミナー資料 中里クラウド利活用セミナー資料 中里
クラウド利活用セミナー資料 中里
 
はじめてのスクラム体験ワークショップ 〜 アジャイル時代のテスターを目指して
はじめてのスクラム体験ワークショップ 〜 アジャイル時代のテスターを目指して はじめてのスクラム体験ワークショップ 〜 アジャイル時代のテスターを目指して
はじめてのスクラム体験ワークショップ 〜 アジャイル時代のテスターを目指して
 

Similar to Single Source of Truth for Network Automation

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

Similar to Single Source of Truth for Network Automation (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

VIP Call Girls Himatnagar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Himatnagar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Himatnagar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Himatnagar 7001035870 Whatsapp Number, 24/07 Booking
dharasingh5698
 
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
Diya Sharma
 
( Pune ) VIP Baner Call Girls 🎗️ 9352988975 Sizzling | Escorts | Girls Are Re...
( Pune ) VIP Baner Call Girls 🎗️ 9352988975 Sizzling | Escorts | Girls Are Re...( Pune ) VIP Baner Call Girls 🎗️ 9352988975 Sizzling | Escorts | Girls Are Re...
( Pune ) VIP Baner Call Girls 🎗️ 9352988975 Sizzling | Escorts | Girls Are Re...
nilamkumrai
 
Low Sexy Call Girls In Mohali 9053900678 🥵Have Save And Good Place 🥵
Low Sexy Call Girls In Mohali 9053900678 🥵Have Save And Good Place 🥵Low Sexy Call Girls In Mohali 9053900678 🥵Have Save And Good Place 🥵
Low Sexy Call Girls In Mohali 9053900678 🥵Have Save And Good Place 🥵
Chandigarh Call girls 9053900678 Call girls in Chandigarh
 
Call Girls in Prashant Vihar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Prashant Vihar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort ServiceCall Girls in Prashant Vihar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Prashant Vihar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 

Recently uploaded (20)

Call Now ☎ 8264348440 !! Call Girls in Rani Bagh Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Rani Bagh Escort Service Delhi N.C.R.Call Now ☎ 8264348440 !! Call Girls in Rani Bagh Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Rani Bagh Escort Service Delhi N.C.R.
 
Real Men Wear Diapers T Shirts sweatshirt
Real Men Wear Diapers T Shirts sweatshirtReal Men Wear Diapers T Shirts sweatshirt
Real Men Wear Diapers T Shirts sweatshirt
 
Russian Call Girls Pune (Adult Only) 8005736733 Escort Service 24x7 Cash Pay...
Russian Call Girls Pune  (Adult Only) 8005736733 Escort Service 24x7 Cash Pay...Russian Call Girls Pune  (Adult Only) 8005736733 Escort Service 24x7 Cash Pay...
Russian Call Girls Pune (Adult Only) 8005736733 Escort Service 24x7 Cash Pay...
 
VIP Call Girls Himatnagar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Himatnagar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Himatnagar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Himatnagar 7001035870 Whatsapp Number, 24/07 Booking
 
Hire↠Young Call Girls in Tilak nagar (Delhi) ☎️ 9205541914 ☎️ Independent Esc...
Hire↠Young Call Girls in Tilak nagar (Delhi) ☎️ 9205541914 ☎️ Independent Esc...Hire↠Young Call Girls in Tilak nagar (Delhi) ☎️ 9205541914 ☎️ Independent Esc...
Hire↠Young Call Girls in Tilak nagar (Delhi) ☎️ 9205541914 ☎️ Independent Esc...
 
Pune Airport ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready...
Pune Airport ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready...Pune Airport ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready...
Pune Airport ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready...
 
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
 
WhatsApp 📞 8448380779 ✅Call Girls In Mamura Sector 66 ( Noida)
WhatsApp 📞 8448380779 ✅Call Girls In Mamura Sector 66 ( Noida)WhatsApp 📞 8448380779 ✅Call Girls In Mamura Sector 66 ( Noida)
WhatsApp 📞 8448380779 ✅Call Girls In Mamura Sector 66 ( Noida)
 
𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...
𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...
𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...
 
Shikrapur - Call Girls in Pune Neha 8005736733 | 100% Gennuine High Class Ind...
Shikrapur - Call Girls in Pune Neha 8005736733 | 100% Gennuine High Class Ind...Shikrapur - Call Girls in Pune Neha 8005736733 | 100% Gennuine High Class Ind...
Shikrapur - Call Girls in Pune Neha 8005736733 | 100% Gennuine High Class Ind...
 
( Pune ) VIP Baner Call Girls 🎗️ 9352988975 Sizzling | Escorts | Girls Are Re...
( Pune ) VIP Baner Call Girls 🎗️ 9352988975 Sizzling | Escorts | Girls Are Re...( Pune ) VIP Baner Call Girls 🎗️ 9352988975 Sizzling | Escorts | Girls Are Re...
( Pune ) VIP Baner Call Girls 🎗️ 9352988975 Sizzling | Escorts | Girls Are Re...
 
VIP Model Call Girls Hadapsar ( Pune ) Call ON 9905417584 Starting High Prof...
VIP Model Call Girls Hadapsar ( Pune ) Call ON 9905417584 Starting  High Prof...VIP Model Call Girls Hadapsar ( Pune ) Call ON 9905417584 Starting  High Prof...
VIP Model Call Girls Hadapsar ( Pune ) Call ON 9905417584 Starting High Prof...
 
Russian Call girl in Ajman +971563133746 Ajman Call girl Service
Russian Call girl in Ajman +971563133746 Ajman Call girl ServiceRussian Call girl in Ajman +971563133746 Ajman Call girl Service
Russian Call girl in Ajman +971563133746 Ajman Call girl Service
 
All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445
All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445
All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445
 
Yerawada ] Independent Escorts in Pune - Book 8005736733 Call Girls Available...
Yerawada ] Independent Escorts in Pune - Book 8005736733 Call Girls Available...Yerawada ] Independent Escorts in Pune - Book 8005736733 Call Girls Available...
Yerawada ] Independent Escorts in Pune - Book 8005736733 Call Girls Available...
 
Al Barsha Night Partner +0567686026 Call Girls Dubai
Al Barsha Night Partner +0567686026 Call Girls  DubaiAl Barsha Night Partner +0567686026 Call Girls  Dubai
Al Barsha Night Partner +0567686026 Call Girls Dubai
 
Top Rated Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...
Top Rated  Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...Top Rated  Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...
Top Rated Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...
 
Low Sexy Call Girls In Mohali 9053900678 🥵Have Save And Good Place 🥵
Low Sexy Call Girls In Mohali 9053900678 🥵Have Save And Good Place 🥵Low Sexy Call Girls In Mohali 9053900678 🥵Have Save And Good Place 🥵
Low Sexy Call Girls In Mohali 9053900678 🥵Have Save And Good Place 🥵
 
Dubai Call Girls Milky O525547819 Call Girls Dubai Soft Dating
Dubai Call Girls Milky O525547819 Call Girls Dubai Soft DatingDubai Call Girls Milky O525547819 Call Girls Dubai Soft Dating
Dubai Call Girls Milky O525547819 Call Girls Dubai Soft Dating
 
Call Girls in Prashant Vihar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Prashant Vihar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort ServiceCall Girls in Prashant Vihar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Prashant Vihar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
 

Single Source of Truth for Network Automation

  • 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