Community resources for PowerShell coders
One of PowerShell's greatest strengths is its ability to glue pretty much any technologies together. We'll use that strength to pull data from a number of services, connecting the resulting dots with a graph database that could be used as a lightweight CMDB.
We'll talk about:
Different interfaces PowerShell can use, from modules to .NET libraries
Graph databases like Neo4j, and how these can be useful for sysadmins
A practical (janky) CMDB, and why these can be useful
I'm a fan of CMDBs that have useful data. They can drive automation, monitoring and alerting, reporting, and anything else that benefits from visibility.
It just so happens that:
This is a great way to illustrate the various ways to talk to things in PowerShell (modules, web APIs, .NET libraries, binaries, etc.)
Graph databases are awesome, and map to real life systems more easily than the cumbersome fun of primary keys, foreign keys, and strict schemas
Neo4j has a free, cross platform community edition, and there's a simple PowerShell module to work with it
We can instill other important lessons, e.g. modules/abstraction, community/sharing
We can provide a practical example that folks without a reasonable CMDB could borrow and extend
Heavy weight, expensive, actual CMDBs are a poor fit for shops adopting DevOps practices and principles