Course Overview
This course covers the fundamentals necessary to utilize Git and GitLab for the management of software development lifecycling using continuous integration and continuous delivery (CI/CD). At its core, GitLab offers a web-based Git repository manager featuring issue tracking, analytics, and a wiki. Within the suite includes tools to trigger builds, run tests, and deploy code with each commit or push. Builds can target Docker containers or Virtual Machines. GitLab’s ability to offer a DevOps platform in a single application makes it an attractive choice for enterprise users.
Who should attend
- DevOps Engineers
- Software Developers
- Telecommunications Professionals
- Architects
- Quality Assurance & Site Reliability Professionals
Prerequisites
None.
Course Objectives
By the conclusion of this course, attendees will learn how to use Git and GitLab to view, create, and manage code, as well as the role GitLab can play in automating builds and shortening release of applications. This includes hands-on labs learning how to check in code, including Python, Java, and GoLang applications. Practice team collaboration methods for projects and advancing code. Leave with an understanding of how Git and GitLab can fully automate the entire DevOps life cycle, from planning through to creation, build, verification, security testing, deployment to production environments, such as Kubernetes, and monitoring.
Outline: Git and GitLab Essentials (GGLE)
Day 01
- Overview of Git and GitLab
- Understanding the “source of truth”
- Git branching
- Creating git repositories
- File staging
- Making commits
- Undoing commits
- Overview of GitLab
- Shortening release cycles with automation
- How GitLab is different from GitHub (and others)
- GitLab Flow
- Merge Requests
- Dealing with & Mitigating Merge Conflicts
- Build and Testing
- Webhooks
- Generating and Using SSH keys
- Markdown for GitLab
Day 02
- Pipelines and Pipeline Architecture
- Stages
- GitLab Runner
- Writing gitlab-ci.yml
- YAML standard
- Integrating GitLab CI/CD and Cloud Environments
- GitLab scaling
- Artifacts and Cache
- GitLab API Calls
- Release tools
- Building Docker images
- Canary Deployments
- Container Scanning
- Static Application Security Testing (SAST)
- Dynamic Application Security Testing (DAST)
- Dependency Scanning for Secure Applications
- License Compliance
- Hosting methods