Skip main navigation

New offer! Get 30% off your first 2 months of Unlimited Monthly. Start your subscription for just £35.99 £24.99. New subscribers only T&Cs apply

Find out more

Application Deployment

A discussion on the benefits of Continuous Delivery over Manual Deployment, another function of the DevOps approach
Application deployment changes in a world of DevOps with continuous delivery. Application deployment has always been, of course, the critical piece that gets working software into the hands of real users. In the past, when we deployed manually, we often had incompletely documented steps. We relied on run books or other types of manual crutches, and our quality checks weren’t very well automated and weren’t very conclusive. This meant that in the manual deployment world, you had many, many, many more verification steps needed and very elaborate processes to confirm that the right things were happening at the right time. This was all incredibly subject to human error.
The number of times you could have something go wrong because of some innocent mistake was just way too high. So accordingly, we scheduled lots of downtime. We said, here’s the deployment window, and we made sure that window had a big buffer for error. All of that meant that we were kind of afraid of deployment and would slow down the release cadence, because we knew it would be painful. We probably needed to do it on the weekend. The weekend would probably run over, so we didn’t want to do it very often. Now, DevOps changes that, changes that dramatically. The idea of DevOps with continuous deliveries that anyone can queue a deployment.
Indeed, with continuous delivery, every commit of code triggers continuous integration. If continuous integration passes, it starts triggering a delivery sequence. Automated tests are part of that release pipeline, and automated tests validate through harsher and harsher testing in the delivery pipeline that what is getting deployed is what should be deployed. It’s not a question of manual run books anymore. It’s a question of an automated sequence. This gives you a very fast feedback. It gets your code from commit to production really quickly. The cadence gets faster. You can use techniques, like bluegreen deployments, where one deployment is live, and a second one goes live.
And the load balancer directs traffic to the new one as a way of doing progressive exposure, so progressive exposure lets you see what happens as the blast radius continually grows. And you have more users coming to the new site, and telemetry tells you what’s happening with them. And as your confidence goes up in the new deployment, you can draw down the previous version. Of course, if the opposite happens, you discover something with the new one. You can just restore all traffic to the existing, make the fix, and redeploy. Because it doesn’t take long, because it’s automated. That’s the whole idea of continuous delivery.

In the previous step, we learned about build automation and continuous integration. In this step, we look at application deployment and the value of automated deployments.

Application Deployment

Application deployment has always been the critical piece that gets software into the hands of real users. In the past, the application deployment process was a manual process that was time-consuming. Application deployment has changed in the world of DevOps with continuous delivery.

The idea of DevOps with continuous delivery is that anyone can queue a deployment with continuous delivery. Every commit of code triggers continuous integration, or continuous integration passes starts triggering a delivery sequence. Automated tests are part of that release pipeline and automated tests validate through harsher and harsher testing in the delivery pipeline, that what is getting deployed, is what should be deployed.

The Value of Automated Deployments

Some organisations still manually handle deployments to production. Often, after a build (if there is an automated build), one person or a team will manually copy to development, QA or production environments by copying and pasting files, manually changing configuration files and bringing the application online.

As you might expect (if you’ve experienced this), deployments like these might be problematic or error-prone. It might be because appropriate dependencies are not deployed, source files are missing or broken, tables are out of date or any other issues. Worse, these issues might crop up in production and cause your business major problems when users discover them. Everyone holds their breaths at 3:00am on a Saturday for verification that production still works.

Fortunately, automated deployments enable predictability and efficiency when deploying releases to any environment. By implementing automated deployments, you can deploy to multiple environments either in parallel or one at a time. You set manual approvals to certain environments, redeploy to environments, and perform configuration transforms between environments (we’ll use the term ‘release pipeline’ to indicate deployment from development through production environments). Automated deployments in DevOps are necessary for continuous delivery.

In the next step, we will consider continuous delivery.

Join the discussion

How do you currently handle application deployment? Do your deployments suffer from any of the issues discussed in this step? What workarounds have you come up with to handle these struggles?
Use the discussion section below and let us know your thoughts. Once you’re happy with your contribution, click the Mark as complete button to check the step off, then you can move to the next step.
This article is from the free online

Microsoft Future Ready: Fundamentals of DevOps and Azure Pipeline

Created by
FutureLearn - Learning For Life

Reach your personal and professional goals

Unlock access to hundreds of expert online courses and degrees from top universities and educators to gain accredited qualifications and professional CV-building certificates.

Join over 18 million learners to launch, switch or build upon your career, all at your own pace, across a wide range of topic areas.

Start Learning now