GitLab CI/CD
Course Overview
The training is designed to help teams transition from Jenkins to GitLab CI/CD. It covers key concepts, tools, and practices necessary for a smooth migration and effectively utilizing GitLab’s CI/CD pipeline features. The course delves into configuring pipelines, managing runners, and optimizing workflows while exploring advanced topics like dynamic and nested pipelines, artifact management, and templating. Focusing on real-world applications, this training ensures a seamless shift from Jenkins to GitLab for efficient and secure software delivery.
Who is this course for
This course is ideal for DevOps engineers, software developers, and system administrators responsible for implementing or maintaining CI/CD pipelines. It’s a good fit for professionals transitioning from Jenkins to GitLab or seeking to optimize their CI/CD workflows for large or complex projects. A basic understanding of CI/CD concepts is recommended, but prior experience with GitLab is not required.
Key Benefits
- Gain hands-on experience with GitLab CI/CD tools and techniques to enhance your development pipeline.
- Improve career prospects by mastering GitLab CI/CD, a leading DevOps tool major companies use.
- Learn strategies to optimize CI/CD pipelines, reducing build times and improving efficiency.
- Develop skills to manage complex downstream, including dynamic, parent-child, and nested pipelines.
- Understand best practices for migrating from Jenkins, making you more versatile in DevOps environments.
Learning Objectives
By the end of this course, you will be able to:
- Understand the fundamental differences between Jenkins and GitLab CI/CD.
- Set up and configure GitLab CI/CD pipelines tailored to your workflows.
- Implement efficient caching, artifact management, and variable usage for optimized workflows.
- Leverage templating and modularization to streamline and scale CI/CD pipelines across projects.
- Build and manage advanced pipelines, including dynamic, nested, and child pipelines, to handle complex workflows.
- Migrate existing Jenkins pipelines to GitLab, adapt them to GitLab's CI/CD architecture, and optimize them with advanced pipeline techniques.
Format
- Duration: 2 days
- Format: In-person or Remote, Instructor-led training (ILT)
- Course Difficulty: Intermediate
- Experience Level: Intermediate
- Hands-on Labs: Cloud based
Prerequisites
- Linux fundamentals
- Git fundamentals
- CI/CD Fundamentals
Course contents
Day 1: GitLab CI/CD Overview
Module 1: GitLab CI/CD Introduction
Iliyan Petkov2024-11-28T16:10:38+00:00- CI/CD Workflow: Overview of the CI/CD process and how GitLab facilitates it.
- GitLab Overview: Key features and benefits over Jenkins.
- GitLab Architecture: High-level architecture of GitLab and its components.
- Jenkins vs. GitLab CI/CD: Benefits and trade-offs when migrating from Jenkins to GitLab.
- GitLab Runners: Types (shared, group, specific) and their use cases.
- Runner Executors: Shell, Docker, and Kubernetes executors for running jobs.
Module 2: Pipeline Configuration
Iliyan Petkov2024-11-28T16:15:12+00:00- .gitlab-ci.yml Structure: Structure and syntax of the .gitlab-ci.yml file.
- First Pipeline and Jobs: Your first GitLab CI/CD pipeline and configuring jobs, understanding their roles in the pipeline.
- Stages: Organizing jobs into stages and understanding how stages are executed sequentially.
- Dependencies: Managing job dependencies and controlling the order of execution.
- Runner Selection: Using custom variables to assign runner tags in pipelines dynamically.
- Triggering Pipelines: Configuring manual, scheduled, or event-based triggers.
Module 3: Variables and Artifacts
Iliyan Petkov2024-11-28T16:16:51+00:00- Artifacts: Understanding artifacts in GitLab and how to store and share data between jobs.
- Variables: Using predefined, custom, and secret variables to control pipeline behavior.
- Scripts: Writing scripts for different stages to execute tasks.
- Artifacts via JFrog: Storing and using build artifacts via JFrog Artifactory CLI.
- Artifact Retention Policies: Managing long-term storage of artifacts.
- Caches: Speeding up builds with caching strategies for dependencies and resources.
Module 4: Job and Stage Management
Iliyan Petkov2024-11-28T16:17:50+00:00- Advanced Job Configurations: Configuring parallel execution and managing job dependencies.
- Complex Pipelines: Organizing complex pipelines with multiple stages and conditional logic.
- Precise Job Control: Using only and except rules to control job execution.
- Job Logs: Analyzing and troubleshooting job logs for better visibility and debugging.
- Dynamic Jobs: Creating pipelines with dynamic jobs by leveraging needs for flexible workflows.
- Best Practices: Managing and scaling complex CI/CD pipelines effectively.
Day 2: GitLab CI/CD Advanced
Module 5: Containers
Iliyan Petkov2024-11-28T16:26:51+00:00- Build containers: Automate Docker builds in GitLab CI/CD.
- Sign containers: Sign Docker images for integrity.
- Scan containers: Use security scanners to check for vulnerabilities.
- Multi-stage builds: Optimize container builds using multi-stage Dockerfiles.
- Push to registries: Automatically push images to DockerHub, GitLab Container
- Registry, etc.Container best practices: Apply best practices for secure container builds.
Module 6: Advanced Pipelines
Iliyan Petkov2024-11-28T16:27:49+00:00- Parent-Child pipelines: Trigger and manage child pipelines with trigger.
- Dynamic Pipelines: Create pipelines dynamically using Jinja templates.
- Python Generation: Use Python scripts to automate pipeline creation and configuration.
- Nested Pipelines: Configure and manage complex workflows with include.
- Optimization: Improve pipeline performance and scalability with advanced techniques.
- CMDB in pipelines: Create dynamic pipelines using your Configuration Management Database.
Module 7: Migration from Jenkins to GitLab
Iliyan Petkov2024-11-28T16:28:25+00:00- Jenkins Groovy: Review key concepts for migrating from Jenkins to GitLab.
- Mapping to GitLab: Translate Jenkins Groovy steps into .gitlab-ci.yml syntax.
- Conditional Logic: Convert Jenkins Groovy if/else statements into GitLab’s rules: only and except.
- Declarative Pipelines: Adapt Jenkins declarative pipelines (stages and environment blocks) to GitLab's YAML format.
- Shared Libraries: Replace Jenkins shared libraries with GitLab templates and include files.
- Migration Best Practices: Ensure a smooth transition from Jenkins to GitLab with best practices and guidelines.
Module 8: Best Practices
Iliyan Petkov2024-11-28T16:38:03+00:00- Pipeline Optimization: Techniques for optimizing CI/CD pipeline performance.
- Efficiency Improvements: Improving pipeline efficiency using caching, parallelism, and artifacts.
- Failure Handling: Implementing retries and failure-handling strategies for robust pipelines.
- Modular Pipelines: Modularizing pipelines for easier maintenance and scalability.
- Includes: Centralizing and reusing configuration across multiple projects with include.
- Large Team Management: Best practices for managing complex pipelines in larger teams.
Related Courses

Linux Fundamentals
The Linux Fundamentals course provides beginners with a comprehensive introduction to Linux operating systems. This course covers essential topics such as ...
VIEW MORE

Docker Foundation
This in-depth Docker Foundation course will give you a solid foundation in Docker and container technology, even if you are new to Docker ...
VIEW MORE

PYTHON FOUNDATION
The Python Foundation course provides beginners with a comprehensive introduction to Python programming. This course covers essential topics such as Python syntax ...
VIEW MORE

KUBERNETES KCNA
This comprehensive Kubernetes training prepares you to excel in the Kubernetes and Cloud Native Associate (KCNA) exam and managing containerized applications ...
VIEW MORE

DEVOPS FOUNDATION
DevOps is a set of practices that combines software development (Dev) and IT operations (Ops) to shorten the development lifecycle and deliver high-quality ...
VIEW MORE
Level up your skills and unlock your potential—contact us today to learn how to enroll and receive special volume discounts!