When you are looking at your next network equipment refresh, be sure to take a long, deep look at the APIs the vendors are exporting and importing. Integration features should be near the top of your must-have feature list. I was out on the West Coast two weeks ago for a company meeting, and took an extra day to visit Arista, Juniper and Extreme. My visits reaffirmed what I already knew--speeds, feeds and port densities, while important, shouldn't be the deciding factor in your equipment purchase. Most of you will find that those features are comparable. It's the API and integration points that are differentiators.
While Arista and Juniper like to tout their high capacity and ultra-low-latency networking, the numbers they are tossing around simply don't matter to most organizations. Five microseconds of latency matters only in high-performance computing and financial (trading) segments. It's not that faster isn't better; I just don't think it is a critical decision point for most IT shops. What we are seeing is increasing integration of network equipment with other systems for automation, such as virtual machine moves/adds/deletes, and orchestration, such as deploying an entire application including the networking, storage, servers, operating system and software in one swoop.
SNMP and CLI screen scrapes aren't going to cut it for automation and orchestration. SNMP, even if it were a reliable protocol, doesn't have the access to many of the core switch and router configuration functions needed to automate actions. CLI emulation using something like Expect scripts are OK in some cases, but if you have ever had to maintain them during software upgrades (I have), you will find that they become very brittle over time unless you have a rock-solid testing methodology in place (I didn't). Even SDKs--libraries of language-specific code such as Junos SDK--are losing favor with ISVs and enterprises because they typically limit the languages that applications can be built in.
APIs, specifically RESTful APIs, that allow integration via familiar HTTP request and responses are where networking integration needs to head and is heading. This is something all the vendors are starting to support and are in various stages of implementation of. Arista, Juniper and Extreme are all working on RESTful APIs that customers and independent software vendors can use to integrate their software with the switch vendors' equipment. The power of a robust API is that you can easily--and I do mean easily--access data and execute commands using any programming tools you have on hand. It makes integration and maintenance simple and streamlined.
There are three lessons I learned:
- 100% coverage is required. Many of the APIs in active development may not have coverage of all the features and functions available at the command line. You need to find out how much coverage they have, and if they don't have 100% coverage, when will they? Coverage is important because you can't predict today what you will need tomorrow. Don' t think you will ever need to change a syslog configuration? You probably will at some point, and if you want to automate that, you really want it covered in the API.
- Vendors have to use their own API. One of the points Juniper's Mike Harding, VP & GM, Developer Products & Programs, made during our talk is that he is pushing Juniper's developers to use their own API versus the SDK for new development. His point being that Juniper's developers are demanding, and any issues with the API can be identified, resolved and updated--benefiting everyone. If a vendor doesn't use its own API for its own integration, why would you?
- Don't be afraid to script on the switch. All three vendors I talked with have on-switch scripting, and there are times when you want to automate atomic actions like port configuration--something Extreme did early on with XOS. Both Arista's and Juniper's scripting support lets you use common languages like Python to perform nearly any task you can perform on the command line.
Lastly, I was tickled once again that Arista uses XMPP and a management protocol for multiple switches. XMPP provides multiunit access over SSL with access control and audit logging. It may sound silly at first to IM your switch, but when you see it in action, you get it.
Disclaimer: I traveled on my company's dime. Juniper bought me lunch, for about $9. Arista gave me a paper notebook and pen. Juniper, not to be outdone, took my Arista pen and gave me one of its pens. When Extreme's Shehzad Merchant saw my booty, he bolted from the room, returning with a purple pen. He did not have a purple notebook for me, however.