Network change validation is one of the toughest problems facing data center managers. An open source project Testing on Demand: Distributed (ToDD), led by developer Matt Oswalt, hopes to put a dent in the challenge.
Change and hope
Years ago, I was an enterprise architect for a government contractor. Embedded in a large U.S. Federal agency, my team supported a webcast solution that streamed to 12,000 desktops simultaneously. Our customer experienced an extended period of poor performance. During this time, we had all the data you could ask to troubleshoot the issue as it occurred. Finding a solution required waiting for a high demand period to collect diagnostic data and another event to test configuration changes. It wasn’t until we developed a test methodology to simulate the load that we made progress in resolving the issues.
Network engineers spend countless hours pouring over configurations and designing configuration changes and hardware upgrades to ensure the network meets the requirements of the applications they support. All this work is hampered by the lack of capability to validate the configuration.
Application continuous integration
Contrast the current state of network changes to an environment that has adopted a continuous integration strategy for application development. Application developers create test scripts similar to the one my team set up for the video webcast challenge. Application test scripts allow application operations to separate the development, deployment, and test functions across several teams.
In an application model, one group develops a feature or a fix. Another group deploys the change, and yet another group may be responsible for independently validating the change via a test script. Each team reviews the test script before implementation. The result is a higher level of confidence that the modification has the intended results.
Network continuous integration
Application developers have long used these methods, and there are mature tools available to help. But most of these tools focus on application validation. Now, Matt Oswalt has presented the networking community with ToDD, an open source tool that brings some test capability to network validation.
ToDD is a distributed tool that leverages a server for centralized management of the solution via the native client or REST API integration with configuration management tools. The server communicates with agents that are installed on various endpoints to create traffic.
In the example of my webcast challenge, my team could have installed agents on a subset of all of the 12,000 machines in the organization. After a change implementation, a Jenkins call could direct the agents to generate webcast client requests. My team could then have used the monitoring tools available to validate the configuration or results collected at the ToDD server. Ultimately, my team used a similar process, albeit with commercial software, such as OPNET.
ToDD is only in the very early stages of development. It does look promising. What do you think? Can network changes get to the same validation maturity level as application validation? Share your thoughts in the comments section.