What is the best way to configure a network? There are probably a lot of different opinions out there. Some will say there is nothing like CLI. Others will prefer GUIs. And in this last point people will not agree on what is the best GUI: this one is too complex, this one has too few functions, that one is too slow…

So let me tell you my opinion. There is not such a thing as “the” best way to configure a network, but I bet we could try to find “your” best way to configure “your” network.

I would start looking at your processes. When you get network requirements, which form do they have? Wouldn’t it be nice being able to put the requirements into the network, in the same form that you get them?

And that is exactly what you can do with API-based networks. More specifically, with ACI we have tried to build a good GUI, with some wizards to make it easier. Additionally we are going to bring a simplified version of the GUI and a CLI in the next release (see in Youtube for previews of the simplified GUI and the CLI).

But the best thing we have in ACI (in my opinion) is its API. For example, imagine you have a cable plan in an Excel spreadsheet. Why bothering in opening up the APIC’s GUI? Why not letting Excel configuring ACI directly?

This is what I have tried to show here:

Calling up a REST API from Excel VBA running on a Mac is not as easy as Python, but I managed to find an HTTP client and a JSON parser.

So after you have documented the way you want your servers connected, you press a button and your network gets configured. And if you don’t like that, you have an “deprovision” button to remove everything.

This is just an example, in my opinion the future of infrastructure configuration will not be using the CLI or the GUI that your network vendor gives you, but getting your own tools to speak to the software and hardware in your DC.

BTW, in case you are interested, I put the spreadsheet here: https://github.com/erjosito/stuff/blob/master/VBA-Cable_Plan.xlsm

What do you think about this? What is your favourite network config tool?