making a mesh of the infrastructure

26
Making a Mesh of the Infrastructure The DRPful Approach Network Engineer, AutoZone @jpbrown1 Pete Brown

Upload: others

Post on 01-Oct-2021

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Making a Mesh of the Infrastructure

Making a Mesh of the InfrastructureThe DRPful Approach

Network Engineer, AutoZone

@jpbrown1

Pete Brown

Page 2: Making a Mesh of the Infrastructure

Pete BrownNetwork Engineer, AutoZone

Pete has supported various functional areas of infrastructure for around 20 years. He is a proponent of democratizing access to infrastructure data in order to promote learning, facilitate better decision making and reduce reliance on tribal knowledge.

Page 3: Making a Mesh of the Infrastructure

DevNet Tools & Resources

• Favorite Tutorial – Building an IOx application with Docker• Favorite Sandbox – IOx

Page 4: Making a Mesh of the Infrastructure

The Challenge

We are often asked to collect and analyze data from disparate infrastructure source types. These efforts are hindered by constant technological and environmental changes.

How can we mitigate the impact of these changes to reduce time spent on development and maintenance?

Page 5: Making a Mesh of the Infrastructure

TerminologyInfrastructure SystemAny system normally managed by IT groups and required by users or applications for day to day operations. This includes network components, directory services, collaboration services, identity management and others.

SourceAny system from which data needs to be retrieved. Since some infrastructure systems do not offer APIs, the term API would not suffice. These systems require the use of protocols such as LDAP, SNMP, various flavors of SQL, etc.

Page 6: Making a Mesh of the Infrastructure

So… many.. sources...

Page 7: Making a Mesh of the Infrastructure

Sample Sources

WirelessMgmt

TelephonyDirectoryServices

IPAM

LoadBalancers

IdentityMgmt

HardwareInventory

Page 8: Making a Mesh of the Infrastructure

Sample Sources

Source Type Protocol Data Format Spec Format Spec Source Client Language

Meraki REST XML/JSON OpenAPI Application any

CUCM – AXL/RIS SOAP XML PDF/HTML Application any

CUCM - JTAPI JTAPI binary PDF/HTML Application Java

CUC - CUPI REST XML PDF/HTML Internet any

NetScaler REST JSON PDF/HTML Internet any

Active Directory LDAP binary PDF/HTML Internet any

Page 9: Making a Mesh of the Infrastructure

Accessing a Source - Traditional

Consumer

Native

BlueCat

CUCM

NetScaler

Ansible

Page 10: Making a Mesh of the Infrastructure

1

Study Integration Interface(s)

3

Discover Instances

4

Acquire Credentials & Roles

5

Address Routing & Firewall Issues

Accessing a Source - Traditional

Could be an API or native protocol (SQL, LDAP, etc)

What instances are running in the environment? What versions are they running?

Work with service owners to acquire credentials & roles for each instance

Work with network and security groups to resolve any communication issues

2

Implement Interface Libraries

Acquire or create language specific interface libraries

Page 11: Making a Mesh of the Infrastructure

Great! You’ve integrated directlywith all the things. All done.

… but wait, there’s more…8 months later your phone rings at 2am

You have entered…

Page 12: Making a Mesh of the Infrastructure

Instances of the sourceare added to or removedfrom the environment

Credentials used to accessthe source expire

Client library dependency ischanged (Java, Python, etc)

The source is upgraded to anewer version and breaksthe client access libraries

SourceChanges

CredentialExpiration

ClientChanges

InstanceChanges

The API Circle of Suffering

API Call Failure

Page 13: Making a Mesh of the Infrastructure

Enter the Infrastructure Mesh

Page 14: Making a Mesh of the Infrastructure

DRP – Declarative Resource Protocol• A JSON based WebSocket subprotocol for declaring and consuming

resources

• Provides a relatively easy way to create a service mesh for the infrastructure

• Allows consumers to focus on data analysis functions by reducing time spent on discovery and connectivity

• The Registry and Broker nodes are meant to run as part of the network (containers on IOS XE devices)

Page 15: Making a Mesh of the Infrastructure

DRP – Declarative Resource Protocol• Sources are declared, not discovered

• Sources use a common format for declarations

• Consumers use a single logical endpoint to access all sources

• Consumers use a standardized RPC & pub/sub mechanism to access all sources

• Promotes an integrate once, use many approach

Page 16: Making a Mesh of the Infrastructure

DRP Mesh Components

Registry

Provider

Broker

Consumer

Native

BlueCat

CUCM

NetScaler

Logger

Web Client

PowerShell

Ansible

Page 17: Making a Mesh of the Infrastructure

Declare streams emitted by source

StreamsCreate new Provider

project for the source type

Provider

Add global methods to be executed by callers

Methods Declare object classes contained in source

Classes

Creating a Provider Type

Page 18: Making a Mesh of the Infrastructure

Accessing a Source - Traditional

Consumer

Native

BlueCat

CUCM

NetScaler

Ansible

Page 19: Making a Mesh of the Infrastructure

Accessing a Source - Mesh

Registry

Provider

Broker

Consumer

Native

BlueCat

CUCM

NetScaler

Logger

Web Client

PowerShell

Ansible

Page 20: Making a Mesh of the Infrastructure

1

Study Integration Interface(s)

3

Discover Instances

4

Acquire Credentials & Roles

5

Address Routing & Firewall Issues

Accessing a Source – Mesh

Could be an API or native protocol (SQL, LDAP, etc)

What instances are running in the environment? What versions are they running?

Work with service owners to acquire credentials & roles for each instance

Work with network and security groups to resolve any communication issues

2

Implement Interface Libraries

Acquire or create language specific interface libraries

Page 21: Making a Mesh of the Infrastructure

Demo Time!

Page 22: Making a Mesh of the Infrastructure

DRP Mesh Components

Registry

Provider

Broker

Consumer

Native

BlueCat

CUCM

NetScaler

Logger

Web Client

PowerShell

Ansible

Page 23: Making a Mesh of the Infrastructure

DRP Mesh Components – Future?

Registry

Provider

Broker

Consumer

Native

BlueCat

CUCM

NetScaler

Logger

DRP capable native services would not require shim providers

Web Client

PowerShell

Ansible

Page 24: Making a Mesh of the Infrastructure

Is it for you?

Pros• Simplifies source access• Promotes integrate once, use many approach• Promotes learning• Allows the use of non-listening services• Can inject services into insecure zones• Potentially consolidates access to all aspects

of an object (CUCM AXL/RIS/JTAPI)• Reduces perception of “black boxes”• Can enhance HA/DR capabilities• Optional caching mechanism• May lead to using graph queries with

disparate infrastructure sources

Cons• Loss of resolution in source system logs

(single API user) for pre-existing sources• Elimination of shortest route between

consumer and source• Dynamic nature of connections may cause

confusion when troubleshooting• Small development team (1)

Page 25: Making a Mesh of the Infrastructure

Thank you for coming!

Project used in demo:https://github.com/adhdtech/DRP

Page 26: Making a Mesh of the Infrastructure