Automation and the .NET framework which tools to use?
Somewhat stealing from Ian Margett's answer as the architecture is common amongst most Microsoft/.NET development organizations, the high-level target operating model for looks something like this:



The goal is to create a Continuous Deployment pipeline, using existing off-the-shelf software, namely TeamCity, ProGet, SonarQube and Octopus Deploy:


GitHub is the source code management tool, however, it could be BitBucket or Visual Studio Team Services.  The branching model and code review process are out of scope at this high level.
TeamCity is chosen as the Build System due to its tight integration with Octopus Deploy and good all-round support for .NET, msbuild and PowerShell.  TeamCity is also used as the orchestrator of deployments in Octopus Deploy.
ProGet is the package management solution which both stores Octopus Packages and proxies public package/image repositories.  The rationale for not using the built-in TeamCity NuGet store is purely for scalability reasons.
SonarQube provides continuous code quality management and reports are published as part of the TeamCity build outputs.
Octopus Deploy is used as the deployment tool for both infrastructure and code into the target platforms.


I've seen this broad approach implemented across two companies and successfully implemented it in two additional companies - in the most recent case we swapped TeamCity out for AppVeyor which worked, albeit a little painful when setting up firewall rules.