The year is 2003 and “the boy” is handed his first view of console access to a Cisco switch by a chap going by the name of Mr Ken Worthy. He gets shown a basic configuration and then a mission starts, a mission to know every little detail about that and every switch and router that they have along with their capabilities, to nail-down the perfect configurations for the particular organisation that he works for and to make the process of adds, moves and changes as optimised and ‘catalogued’ as possible (some network monitoring sensors were disabled in the making of…!).
The need for one such optimisation arises because he is fed up of being pestered to move interface configuration lines from one port on a switch to another port on another switch when he has more pressing and pro-active work to do; there’s a team dedicated to moving IT equipment between desks/buildings and the network changes are the only bit of the process when they need to involve someone else. He starts by defining some smart port macros for different types of endpoints and pushes them out to every switch. These macros have variables in them, most notably for the VLAN(s) and L2 security toolkit options that should be configured – different endpoints, for many reasons, sit in different segments. This makes the process a little faster and standardised but the network team are still involved in this routine and basic task. He then works with a developer in the IT team to write a web-based application (after evaluating the market for such a tool… that of course would have to be zero or next to zero cost…). This application will give the ‘move team’ their own means of doing the same task, notably without involving said “boy” or his colleagues. The app user selects switches + pre-authorised port numbers and the app accesses those switches, defaults the port configurations, and then lastly, it applies a macro with the relevant variables defined. With the advent of app/server virtualisation and shared services initiatives the same app becomes more relevant to work in the DCs.
What he didn’t appreciate at the time was that he and his colleagues’ were performing a 5* example of what was wrong with the provisioning and changing of ICT services. Work-day time, personal time, overtime; time and money put into customising-against and optimising a very basic process that could even have been done before by someone else or be a standard need everywhere. He also later found out, while blogging at http://rbcciequest.wordpress.com, that one of the config lines in one the macro was incorrect. How?! He knew the switches and their options inside out, he’d tested it, he’d asked an expert… human error was obviously still a possibility, and now it was being repeated within a non-standard app. There are many other stories to tell, especially when looking at the to-ing and fro-ing in the DC in the aftermath of this time!
The business’ simple requirement was to move staff, an app had been built, the app had a requirement of the network, the requirement was for the app itself to trigger configuration changes across the network by accessing multiple touch points and then dropping a static script written in a network-device specific language (CLI), replacing variables point-in-time. It was all too complicated and specific. Yet, it was still beneficial and worthwhile.
It’s now 2014, the apps are more complicated and demanding, the criticality of ICT to core business is on a different level compared to then, uptime is vital and there are often much bigger inefficiencies as the one described above. Data Centres are at
the core of ICT services and ICT is an enabler (and disabler!) of business
more than ever before. We’ve got a lot to look forward to, much non-trivial learning has been brought with us from the past, the top-down push of cloud consumption models are displayed in the innovation and [application programming] interfaces that are here today. This blog is about looking at this new wave of service consumption models, technologies and dedicated solutions. Let’s cross the chasm and destroy the hyperbole!
FYI The next couple of posts will be hold a theme of ‘Real-world programmability across the DC stack’. They also won’t be written in the 3rd person!