I would like to backup, not only the databases that belong to a particular application living on a shared server, but also, those things that get stored outside of the database; the server accounts, jobs, maintenance plans and whatever else I can't think of at the moment. This backup should be complete enough that it's corresponding restore will recreate the entire application on a different SQL server. This seems like a problem others must have dealt with in the past. So before I embark on creating custom Powershell scripts for each application, I have come to ask you...
Can you help?
In the past I've achieved this by making sure my DB is in source control as well as the application code - the DB can be rebuilt to any version from the scripts.
If you want to throw in live data things get tougher but you could maybe work up a solution by using something like Redgate SQL Backup to recover specific objects and then have a solid collection of scripts to manage other aspects of the SQL Server. You'd still need to drop back to your favourite scripting tool (e.g. Powershell) to take care of server accounts and any other bits that are vital and aren't recovered as part of your lower level infrastructure recovery plans.
Easy enough to set this up but you need a good change control process to make sure all of your scripts are kept up to date.