I have a fairly simple SharePoint web application, with a publishing front end, an extranet for customers and an intranet portal.
I want this web app to be easily redeployable -- pretty much a one-off automated process.
All my custom code is packaged up as features, where each feature is a project in a Visual Studio solution.
I have a number of Powershell scripts which take care of the full install of this web application. So the scripts will build the .wsp files, create the web application, create site collections, create sites, install all the solutions with stsadm, populate the publishing pages with initial data, set up navigation, set up anonymous access, setup zones, edit web.config etc. I've tried to make it so everything is automated, no Central Admin required.
The scripts are starting to sprawl a bit now so I'm wondering if Powershell is a good idea for this kind of web application building/installation. Is it a good solution? Are there alternatives? Maybe everything could be moved into a single SharePoint solution that deploy the entire application? Maybe other build systems like NAnt could be used? What are some good practices here?