When we recently polled IT ops practitioners on the State of Network Automation, we found the market experiencing a number of challenges. Amongst those cited specifically by NetOps professionals was a lack of integrated tools with which to move forward with automation efforts.
It is no surprise that lack of tool integration would be considered a challenge, given that the number one obstacle facing NetOps is a lack of "DevOps" skills. Typically these include development skills not traditionally associated with NetOps professionals. Integration, for the most part, requires exactly these skills. Even though NetOps are largely comfortable with command-line invocation of web and API-based protocols, this does not imply the ability to develop the systems necessary to integrate tools and technologies.
This is problematic. Swift adoption of open source solutions for IT operations has resulted in a veritable cornucopia of options for NetOps to choose from in their automation initiatives. NetOps are not willing to wait for integrations on a traditional time table. And who can blame them? The business is not willing to wait for them, after all.
That's why here at F5 we're using the same tools and frameworks we provide practitioners to rapidly respond to these kinds of needs outside of traditional product release schedules.
F5 iControlLX is a node.js based extensibility framework that enables us to execute code that extends the control plane capabilities of BIG-IP. The framework gives us the ability to integrate external systems and sources of information as well as gives us a convenient location from which to pull information from BIG-IP and push it to other systems.
One example of this is a solution called BigStats. BigStats sprang to life due to a need to integrate telemetry generated by BIG-IP with the systems that collect and analyze and dashboard the information. BigStats version 0.4 was recently committed to GitHub and now supports both traditional and AS3 data formats. Telemetry exports have also been expanded to include device-specific statistics.
The integration - developed by the Office of the CTO's Developer Advocate, Nathan Pearce - takes advantage of iControlLX and uses node.js to push telemetry to the desired endpoint on a user-specified interval. While the original request came from a single customer and targeted a single system, it's since been expanded (such is the result of open source and collaboration) and now supports targeting several collection endpoints including HTTP/S, statsd, and Kafka.
Configuration of BigStats can be accomplished locally or remotely via an HTTP POST containing the appropriate information encoded in a simple JSON format:
{ "config": { "destination": { "protocol": "[http|https|stats|kafka]", "address": "[destination address or host name]", "port": "[destination tcp port]" }, "interval": "[desired interval in seconds at which to send stats | default is 10 seconds]", "enabled": [true|false], "debug": [true|false] } }
In addition to offering a rapid way to push BIG-IP statistics into your telemetry pipeline, BigStats provides an excellent sample on which to build additional integrations in which other statistics may be useful.
It also enables NetOps to demonstrate the value of the business' investment in application services by liberating operational data relevant to applications in a way that easily integrates into dashboards like Grafana.
You can read more about BigStats v0.4 in Nathan's post or check out the repo yourself on GitHub.