O'Reilly logo
live online training icon Live Online training

Getting started with continuous delivery (CD)

Move beyond CI to build, manage, and deploy a working pipeline

Brent Laster

Continuous is not just a popular buzzword; it’s a competitive necessity. But just like any other approach, if not well understood, continuous delivery can be done poorly. Having a good foundation in the concepts and practices is key to successful implementation of this core business tool.

In this three-hour hands-on training, Brent Laster leads a deep dive into continuous delivery (CD). You'll learn the ins and outs of continuous delivery practices and concepts, including artifacts and versioning, continuous testing, and metrics and analysis, and explore available tooling you can use to implement CD. You'll leave with a firm understanding of best practices for building, deploying, and managing a working continuous delivery pipeline in your own projects.

What you'll learn-and how you can apply it

By the end of this live, online course, you’ll understand:

  • The terminology around continuous concepts, in particular, continuous delivery (CD)
  • The key role CD plays in software development and DevOps practices
  • How to use best practices for implementing and working with CD

And you’ll be able to:

  • Use CD to implement a basic pipeline in your own projects
  • Apply CD in a software development or DevOps environment

This training course is for you because...

  • You're a DevOps engineer who wants to learn how to implement a continuous delivery model.
  • You're a software developer who wants to take advantage of continuous ideas and implementations.
  • You're a software manager who needs to manage a continuous delivery environment.

Prerequisites

Required materials and setup:

Recommended preparation:

About your instructor

  • Brent Laster is a global trainer, author, and speaker on open source technologies as well as a senior R&D manager at a top technology company. He has been involved in the software industry for more than 25 years, holding various technical and management positions.

    Brent has always tried to make time to learn and develop both technical and leadership skills and share them with others. He believes that regardless of the topic or technology, there’s no substitute for the excitement and sense of potential that come from providing others with the knowledge they need to accomplish their goals.

Schedule

The timeframes are only estimates and may vary according to how the class is progressing

Segment 1: What is CD (20 minutes)

- Instructor will discuss what Continuous Delivery (CD) is, and how it fits in with other areas such as Continuous Integration (CI), Continuous Testing and Continuous Deployment. Instructor will survey parts and practices around Continuous Delivery. Instructor will introduce Jenkins as a tool for CI/CD and for building out the pipeline used in the course.

Lab 1: Basics of CD: Setting up a simple CI process (10 minutes)

  • Students will start creating a CD pipeline in Jenkins by creating the pieces to do source management and builds and setting up a simple CI instance.

Segment 2: Continuous Testing (10 minutes)

  • Instructor will discuss what continuous testing is, its importance in the CD pipeline and how it can be implemented with Jenkins, Gradle, and other tools. Instructor will discuss the different kinds of testing that can be in a CD pipeline.

Lab 2: Adding in Testing (10 minutes)

  • Students will add testing stages to their CD pipeline and observe how those work.

Segment 3: Assembly and Versioning (10 minutes)

  • Instructor will discuss what artifacts are and the role they play in the CD process.
  • Instructor will discuss the importance of versioning artifacts and recommended practices such as Semantic Versioning.
  • Instructor will also show how we can use external processes as part of the CD pipeline.

Lab 3: Assembly (10 minutes)

Students will add the pieces to the pipeline to assemble and version artifacts.

Segment 4: Tracking Artifacts

  • Instructor will discuss artifact management and storage. (10 minutes)

Lab 4: Storing and Tracking Artifacts (10 minutes) - Students will expand their pipeline to utilize an artifact management system and publish the artifact they create in their pipeline.

Segment 5: Packaging – Part 1 (10 minutes)

  • Instructor will explain how retrieving artifacts is used in CD pipelines. Instructor will show another way to use external routines in a pipeline to accomplish custom tasks. Instructor will show how to transfer content between parts of the system. (10 minutes)

Lab 5: Packaging – Part 1 (10 minutes)

  • Students will add code to their pipeline to use a custom task to retrieve their artifact and store them for the next phase.

Segment 6: Packaging – Part 2 (10 minutes)

  • Instructor will talk about how to use containers as a means of packaing and deploying applications from a CD Pipeline. Instructor will talk about staging releases and the general ideas and options for deploying applications.

Lab 6: Packaging – Part 2 (10 minutes)

  • Students will add a method to their pipeline to be able to specify a label for packaging. Students will utilize Docker to package their application.

Segment 7: Deployment (10 minutes)

  • Instructor will discuss the process of having a separate job to deploy releases. Instructor will discuss the blue/green deployment model and review the process to implement that.

Lab 7: Deployment (5 minutes)

  • Students will deploy the release they previously created via the deployment job.

Segment 8: The entire CD process (5 minutes)

  • Instructor will review the overall CD process and highlight important aspects.

Lab 8: Full CD Example (10 minutes)

  • Students will push a change to the project, and observe it running through all the stages of CI and CD. Students will deploy their new release in place of the existing one.

Final wrap-up and questions (10 minutes)