Last week, I talked about Discovery Wizard’s Plugin Query Pack concept: the ability for DBAs to write their own inventory queries to figure out what’s going on in their environment. I talked about how we’d only deliver a few basic Plugin Query Packs with the product, because those types of queries are difficult (and expensive) for a company to deliver and support.
Even beyond the Plugin Query Packs, we’ve got some ambitious goals for what we want Discovery Wizard to accomplish. Since we want it to remain free, we have to be smart about what we build into the product versus where we just build a framework for the community. The more features we put into the product, the more bug testing we have to do, the more support people we have to add, the more developers we have to have, and it becomes tough to do as a freeware product. Striking this balance means making some compromises.
Reports via SQL Server Reporting Services
Reports aren’t cheap. Ask your BI team to build you a custom report, and if you listen closely, you can hear the cash register going ka-ching in the background. And if you think that’s expensive, you should see how expensive it is for third party vendors like Quest to build, test and maintain reports in a product installed all over the world.
The core Discovery Wizard product needs to handle the plumbing: it needs to discover servers, poll servers and update the repository. However, in order to keep it free, we have to avoid building reporting into the product. Frankly, the reporting doesn’t belong in the product anyway: it needs to be web-based or email-based so that groups of DBAs can all get the same reports without installing Discovery Wizard on their workstations. Reports will be done via SSRS reports, preferably client-side ones that we can view inside SQL Server Management Studio.
If we’re going to expect the community to write their own reports, though, we have to do our part by making the repository brain-dead-simple.
It Needs an Open, Stable, Easy-to-Understand Repository
I’ve seen a few tools that tout the ability to scan your environment to build a list of SQL Servers, but the data isn’t stored in a way that makes it easy for us to query. When I was a DBA, I based my utility queries off the IBM Director database repository because I could easily reverse engineer it to figure out where the server names and IP addresses lived. I didn’t care that the product wasn’t a database product at all – it just had a great repository.
Discovery Wizard needs that same thing: a simple repository with just a handful of tables that DBAs can extend to include any additional attributes. The documentation for the repository, as well as the documentation for the community-built Plugin Query Packs, will need to live somewhere that the brightest minds in the SQL Server community can update it at the drop of a hat – the wiki at SQLServerPedia.com.
Documentation in the SQLServerPedia Wiki
Here’s our vision:
- Run Discovery Wizard to find SQL Server instances
- Load up your list of Plugin Query Packs
- Run the Performance Best Practices pack against your instances
- Find out that you’ve got 5 databases with highly fragmented indexes
- Click on a link to find out why this is an issue
- A web browser opens to SQLServerPedia showing several articles about index fragmentation, video webcasts talking about it, and scripts to fix it
This, for me, is where Discovery Wizard really starts to show off the power of the community. When a DBA runs a product like this for the first time, they’ll be blown away by the number of other DBAs out there who dedicate their time to writing, speaking and scripting SQL Server issues.
To prepare for it, I’ll be blogging about the kinds of Plugin Query Packs we’re building in the coming weeks. I’ll show what kinds of things we’re trying to discover on servers, and what kinds of information we’d like to give to DBAs who wonder why these issues matter on their SQL Servers.