Course Code: gitlabci
Duration: 14 hours
Prerequisites:

Basic ability to use GIT

Basic programming skills, e.g. in PHP.

Overview:

In the era of very rapid development of technology and an increasing number of frameworks, efficient optimization of the development process becomes crucial. The development team should be able to focus on writing solid code, while the rest of the processes related to automatic builds, tests and deployment should be carried out with a minimum number of manual steps to be performed.

After implementing Continuous Integration / Continuous Delivery (CI/CD) and deployment automation processes, companies can achieve savings in developer time of an additional 20-30%, which they can use for writing code, rather than secondary activities related to deployment or testing.

The training will allow participants to learn the logic of CI/CD operation, as well as acquire the ability to independently configure such an environment. During the training, participants will receive a starter package of configuration files and examples of working process automation DevOps.

We invite people who program mainly web applications to the training - because the most important thing here is to optimize the process.

The training is based on software GitLab, which is becoming more and more popular in Polish and global companies.

Course Outline:

Day 1

Introduction

  • DevOps - newspeak or a key role in IT projects?
  • Why GitLab CI/CD?
  • GitLab vs. other CI/CD systems (CircleCI, Travis, TeamCity)

Preparing for launch

  • Architecture and logic of the solution including: GitLab / GitLab Runner
  • System and hardware requirements
  • Installing GitLab and GitLab CI
  • Initial configuration GitLab: design, users, integrations, preparation for launching the first Continuous Integration

API tuning and preparation

  • Optimizing settings GitLab / GitLab CI: tips'n'tricks
  • Preparing API for use in trigger mechanisms

First CI/CD process

  • Installation GitLab CI Runner, system and hardware requirements
  • Configuring the project to connect to GitLab CI
  • Starting a typical process: build -> test -> deploy

Day 2

Construction of the .gitlab-ci.yml configuration file

  • Practical examples of concepts:
    • Environments & deployments
    • Protected environments
    • Job artifacts
    • Deploy via Docker
  • Variables that can be used in the YML configuration file
  • Logical constructions: only, except, when, alllow_failure, dependencies, retry

Trigger pipeline: how to trigger tasks via API?

How GitLab CI makes developers' lives easier

  • Calculation of % test coverage
  • Status of builds in MarkDown documents
  • Sending build statuses in messenger (Mattermost example)

Advanced capabilities GitLab CI

  • AutoDevOps
  • Clusters Kubernetes
  • Deploy boards
  • ChatOps
  • Web terminal

Live case study

  • build, test & deploy for a project based on PHP/Magento, running in a multi-server environment, assuming zero downtime during deployment.
Sites Published:

Polska - Wdrożenie procesu Continuous Integration / Continuous Delivery (CI/CD) z użyciem GitLab CI