Learning Library

← Back to Library

Continuous Delivery: From Code to Production

Key Points

  • Continuous delivery, derived from the Agile Manifesto, focuses on swiftly moving **valuable** code changes into production to satisfy customers.
  • The workflow starts with building code into software, then deploying it through multiple test environments (e.g., QA, performance, staging) before reaching production.
  • Automated deployment tools—such as application release automation and continuous‑delivery pipelines—manage the migration of builds, enforce the order of environments, and apply governance rules for each transition.
  • Continuous testing across those environments is essential; merely moving bits only verifies deployability, whereas automated tests validate quality throughout the pipeline.
  • A continuous‑integration server underpins the process by handling builds and integrating with the broader CD toolchain to coordinate builds, tests, and releases.

Full Transcript

# Continuous Delivery: From Code to Production **Source:** [https://www.youtube.com/watch?v=2TTU5BB-k9U](https://www.youtube.com/watch?v=2TTU5BB-k9U) **Duration:** 00:05:44 ## Summary - Continuous delivery, derived from the Agile Manifesto, focuses on swiftly moving **valuable** code changes into production to satisfy customers. - The workflow starts with building code into software, then deploying it through multiple test environments (e.g., QA, performance, staging) before reaching production. - Automated deployment tools—such as application release automation and continuous‑delivery pipelines—manage the migration of builds, enforce the order of environments, and apply governance rules for each transition. - Continuous testing across those environments is essential; merely moving bits only verifies deployability, whereas automated tests validate quality throughout the pipeline. - A continuous‑integration server underpins the process by handling builds and integrating with the broader CD toolchain to coordinate builds, tests, and releases. ## Sections - [00:00:00](https://www.youtube.com/watch?v=2TTU5BB-k9U&t=0s) **Continuous Delivery: From Code to Production** - Eric Minick explains continuous delivery’s purpose—quickly moving valuable code into production—by outlining the build process and the use of multiple test environments (QA, performance, staging) to ensure quality before release. - [00:03:12](https://www.youtube.com/watch?v=2TTU5BB-k9U&t=192s) **Automating Continuous Delivery Governance** - The speaker outlines a CI/CD pipeline that automatically builds, tests, and progresses code through QA and staging, and discusses replacing traditional human change approval boards with automated go/no‑go decisions based on test results before production deployment. ## Full Transcript
0:00Hi, I'm Eric Minick with IBM Cloud. 0:02I want to talk a little bit about continuous delivery, 0:05which is all about "how do I quickly get code into production?". 0:11Continuous delivery as a term goes all the way back to the agile manifesto. 0:16The first principle of that says, 0:19"What's really important is that we satisfy our customers 0:24through the early and continuous delivery of valuable software." 0:29So, if we're in a place where we've got valuable changes to the code 0:34(and if our changes aren't valuable, we probably shouldn't be making them) 0:37but if we've got valuable changes to our code 0:39we want to get in production, how do we do that? 0:41That's what continuous delivery is all about. 0:43Well, the first step here is that we've got code, not software, 0:47so we need to turn it into software. 0:51That's our build process, right? Good. 0:56Now we've got software, we've got production, and we could just deploy the software into production. 1:02Is that what we're going to do? No. 1:05What we're really going to do is a whole bunch of testing 1:08to make sure that what we have actually belongs out there. 1:12So, most companies I work with have anywhere from 2 to 5 test environments. 1:20They'll have an environment named something like "QA", right, 1:26and another environment named something like "Performance" or "Stage." 1:31Well, we can use those. Alright. 1:35So, we take our software, we put it in the QA environment, we put it in the staging environment, 1:42and we put it out in production. 1:44Alright, and we should probably do some testing too. 1:47So, this is kind of the backbone or the path to production in continuous delivery. 1:54When you look at a continuous delivery tool, or you look at a continuous delivery pipeline, 1:58you'll often see this kind of perspective: "I have builds and I put them out in production." 2:04Now, what are the activities here? What are the key behaviors? 2:08So the first one is this migration that we see, right, 2:13so we can look at that migration, this migration, this migration, 2:18and we say "Okay. This requires an automatic deployment, right?" 2:27Auto deploy. This is where we see tools like application release automation, 2:34continuous delivery pipelines, very focused on "how do my builds move through the environments?", 2:40"what's the order of the environments?", "How do I manage and govern that?", 2:43"Are there rules for when I need to move from here to here to here?" That kind of content. 2:50The next side of this is it's not just about moving the bits, right, if we're just moving things around 2:56the only thing that we've tested is that we can actually deploy our software. 3:01That's valuable, but we probably have all these environments because 3:06you know down in QA, in staging, we're doing some automated testing. 3:12Right. Supporting a continuous testing kind of approach as part of our overall continuous delivery. 3:21And then we're probably also using some tooling down here that we care about. 3:26This would be our continuous integration server that does our builds, right? 3:31The idea of a build manager or a continuous integration server have all come together. 3:36So, here are the key pieces. 3:40Final idea, typically in continuous delivery, 3:44this transition here, moving from stage to prod, 3:49is going to have another level of governance on it. 3:52You might be in a fully automated situation where code commit comes in to Github. 3:59There is a trigger that tells the build server "new code's here". It automatically does a build. 4:04It triggers a deployment to QA, which automatically triggers our tests. 4:09If those pass, we automatically trigger out to stage, which automatically triggers more tests. 4:14That's great. It's continuous. It's fast. 4:17When we're down here, when we're looking at this move to prod, 4:22almost always were looking at some sort of a human getting involved. 4:26Historically, that was your change approval board, your CAB. 4:33Ideally if we're automating all of our testing, we're getting all the data, 4:37we're able to automate the CAB out of existence and 4:40just say "Hey look all the test passed, let's make a go/no-go decision here, 4:44button's clicked, we moved to prod." 4:46There may be some approvals out to a change management system, you might still have the CAB, 4:50so there's something going on here with some decision making typically. 4:54That's the basic idea of continuous delivery. 4:56You have something valuable in code. 5:01You want that in production, but you don't want to break things. 5:06So what do we do? 5:07Take our code, make it software in a build process. 5:11Now we want to make sure we're not breaking, so we're going to test our deployment process, moving to QA. 5:16We're then going to test the software with automated testing. 5:19We're going to use the same deployment process to stage, 5:22same deployment process out to production after doing more tests, more checks, getting approvals. 5:29That allows us to get those changes into production quickly and safely. 5:32And that's continuous delivery. 5:34Thank you. 5:35If you have questions, please drop us a line. 5:39If you want to see more videos like this in the future, be sure to like and subscribe.