For the last 20 years, network design has been focussed on working around limitations of the protocols anddevices that are available. Networks are designed around the defects in the protocols that we use like Ethernet, STP, OSPF and BGP and the hardware limitations of our devices.
Networks using autonomous protocols are not perfectly predictable. The complexities of MPLS/BGP, OSPF and STP protocols fill entire textbooks and require years of study, practice and experience before we can , at best, be mostly right.
Some things that Predictable means:
- safety – the ability for individuals to act without fear of unintended consequences
- configuration changes can be made at anytime without risk
- devices can added, removed and replaced at anytime with certainty of operation
- device performance can be accurately determined, bottlenecks are clearly visible in internal architecture
- reliable – under load, during day to day operation, over time, during change.
- bug free.
- resilient under failure, outage or exceptional events.
- purchasing – licensing should be simple, fixed and predictable over multi-year budget cycles
The current generation of network technology is NOT predictable or safe.
Software runs on hardware and the hardware will always impact the software performance. But the hardware problems have, for more than 95% of networks, been solved. 10GbE Ethernet, 256000 entries in tables/TCAMS, non-blocking switch fabrics in switch hardware. x86 servers can easily handle 20Gbps of IP routing and reduce/remove the need for router hardware
The focus has now shifted to software. Some things that Software means:
- virtual devices should be preferred over hardware.
- software happens on a device AND OFF THE DEVICE. ( SDN is “off-device” networking)
- use many devices instead of one HA pair.
- open APIs that are published, documented and easy to use
- Support for Open APIs that are in common use.
- Participate properly in growing Open APIs instead of building proprietary APIs
Freedom is the power or right to act, speak or think as one wants without hindrance or restraint.
Although networkings has more freedom that most technology disciplines, it is rapidly disappearing as vendors face change driven by cloud.
Freedom in networking means the network can (and will) be part of data centre orchestration. The network is no longer a silo, there is no “edge” and is must be integrated into a larger ecosystem of the data centre. Freedom is the ability to mix and match pieces to make the whole.
Some things that Freedom means:
- free of design constraints mandated by 30 year old protocols and standards
- configuration tasks are automated and orchestrated so that the network is part of the data centre (not a stand alone silo)
- open source, open license, open APIs, and open dialog with vendors and developers.
- using the software tool, method or mode of your choice to orchestrate your network (not forced to integrate a vendor tool into your system causing it to be unreliable). Be it chef, puppet, ansible or some other tool not yet on the market. Tools should work at the device level.
- well defined and usable standards
- standards that vendors actually conform to
Freedom gives you resilience. In the next decade, massive change driven by cloud will cause:
- many networking vendors out of business,
- to change their business models
- to abandon products
- to abandon proprietary APIs, interfaces and
Three New Design Criteria
These design criteria force me to think of networks in a different way. Today we are doing what we can with what is available because that is all we have. This creates a destructive cycle of repeating the same mistakes.
I feel that using these criteria for a design starts a process of thinking differently about the process and the outcomes you want to achieve.
When you read & review a Validated Design, Best Practice or reference architecture, ask yourself if it will be predictable and safe, based on software and with the freedom to integrate into any type of architecture in the future.