This training program introduces developers to the Continuous Integration/Continuous Delivery best practices they should incorporate. E.g. docker and containers, version controlling the code, setting up CI workflows, automated testing and deployment etc.

 

This is a beta program and is in progress at the moment. 

Intended Audience
This course is intended for developers who would like to enhance their development method to be more agile and start incorporate devops tools for rapid development without compromising the quality or reliability of code.
Pre Requisites
Understanding of Software Development Methodologies
Familiarity with Command Line Interface (CLI)
Familiarity with at least one programming language
Familiarity with at least one version control system

Systems Requisites
These are the prerequisites for each attendee.
Hardware Requirements:
Laptop/Desktop with high speed internet connection
8 GB RAM
4 CPU Cores
50 GB Disk Space available
Software Requirements:
Base Operating System : Windows / OS X
VirtualBox with Vagrant Installed
Sublime Editor
Git for Windows (If windows)
Homebrew ( if OS X)
Network Requirements:
Internet Access
Connectivity to GitHub

 

Course Outline
Package and Run your code anywhere with Docker Containers
Containers vs Virtual Machines
Evolution of Docker
Dockerizing Apps
Overview of Docker Hub and Docker Eco System

Getting Started with Docker
Launching a Application Container with an existing image
Container Operations
Run
Inspect
Check Logs
Stop
Delete
Attach
Network Port Mapping

Dockerizing Your Own Applications
Docker Image Basics
Working with Docker Hub Registry
Image Operations
List
Search
Pull
Customising Image Manually
Committing Image to Docker Hub Registry
Building Image Automatically with Dockerfile
Private Docker Registry Overview

Version Control with GIT
Introduction to GIT – Getting Started
Versioning Contents and Basic Operations
Working with Remotes
Branching and Merging with GIT
Git Hub / Git Stash for Hosted GIT Repositories
Concept of Hooks and Integrating GIT with Jenkins

Continuous Integration with Jenkins
Introduction to Jenkins/Hudson
Installing and Configuring Jenkins
Securing Jenkins – Authentication and Authorization
Creating Jobs/Projects with Jenkins (Types of Jobs)
Free Style Project
Maven Project
Scheduling Jobs
Linking jobs / Creating Pipelines
Plugins
Installing Plugins
SCM Plugins
Analyzers

Integrating Jenkins with other GIT/Stash , Jira
Setting up Continuous Integration Pipeline with Jenkins
Jenkins Best Practices

Build Automation
Overview of build automation tools
make
maven/gradle

Test Automation : Unit Testing and Static Code Analysis
Creating Unit Test Job with Junit
Sonarqube and Static Code Analysis
Project Gates
Integrating Jenkins with Sonarqube

Build Artifacts Management with Artifactory
Artifacts Management
Introduction to Artifactory
Integrating Artifactory with Jenkins

Continuous Delivery to Pre Production Environments
Docker Based Software Delivery
Using Dockerfiles and Docker Compose
Deploying Application Stack with Docker Compose

Automated Deployment to Production with Docker Swarm
Introduction to Docker Swarm and Container Orchestration
Setting up a Swarm Cluster
Rolling Updates/ Zero downtime deployment with swarm and docker stack deploy

Release Strategies (Conceptual Understanding and Use Cases)
Blue Green Deployments
Canary Releases
A/B Testing
Feature Toggles
Contingency Switches

Beyond Delivery – Monitoring (Conceptual Overview)
Overview of Monitoring
Health and Uptime Monitoring
Log Monitoring
Application Performance Monitoring (APM)

3 Comments
  1. Need more information about CI/CD Beta Course

  2. Hello,

    i would like to attend the CICD course, recently i moved to cicd env from server management, i would like to know more about jenkins, Maven & GIT etc. Hope this course can give me a good overview about things.

    Please revert with your comments

Leave a reply

Your email address will not be published. Required fields are marked *