Cisco has been promoting “Application Centric Infrastructure” as an alternative to Software Defined Networking (SDN).
I need to do more homework to appreciate the difference between SDN and ACI.
However, what struck to me was that ACI is about taking the policy out of forwarding path. As per my understanding of ACI, once a policy is set by the “intelligence” of APIC, hardware will take over forwarding.
This is strikingly similar to decision-less programming I have been advocating. Readers of this blog are aware that in decision-less programming, only I/O requires decisions. Business logic buried deep into FSMs of derived classes is implemented as policy look-up tables.
If my understanding of parallels so far is correct, I suppose ACI will have the same characteristics as decision-less programming:
- There will be no “patchability” of policies. All the policies must be explicitly known, documented and implemented
- The system will work predictably barring system level problems of running out of resources etc.
- The system will be extremely fast
- The system will be memory intensive
- The system will require sophisticated input parsing
- Testing of such systems will be trivial except at boundary conditions like array bound violations or at system level problems like thread lockups or disk overruns