Capstone Project – Build End to End CI/CD Pipeline
Course Content
Course Intro
-
Course Intro
03:59 -
Learning Objectives
02:33 -
About the Author
04:53
Continuous Delivery Concepts
-
Outage Stories
07:12 -
The need for Setting up Continous Integration
06:42 -
What is Continuous Integration
08:51 -
Continuous Deployment and Delivery
07:36 -
Path to Continuous Delivery – Key Principles and Practices
11:03 -
How docker and kubernetes are modernizing Continuous Delivery
06:20
Setup: Creating Learning Environment
-
Installing Docker Desktop on MacOS
-
Creating a Google Cloud Account
-
Configuring a VM on GCP
-
Installing docker on a Linux VM
-
Use Case – Opinions Unlimited
-
Lab 1 Setting up the Learning Environment
Basics of Container Operations with Docker
-
Learning Objectives
01:45 -
Launching Your First Container
04:50 -
Analysing Container Launch Sequence
02:24 -
About Docker Images
04:16 -
Adding Default Container Run Options
06:34 -
Accessing Applications with Port Mapping
03:52 -
Troubleshooting Containers with ‘logs’ and ‘exec’ Commands
04:19 -
Lab 2 Getting started with Docker**
-
Assignment – Launch Containers with Docker**
-
Launching Nextcloud as a Container
04:19 -
Using Advanced Run Options with Portainer
05:24 -
Lab 2S Solutions for Docker Exercises**
-
Stopping, Removing and Cleaning Up
06:08 -
Chapter Summary**
Revision Control with Git
-
Learning Objectives
01:22 -
Adding Global Configurations for GIT Client
06:28 -
Basics of Revision Control Operations – init, status, add, commit
05:48 -
Three Trees of GIT – Working, Staging, Commit
04:40 -
Leveraging Docker to Simplify Development
07:30 -
Getting started with Branch Based Development Flow
07:47 -
Merging to Master with Branch Commit History
07:08 -
Collaborating and Syncing Changes with Remotes
06:38 -
Assignment – Create and work with Skillsjournal Repo**
-
Creating and Syncing with GitHub Repositories – Skillsjournal
03:40 -
Identifying and Resolving Conflicts**
-
Undoing Changes with GIT Reset
07:09 -
Reverting Changes Instead of Resetting
04:06 -
Lab 3 – Revision Control with Git
-
Chapter Summary
01:02
Setting up Continuous Integration with Jenkins
-
Scenario
02:45 -
Learning Objectives
01:23 -
Jenkins Setup Explained
06:25 -
Launching Jenkins with Docker
06:16 -
Jenkins Configurations Walkthrough
08:06 -
Launching your first Jenkins Job
07:31 -
Configuring a Maven Build Job
07:41 -
Adding Unit Test and Packaging Jobs
07:26 -
Configuring Build Triggers to Auto Launch Jenkins Jobs
06:43 -
Defining Downstreams, Upstreams and a Pipeline View
05:29 -
Lab 4 – Setting up Continuous Integration with Jenkins
-
Integrating GitHub with Jenkins to Setup Webhook Based Triggers
07:39 -
Adding Jenkins Status Badges to GitHub
04:38 -
Configuring Job status with Commit Messages
09:01 -
Creating CI pipeline for a NodeJS Result App**
-
Lab 4S – Solution to Creating Pipeline for NodeJS Result App
-
Lab 4A – Setting up Continuous Integration with Jenkins (Additional Topics)
-
Chapter Summary
01:18
Pipeline as a Code with Jenkinsfile
-
Scenario
03:58 -
Learning Objectives
04:15 -
Enforcing Branch Policies
05:49 -
Code Reviews with Pull Requests
08:56 -
Declarative Pipeline Syntax**
-
Creating a Sample Declarative Pipeline
07:12 -
Writing Jenkinsfile for a Java Application
08:37 -
Launching a Multi Branch Jenkins Pipeline
12:40 -
Configuring Conditional Stage Execution
08:46 -
Lab 5 – Enforcing Workflows, Pipeline as a Code**
-
Integrating Slack with Jenkins
05:22 -
Sending Notifications from a Pipeline Job
10:18 -
Lab 5A Pipeline as a Code (Additional Topics)
-
Assignment – Declarative Pipeline for a NodeJS App
01:27 -
Writing jenkinsfile for a NodeJS App
09:44 -
Lab 5S – Solution to Jenkinsfile Exercise
-
Chapter Summary
01:31
Using Docker to Simplify CI Pipelines
-
Scenario
02:23 -
Learning Objectives
02:07 -
Preparing Jenkins for Docker Agent based Builds
09:32 -
Refactoring Maven Jobs with Docker Agent
07:09 -
Building NodeJS app with Docker
03:09 -
Assignment – Declarative Pipeline for a Python App
01:50 -
Writing Jenkinsfile for Python based Vote App
05:24 -
Troubleshooting Docker Agent Jobs
06:21 -
Pull Requests, Code Review and Merge
03:37 -
Lab 6 Using Docker with Jenkins Pipelines
-
Chapter Summary
01:06
Packaging Appliations with Docker
-
Scenario
01:47 -
Learning Objectives
01:31 -
Manually Building a Docker Image**
-
Test Build NodeJS Image
08:16 -
Automating NodeJS Image Build with Dockerfile
06:35 -
Comparing Images built Manually vs with Dockerfile
03:44 -
Dockerfile Primer**
-
Understanding Iterative Docker Image Build Process**
-
Assignment – Packaging a Java App**
-
Solution part I : Test Build Image for Java App
05:03 -
Solution part II: Writing Dockerfile for a Maven Based App
06:20 -
Adding Docker Package and Publish Stage to Jenkinsfile
07:34 -
Troubleshooting Docker Build with Jenkins
04:02 -
Configuring per Stage Jenkins Agents
07:29 -
Adding Master Branch Specific Conditions and Cleaning Up
04:55 -
Assignment – Docker Build for Vote and Result Apps**
-
Adding Docker Packaging Stage to Jenkinsfile for Result and Vote**
-
Enforcing Code Review with Pull Requests**
-
Lab 7 – Packaging with Docker
-
Chapter Summary
01:21
Continuous Delivery to Dev with Docker Compose
-
Scenario
02:06 -
Learning Objectives
01:47 -
Launching Prometheus and Grafana Stack with Docker Compose
05:13 -
Writing a Simple Compose Spec with 3 Services
05:48 -
Adding DB and Redis Services, Linking those with Frontend Apps
05:46 -
Refactoring Docker Compose to v3 Spec
07:37 -
Fixing issue with Database Container**
-
Docker Compose Commands Primer
05:09 -
Deploying New Versions with Docker Compose
04:56 -
Bonus – Brining Docker Compose and Dockerfile Together**
-
Lab 8 – Deploy to dev with Docker Compose**
-
Assignment – Create a Consolidated Pipeline
02:26 -
Consolidating Jenkinsfiles into a Mono Pipeline
06:44 -
Tour of Jenkind v2 Blue Ocean UI
03:49 -
Adding Deploy to Dev Stage using Blue Ocean
06:15 -
Continuous Delivery to Dev Environments
05:35 -
Chapter Summary
01:17
Continuos Automated Testing
-
Scenario
04:26 -
Learning Objectives
03:52 -
Code Coverage setup with Jacoco
06:27 -
Improving Code Coverage with Unit Tests
03:11 -
Continuous Code Inspection with Sonarqube
05:10 -
Integrating Sonarcloud with Jenkins
05:26 -
Running Sonar Scan and Analysing Code Quality
04:41 -
Enforcing Quality by Defining Quality Gates
04:29 -
Adding Sonarqube Scanner Stage to Pipeline
05:48 -
Defining Quality Gate for Instavote Project
07:41 -
Adding Integration Tests
07:35 -
End to End Tests for Automated User Acceptance
08:00 -
Adding E2E Test to Jenkins
04:38 -
Lab 9 – Continuous Testing.pdf
-
Chapter Summary
01:15
Running Containers at Scale with Kubernetes
-
Scenario
04:07 -
Learning Objectives
03:12 -
Setup Kubernetes Cluster on Google Cloud
06:03 -
Getting Started with Kubernetes Environment
05:03 -
Install and Configure ‘kubectl’ Client
07:22 -
Deploying Frontend Vote App on Kubernetes
06:19 -
Pods, ReplicaSets and Deployments**
-
Managing and Debugging Pods with kubectl
05:58 -
Application Scalability and High Availability with Kubernetes
04:28 -
Exposing and Load Balancing Apps with Services
05:08 -
Interconnecting Apps with Kubernetes Service Discovery
03:26 -
Fixing Service Discovery Issues**
-
Lab 10 – Running Containers at Scale with Kubernetes
-
Assignment – Create Deployments and Services
02:33 -
Deploying Worker, DB and Result Apps
07:29 -
Introduction to Helm**
-
Installing Helm**
-
Deploy WordPress App with Helm**
-
Create a Helm Chart for Instavote App**
-
Chapter Summary
01:14
Continuous Deployment with Spinnaker**
-
Scenario
02:48 -
Learning Objectives
02:50 -
Setting up Spinnaker on GCP
-
Updating Spinnaker with Registry Configs
-
Building Staging Infra
-
Adding Deployment Strategy and Triggers
-
Integrating Spinnaker with Jenkins
-
Connecting Spinnaker with External Kubernetes Cluster
-
Setting up Blue/Green Deployment to Production
-
Setting up Continuous Delivery with Manual Approval
-
Deleting Previous Version Safely and Automatically
-
Testing e2e CI + CD Pipeline
-
Lab 11 – Automated Deployments with Spinnaker**
-
Chapter Summary
01:33
Student Ratings & Reviews
No Review Yet