Web Deploy is a free technology built by my team that can
improve web deployment. It is a deployment service that runs on a server, and enables
you to either locally or remotely deploy applications onto it. Web Deploy
includes built-in support for creating virtual directories and applications
within IIS, copying files and folders, provisioning databases (both SQL Server
and MySQL), setting file-system ACLs and more (it even includes built-in
providers for things like setting registry entries, registering COM components,
etc). In addition to having these built-in deployment features, it also
supports a .NET based provider API that enables you to create and plug-in your
own custom deployment actions – which allow you to customize it however you
want.
The wire-protocol for Web Deploy is HTTPS – which means Web
Deploy can be used through firewalls (enabling easy, secure, deployment to
remote hosted servers). Web Deploy also supports both admin and non-admin
deployment scenarios. The non-admin scenarios enable administrators to
configure Web Deploy on a server, and then delegate a subset of deployment
capabilities to developers who do not have admin accounts on the production
server. This enables a very secure and flexible deployment
approach. I’ll cover the configuration steps to enable delegated
deployment scenarios in my next blog post in this series.