Adding continuous deployment into your workflow is an essential step for any professional organization. Depending on the level of the technical ability of a client, the first process improvement I've seen to introduce for clients is the ability to automate their deployment process. Having an automated build and deployment process is vital to ensure your deployments don't take the website down. If you're reading this and you're on the fence about 'wasting' time implementing continuous integration and deployment... then PLEASE trust me, you'll be saving your company months' worth of man power, even if the task seems a little daunting at first. Speaking from personal experience, if you can be the person who introduces an automated deployment process, your company/client will appreciate it. No matter how many features you build, if you can introduce a system where you can rollback bad deployments with a click of a button and remove the risk of a company's website from going down out-of-hours, which in some extreme cases I've seen, has cost companies thousands in lost reveneue, then something that you might consider as not part of your job, can actually become a major feather in your cap.
As well as earning you some brownie points with your boss, spending a little upfront time making sure everything is automated will make your life a lot easier and enjoyable. It's not uncommon to come into a client's office and find out the deployment process is copying a handful of DLL's onto servers. In 100% of the cases, this process causes far more problems than the relatively easy process of setting up continuous integration. It still amazes me that many enterprise level sized organisations don't do this, but hey ho... it is what it is.
My assumption in this article is that you're setting up continuous deployment for the first time and you have decided to use Octopus as your deployment tool. Octopus has been around for several years now, it's well established and every developer I've ever had a conversation with about it has been positive, so it's a good choice. Your next step then is to decide how to set-up Octopus. In today's guide, I'm going to explain some of the points of contention that you will need to consider before you decide on the exact approach. I think the main goal for continuous integration and deployment, is usually to just get something working, however, from experience ranging from writing MSBuild scripts, batch files, powershell script, setting up steps in Octopus and even having to update a custom deployment tool in a previous company, some ways will definitely save you hours' worth of your life compared to others. My hope of this article is to highlight where the pain points kick in so you can hopefully be aware of them before you finalize your process.
Software Architect, Programmer and Technologist Jon Jones is founder and CEO of London-based tech firm Digital Prompt. He has been working in the field for nearly a decade, specializing in new technologies and technical solution research in the web business. A passionate blogger by heart , speaker & consultant from England.. always on the hunt for the next challenge