Let’s take a short stroll down IOS lane…
Best I can tell there are nine varieties of IOS:
- Regular IOS – the old warhorse running the routers.
- IOS for 6500s and 7600s – this is different than “regular IOS” since it has specific versions and release tracks. (12.2(33)SXI is the latest strain.)
- Modular IOS for 6500s and 7600s – same as above, but now “modular”.
- IOS for 3750 and 3550s – again, IOS-like but with a completely different release model and versions.
- IOS XE for the ASR line – an abstracted version of IOS that runs the IOS shell in a process along with all other hardware functions.
- IOS XR for the BFRs
- NX-OS for the new Nexus line of switches – based on SAN-OS, but used in Ethernet switches. It actual has two different lines – one for the Nexus 7000 and another for the Nexus 5000.
- Cisco IOS for ASAs
- IOS for CSM, ACE, and other service blades
So, that’s nine different varieties of IOS(there could be more). Then, of course, you can divide each line into its various versions. In good old IOS there’s the ISRs, the 7200s, and 7300s. For each hardware line there’s a version line – 12.1, 12.2, 12.3, and 12.4 (or vice-versa, for each version line there is a hardware line). Inside the versions there’s mainline, T-code, and special releases. There are also qualifiers like FCS, LD, GA, and GD…but, last year, those went away and now we have MD.
So, just for regular IOS, let’s do some math:
4 versions * 3 hardware lines * 3 release modes * 5 qualifiers = 180 different versions
Oh, wait, I forgot the feature sets. You know, the very clear and simple to understand different capability varieties you can order – Enterprise, Advanced Enterprise, Advanced IP Services, IP Services, Advanced Security, IP Voice, plus crypto versions. Probably a good 10 different varieties here. That brings us to 1,800 different versions….just for “regular IOS”.
Now, why am I picking on Cisco? Well, it’s just gotten out of control. Many will say, “Sure, it’s a lot, but no one runs all of these in their networks. You only need to track some.” True, my medium-enterprise network deals with only 7 out of the 9 varieties of IOS listed above! We use something in each of the nine versions except modular 6500/7600 (but that will change in a year) and IOS XR (because, alas, my boss will not give in and buy the CRS-1 for us). It’s gotten too much to handle. I do not have the labor resources nor the contracting dollars to constantly research, evaluate, bug scrub, and test IOS versions in many different hardware lines. Pretty soon I will need to hire a “Software Manager” to track all the different version of code we rely on. Trust me, senior management doesn’t understand, nor want to understand this problem. They just expect it to work….very well.
Cisco needs to consolidate their software lines. Come out with IOS 20.0 and announce all hardware lines (ok, 95%) will be able to run from this single code base. Set a goal of 2012. Then greatly simplify the release model with regimented, regular releases based on three modes: (1) Early Release, (2) General Release, (3) Maintenance Release. Cut the feature sets to three: (1) Base, (2) Normal, (3) Advanced. That should give us this:
1 version * 1 hardware lines * 3 release modes * 3 feature sets = 9 different versions
Even after 21.0 and 22.0 come out, it would still only be:
3 version * 1 hardware lines * 3 release modes * 3 feature sets = 27 different versions
After three versions are out (in the example above 20.0, 21.0, and 22.0) pull the earliest release and stop updating it. That keeps the system at 27 versions.
Come on Cisco…other have/are doing it. Time to step up and simplify this for customers.