3.8 out of 5
19 reviews on Udemy

LEARNING PATH: Master Continuous Delivery Pipeline with Ease

Create a complete continuous delivery pipeline using Docker, Jenkins, and Ansible
Packt Publishing
175 students enrolled
English [Auto-generated]
Understand the concept of containerization
Get to know the various Docker fundamentals
Configure Jenkins and scale it using Docker-based agents
Combine Ansible with Docker and Docker Compose
Learn the various concepts of server clustering
Implementation of server clustering using Docker Swarm
Learn different aspects related to the Continuous Delivery process
Build a complete Continuous Delivery process

Continuous Delivery is used so as to have a constant flow of changes into production through an automated software production line. The combination of Docker and Jenkins improves your Continuous Delivery pipeline using a few resources. It also helps you scale up your builds, automate tasks, and speed up Jenkin’s performance with the benefits of Docker containerization. So if you are a developer or DevOps engineer and want to master the techniques of Continuous Delivery Pipeline, then go for this Learning Path.

Packt’s Video Learning Paths are a series of individual video products put together in a logical and stepwise manner such that each video builds on the skills learned in the video before it.

 The highlights of this Learning Path are:

  • Learn how to dockerize an application for the continuous delivery process
  • Understand the principles and technical aspects of a successful continuous delivery pipeline
  • Combine Ansible with Docker and Docker Compose
  • Implement server clustering using Docker Swarm

Let’s take a quick look at your learning journey. You will start off with an introduction of continuous delivery. You will then set up a Docker server and configuring Jenkins on it. You will work through the steps to build applications on Docker files and integrate them with Jenkins using continuous delivery processes such as continuous integration and automated acceptance testing. Next, you will be introduced to continuous delivery pipelines in depth and improve the continuous integration and delivery process of app development. Finally, you will build a complete continuous delivery pipeline.

On the completion of this Learning Path, you will be able to implement a mixture of different aspects related to the continuous delivery process in your application.

Meet Your Expert:

We have the best works of the following esteemed author to ensure that your learning journey is smooth:

  • Rafal Leszko is a passionate software developer, trainer, and conference speaker living in Krakow, Poland. He has spent his career writing code, designing architecture, and tech leading in a number of companies and organizations such as Google, CERN, and AGH University. Always open to new challenges, he has given talks and conducted workshops at more than a few international conferences such as Devoxx and Voxxed Days.

Fundamentals of Continuous Delivery Pipeline

The Course Overview
This video gives overview of the entire course.
What Is Continuous Delivery?

This video, deals with basics of continuous delivery process

The Automated Deployment Pipeline

In this video, we describe how to implement Continuous Delivery process.

Prerequisites to Continuous Delivery

In this video, we take a holistic look at the whole process and define the Continuous Delivery requirements in three areas.

Building the Continuous Delivery process

In this video, we describe the tools that will be used throughout the book and their place in the complete system.

What is Docker?
Docker is an open source project designed to help with application deployment using software containers.
Docker Installation

In this video, we will look how to install Docker.

Running Docker Hello World

We will run a simple first example.

Docker Applications

In this video, we will find the desired application image on the Docker Hub.

Building Images

This section, we will see how to build Docker images using two different methods.

Docker Container States
In this video, we will run a container in the background
Docker Networking

If we want to run a website, web service, database, or a cache server inside a Docker container, then we need to understand at least the basics of Docker networking.

Using Docker Volumes
Docker volume is the Docker host's directory mounted inside the container. It allows the container to write to the host's filesystem as it was writing to its own
Using Names in Docker

So far, when we operated on the containers, we always used autogenerated names. This approach has some advantages, such as the names being unique) and automatic. In many cases, however, it's better to give a real userfriendly name for the container or the image.

Docker Cleanup

Even when the containers are not running at the moment, they need to be stored on the Docker host. This can quickly result in exceeding the storage space and stopping the machine.

Jenkins and Installation

Jenkins is an open source automation server written in Java. With the very active community-based support and a huge number of plugins, it is the most popular tool to implement the Continuous Integration and Continuous Delivery processes.

Jenkins Hello World

This video deals with simple hello world example.

Jenkins Architecture

The pipelines are usually more complex and spend time on tasks such as downloading files from the internet, compiling the source code, or running tests

Configuring Agents
We've seen what the agents are and when they can be used. However, we will see how to set up an agent and let it communicate with the master.
Custom Jenkins Images

We may want to build our own images to satisfy the specific build environment requirements. In this section, we cover how to do it.

Configuration and Management

Since Jenkins is highly configurable, you can expect much more possibilities to adjust it to your needs.

Introducing pipelines

A pipeline is a sequence of automated operations that usually represents a part of software delivery and the quality assurance process.

Commit Pipeline

The most basic Continuous Integration process is called a commit pipeline. This classic phase, as its name says, starts with a commit (or push in Git) to the main repository and results in a report about the build success or failure.

Code Quality Stages

We will extend the classic three steps of Continuous Integration with additional steps. The most widely used are code coverage and static analysis. Let's look at each of them.

Triggers And Notifications
In this section, we will see how to improve the process so that the pipeline would start automatically and, when completed, notify the team members about its status.
Team development strategies
The way you use the Continuous Integration process depends on your team development workflow. So, before we go any further, let's describe what the possible workflows is.
Dockery Registry

Docker registry is a storage for Docker images. To be precise, it is a stateless server application that allows the images to be published (pushed) and later retrieved (pulled) when needed.

Acceptance Test in Pipeline
We already understood the idea behind acceptance testing and know how to configure Docker registry, so we are ready for its first implementation inside the Jenkins pipeline.
Docker Compose
Docker Compose orchestrates containers using standard Docker mechanisms and provides a convenient way to specify the entire environment.
Acceptance Testing with Docker Compose
In this video, we will see how to apply Docker Compose for the Jenkins acceptance testing stage, let's continue the calculator project example.
Writing Acceptance Tests

This video deals with the solutions to the issue of curl command and create tests with a good structure, readable by users, and meet its fundamental goal.

Test your Knowledge

Advanced Continuous Delivery Pipeline

The Course Overview

This video gives an overview of the entire course.

Introducing Configuration Management
Configuration management is a process of controlling configuration changes in a way that the system maintains integrity over time.
Installing Ansible
In this video, we will present the installation process and then describe how it can be used separately as well as along with Docker.
Using Ansible

This video shows how to use Ansible.

Deployment with Ansible
In this video we will configure complete deployment step using Ansible. We will run the calculator service on one server and the Redis service on the second server.
Ansible with Docker
Ansible and Docker address similar software deployment. If we were to compare the two tools, then Docker does a little more, since it provides the isolation, portability, and some kind of security.
Environments and Infrastructure

In this section, we will discuss different types of environments, their role in the Continuous Delivery process, and infrastructure security aspects.

Nonfunctional Testing
Nonfunctional aspects of the software are always important, because they can cause a significant risk to the operation of the system.
Application Versioning
In this section, we get to see different versioning strategies and learn different ways of creating versions in the Jenkins pipeline.
Complete Continuous Delivery Pipeline

After discussing all the aspects of Ansible, environments, nonfunctional testing, and versioning, we are ready to extend the Jenkins pipeline and finalize a simple, but complete, Continuous Delivery pipeline.

Server Clustering

In this section, you will be introduced to the concept of server clustering and the Docker Swarm toolkit.

Docker Swarm in Practice
Docker Swarm is a native Docker clustering system, managing cluster nodes is done by the docker command and is therefore very simple and intuitive.
Advanced Docker Swarm

Docker Swarm offers many interesting features that are useful in the Continuous Delivery process. In this section, we will walk you through the most important ones.

Docker Compose with Docker Swarm

Docker Compose provides a method to defin dependencies between containers and enables scaling containers, but everything is done inside one Docker host.

Alternative Cluster Management Systems

Docker Swarm is not the only system for clustering Docker containers. Even though it's the one available off the shelf, there may be some valid reasons to install a third-party cluster manager. Let's walk through the most popular alternatives.

Scaling Jenkins

If we don't want to use the dynamic slave provisioning, then another solution for clustering Jenkins slaves is to use Jenkins Swarm.

Managing Database Changes

In this section, we will explain how to address these challenges so that the Continuous Delivery process will be as safe as possible.

Pipeline Patterns
We already know everything that is to know to start a project and set up the Continuous Delivery pipeline with Jenkins and Docker. This section is intended to extend this knowledge with a few of the recommended general Jenkins pipeline practices.
Release Patterns

This section presents the next group of patterns, this time related to the release process. They are designed to reduce the risk of updating the production to a new software version.

Working with Legacy Systems

Legacy systems are, however, way more challenging because they usually depend on manual tests and manual deployment steps. In this section, we will walk through the recommended scenario to incrementally apply Continuous Delivery to a legacy system.

Test your Knowledge
You can view and review the lecture materials indefinitely, like an on-demand channel.
Definitely! If you have an internet connection, courses on Udemy are available on any device at any time. If you don't have an internet connection, some instructors also let their students download course lectures. That's up to the instructor though, so make sure you get on their good side!
3.8 out of 5
19 Ratings

Detailed Rating

Stars 5
Stars 4
Stars 3
Stars 2
Stars 1
30-Day Money-Back Guarantee


4 hours on-demand video
Full lifetime access
Access on mobile and TV
Certificate of Completion