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).
- 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
- Lab: Using Branches
- Branching Strategies: Git Flow, GitHub Flow, GitLabFlow, Trunc-Based Development
- OpenSource and InnerSource
- Diffing and Merging
- Lab: Merging Code
- 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