Until now, we've been publishing websites and cloud services straight from Visual Studio and using Entity Framework Code First Migrations to build our databases. Deploying systems to non-development environments from builds on a developer machine is not a good practice as we don't have a controlled way of producing a reproducible, versioned deployment. If we deploy a local build, there is no guarantee that there are no differences between the source control and the local copy of code; even if we build from a fresh branch, so that we think the code is clean and it builds on our development environment, there is no guarantee that it will run on a server as we may have developer SDKs installed, assemblies in the Global Assembly Cache (GAC) registry modifications, and so on.
Using a build server is a good way of making sure we have a clean build directly from a source control that is not influenced by the development environment and can repeatedly...