I was fortunate enough to attend the 2016 uWestFest, Umbraco conference in San Diego, California a couple of weeks ago. The highlight was definitely the people, but the sessions were really interesting as well. My only conference regret is that I couldn't see them all.
I was able to present at my own session this year and I talked about "Automated Deployment with Umbraco". We've been investing a lot over the past couple of years in tuning our deployment strategies, and it has made a world of difference. My goal was to spread the good news of TeamCity and Octopus Deploy to any interested Umbraco users.
I'v included a link to the slides, but the big takeaways are:
1. It isn't very hard.
I'm a web developer. I know my way around IIS, but I wouldn't call myself an IT guy or a server guy by any stretch of the imagination. Even so, I am able to get TeamCity and Octopus Deploy installed without a lot of pain. In the past, I HAVE run into pain getting things all connected to each other when I use TeamCity as a stand-alone tool, but Octopus Deploy handles a lot of those problems for me.
2. It enforces good practices
Before we started using TeamCity, being on-boarded to an existing project was always painful. I'd check out the latest code from source control and, more often than not, it wouldn't build. I'd need to add some special config changes or make sure such and such a file as dropped into the bin. When you set up automated deployment, you all of a sudden have a dumb computer attempting to build and deploy your code on a daily basis. It REQUIRES that your project is set up to be easy to build and run. Amazing.
Automated deployment also requires developers and designers to be more conscious of the way they work with branches in source control. Because your deployment server doesn't exercise common sense, you will be forced to set up branching structures that are clear and purposeful.
3. It improves site stability
You no longer need to worry about missing a file when you deploy code. All of the code is automatically deployed in a consistent and dependable way.