Gitlab CI/CD - course 35,000 rub. from Slurm, training, Date: November 28, 2023.
Miscellaneous / / November 28, 2023
CI/CD is a DevOps practice that automates integration and delivery processes and allows you to regularly release high-quality software.
With CI/CD, you can push changes to the master branch and be sure that they will be tested and deployed to production without your participation.
CI will automatically build the software, test it, and notify you if anything goes wrong.
CD will automatically install code changes on the company's servers and run additional tests.
With CI/CD, you don't waste time finding and fixing problems and can focus on developing new features.
Senior Systems Engineer, Wrike, ex-Slurm, ex-Southbridge
– 11+ years in IT and networks, 7+ years in DevOps
– AWS Community builder and certified architect
– DevOps Kitchen Talks podcast co-host
– Mainly works with cloud providers (most often AWS), IaC (Terraform), Kubernetes, Docker, CI\CD (GitLab and others) and other tools
All classes take place in Slurm’s Personal Account. You choose where and when to watch them. After studying each topic, you will need to complete a practical task at the platform stands.
The first 2 topics are available for free in the mini-course “What is CI/CD?”
What is CI/CD and what problems does this technique solve?
- Historical reference.
- The need to automate releases, testing, and their repeatability.
- Accelerate product development.
- Unification and capacity for product assembly.
General principle of CI/CD operation
Understand the role of CI/CD in workflows and what Gitlab implements
- Pipeline development method.
- Pipelines, builds, artifacts.
- CI and CD (deployment and delivery)
Practice: quick start with Gitlab CI.
Overview of CI systems
Learn about the main players who offer CI/CD tools on the market
- TravisCI, CircleCI.
- Github Actions.
- Jenkins/TeamCity.
- Gitlab CI
Practice: implementing a python pipeline in CircleCI, Github Actions, Jenkins, Gitlab CI
Gitlab overview, installation and configuration
Find out what components Gitlab consists of, learn how to run the Gitlab server
- What does Gitlab consist of, what features and components does it have?
- How to install Gitlab?
- Basic settings of the Gitlab system.
Practice: launching a Gitlab server
Your first project in Gitlab
Learn recommendations for working with Gitlab after installation: security and maintenance
- We create our project in Gitlab.
- Best Practices (user accounts, LDAP authorization, etc.).
Practice: creating a simple pipeline
Gitlab Runner and its configuration
Find out what a runner is and how they are launched
- Tasks and capabilities of runner.
- What types are there and for what cases are they needed?
- Setting up runner for a project.
Practice: setting up Gitlab runner
File .gitlab-ci.yml
Learn the syntactic features of the Gitlab pipeline description and main features
- Why is this file needed, what is it?
- Syntax, basic approaches. CI Linter from Gitlab.
Practice: Creating an Advanced Pipeline
Kubernetes integration
Find out how Gitlab can integrate with Kubernetes and learn how to deploy an application inside a cluster
- Authorization in the cluster for runners.
- Native method of integrating Gitlab with Kubernetes
Practice: writing a pipeline for deploying an application in Kubernetes via Gitlab
Advanced GitLab CI Techniques (and Features)
Learn the most complex and interesting functionality in Gitlab
- Include, templating.
- Working with variables.
- Conditions for working with stages.
- Stage dependencies and concurrency.
- Dealing with incidents. Rollback and dynamic environments.
- Adding Rollback capability to the pipeline
Practice: a checklist for convenient snippets that can be useful in real projects
GitOps
Learn about the GitOps approach and how it can be implemented using Gitlab CI
- Push and Pull model for CI/CD pipelines.
- ArgoCD.
Practice: installation and use of ArgoCD
Security in CI/CD
Learn how to secure your code and your CI/CD pipelines using GitLab CI
- Secret variables.
- Checking the code for security.
Practice: learn how to integrate GitLab CI with HashiCorp Vault
The perfect pipeline with Slurm
We will consolidate the material in practice and create a Production-grade pipeline that can serve as a prototype for real projects
Writing a real production-ready CI/CD process in GitLab CI