Showcase einer CI/CD-Pipeline mit GitLab

Ziel

Was ist eine Pipeline

Wie kann ich eine Pipeline gestalten

Was bietet mir Gitlab für mein DevOps Team?

Agenda

- Motivation

- High Level Pipelines

- Gitlab Pipelines mit AutoDevops

- Task: eigene Pipeline

- Ausgestaltung von Pipelines

- Tasks: Umgestaltung

Motivation

Collaboratives Arbeiten mit Gitlab

DevOps Cycle

Elemente einer Pipeline

Highlevel

Gitlab

- Entwicklung begann 2011

- OpenSource Variante (Community Edition)

- Enterprise Variante (Enterprise Edition)

- Kann selbst betrieben werden (Onpremise)

- Als Saas verfügbar

https://about.gitlab.com/features/

Features

Unser Plan

Eine Applikation produktiv setzen

Aufgaben tracken

Änderungen vornehmen

Pipelines

Gitlab Pipeline mit AutoDevops

image: <imagename:version>
variables:
	<key> <value)
stages:
  - build
  - test
  - deploy
  - review
  - dast
  - staging
  - canary
  - production
  - incremental rollout 10%
  - incremental rollout 25%
  - incremental rollout 50%
  - incremental rollout 100%
  - performance
  - cleanup

job:
  script:
    - echo "i am a script"

workflow:
	rules:
	 <if / exists>

include:
	- template: <path>

Gitlab DSL

include:
  - template: Auto-DevOps.gitlab-ci.yml

Gitlab AutoDevops Template

Siehe: https://gitlab.com/gitlab-org/gitlab-foss/-/blob/master/lib/gitlab/ci/templates/Auto-DevOps.gitlab-ci.yml

Erste Pipeline

Demo

Task 1

Miro

Merge Requests

Text

Review Apps

Demo

Task 2

Miro

Canary Deployments

Incremental Rollout

Task 3

Miro

Security & Quality & Comliance

  • Auto Code Quality
  • Auto SAST
  • Auto Secret Detection
  • Auto Dependency Scanning
  • Auto License Compliance
  • Auto Container Scanning
  • Auto Review Apps
  • Auto DAST
  • Auto Browser Performance Testing
  • Auto Load Performance Testing

Task 4

Miro

Analytics

  • Cycle time
  • Deploys
  • DORA (DevOps Research and Assessment) “Four Keys”:
    • Speed/Velocity 
    • Stability
  • Time to Restore Service 
  • Lead time
  • Throughput

 

https://docs.gitlab.com/ee/user/analytics/

Value Stream

Task 5

Miro

Erreichte Ziele

Was ist eine Pipeline

Wie kann ich eine Pipeline gestalten

Was bietet mir Gitlab für mein DevOps Team?

GitLabPipelines

By Benjamin Nothdurft

GitLabPipelines

  • 886