A presentation about how a single source of truth, expressed in an elegant data model, is used to operate an Internet business' process and network automation.
Many automation presentations to date have considered programming techniques/skills/languages a network engineer embarking upon an automation project shall need. Or, concentrated on a vendor's automation features, so that the audience can see the Arista or the Juniper integration options. Little has been produced to date which explains how an engineer will integrate software relevant business processes or product design.
If an IXP (but equally an ISP, a hosting company, etc.) concentrates only on the automation platform facing their network infrastructure, whilst the instruction set to manage the network is automated, without integration into the company's products or customer's requirements, can the company really be said to be automated?
When Asteroid embarked upon a platform that could build and operate fully autonomous peering platforms, it became clear that the automation systems that we build must have a deep integration with the network switches, and the servers that will support the platform, but also the business processes that would be used to create and operate exchanges/port services.
When a company extends the scope of the automation project into the product set, sales process, monitoring there are a number of efficiencies realized:
- Freedom to provide services by nontechnical teams
- The speed of deployment of customer services (reduce time to bill!)
- The accuracy of monitoring systems
- More customer self-service options
- Rich API that customers can deploy into their own software
- SLA and outage validation
Presentation to cover:
A technical presentation that explains key concepts/("lessons learned") to networking companies (ISPs, IXPs, content companies) looking to embark upon an automation project. Concentrating specifically on:
- Why and how to build a data model that can describe your customers, products, and network, teams
- What normalization is, and why/how to use it
- Why and how to abstract different layers of technical systems to
allow vendor changes/flexibility
- How and why to use the data model to build systems configurations and
monitoring templates
- How and why to abstract between technical elements (like "ports") and
all matters relating to the service on those technical elements
- How and why to expose parts of it to customers to provide an extra layer of transparency and benefit to your end users
- How to integrate with data which is in third-party databases
- The mistakes I made and had to refactor out after launch