Continuous Delivery with Git and GitLab

Course Overview

This course introduces students to the fundamentals of version control with Git and its applications for CI/CD using GitLab. Learn to effectively utilize GitLab functionality to manage your software code base and apply modern development workflows, specifically to automate testing and delivery using GitLab pipelines. Structure and configure pipelines according to best-practices and learn to troubleshoot failed jobs.

Who Should Attend

  • Solutions architects
  • Software developers
  • DevOps Engineers
  • Technical managers

Prerequisites

  • Working with Linux command line interface (CLI). Preparation video is included.
  • Basic knowledge of application development, deployment and operations.

Course Objectives

In this course, you will learn to:

  • Use git for versioning software, configuration and infrastructure code.
  • Understand git in-depth and why it currently is the most used SCM tool.
  • Understand GitLab and contrast it with other solutions on the market.
  • Utilize different development workflows including GitLab Flow.
  • Leverage GitLab to automate CI/CD pipelines.
  • Use GitLab to deploy applications to Kubernetes / OpenShift.

Course Content

Day 1

  • DevOps and Continuous Delivery
  • Git Proposition
  • Git Basic Commands
  • Lab: Create and Use Git Repos
  • Understanding Git Commits
  • Workspace, Index, Repository
  • Git Branches
  • Branching Strategies: Git Flow, GitHub Flow, GitLabFlow, Trunc-Based Development
  • OpenSource and InnerSource
  • Diffing and Merging
  • Stashing and Undoing
  • Working with Remotes
  • Lab: Creating Push / Merge Requests
  • Git Essential Internals

Day 2

  • Introduction to GitLab
  • GitLab Interface (Projects, Repos, Groups)
  • GitLab Pipelines, Stages, Jobs, Tags
  • Authoring gitlab-ci.yml
  • GitLab Editors and Web IDE
  • Lab: Creating the First Pipeline
  • Specifying Artifacts
  • GitLab Runners Explained
  • Environments and Variables
  • Troubleshooting Pipelines
  • Lab: A Pipeline for Building Container Images
  • Integrating a Kubernetes / OpenShift cluster
  • Pipeline Best Practices
  • Permissions and Roles
  • GitOps Outlook