This blog post was initially sent to the subscribers of my SDN and Network Automation mailing list. Subscribe here.
Every now and then someone asks me “Why are we making so little progress on network automation? Why does it seem so hard?”
There are some obvious reasons:
- Tightly-coupled components and humongous blast radius;
- Lack of good tools and programming interfaces;
- Lack of transactional consistency (in some cases even simple commits);
However, there’s a bigger elephant in the room: every network is a unique snowflake.
You can buy dozens of network management products, download numerous open source tools, and yet you won’t be a single step closer to offering service-level abstraction of your network to your users because it’s impossible to develop a tool that will cater to the idiosyncrasies of every single network designed by an engineer with MacGyver mentality (because the needs of his company couldn’t possibly be identical to the needs of hundreds of similar businesses around him). It’s thus impossible to develop a simple network automation tool (similar to vCenter or System Center) that would cater to the needs of mid-range market.
The best you could do today is to go down SAP route: develop a highly customizable tool (example: Cisco NSO) and deploy an army of consultants that will customize the tool to the specific needs of the target network – a fantastic undertaking if you happen to be the consultant, a pretty good fit for a service provider looking to fully automate their services, but not exactly what a reasonably-sized organization that needs a network to support its business might be looking for.
Alternatively, you can build your own solution with low-level tools like Ansible, and integrate it with an off-the-shelf or custom-built orchestration system. Should you wish to do gown this route, you might find the Building Network Automation Solutions course highly useful.
Or you could give up, say “automation is not for me” and keep doing random mistakes because you’re sick-and-tired of menial work. Before deciding giving up is the right thing to do, please read this.
Unfortunately, things won’t change for the better until we give up the “car parts” mentality and start deploying cookie-cutter networks based on a standard design. Products like Cisco’s ACI fabric are definitely the step in the right direction… until the reality intervenes and clutters a clean design with legacy integration options.