ci/cd pipeline mit gitlab ci und kubernetes · api kubernetes deployment 20 kubernetes gitlab ci...

35
CI/CD Pipeline mit Gitlab CI und Kubernetes Johannes M. Scheuermann r1

Upload: others

Post on 26-May-2020

38 views

Category:

Documents


1 download

TRANSCRIPT

CI/CD Pipeline mit Gitlab CI und Kubernetes

Johannes M. Scheuermann

r1

Johannes M. ScheuermannCloud Platform Engineer @ inovex

〉 Software-Defined Datacenters

〉 Infrastructure Services

〉 High Availability /Scalability / Resilience

〉 Cloud technologies

2

inovex.de/jobs

What about you?

Motivation

Scenario: ToDo Webapp

6

Introduction

● Use Case: Managing Tasks

● HTML/CSS/JS, Golang

● Redis (Master/Slave)

Technologies

7

Gitlab KubernetesDocker

How to build your binary?

Container-based Build Slaves

Gitlab CI

11

Push Code

Pipeline

Push Code Build Artifact Trigger Tests Release Artifact Deploy

12

Pipeline

Commit

Tag

13

Pipeline

Configuration

Quelle: https://gitlab.com/inovex/pa-todo-app-web/blob/master/.gitlab-ci.yml 14

15

Pipeline

Configuration

Quelle: https://gitlab.com/inovex/pa-todo-app-web/blob/master/.gitlab-ci.yml 16

★ Build-Software dependencies

★ Reproducible builds

★ Automated Rollout

★ Rollbacks

★ Isolated feature testing

Typical CI/CD Problems

17

Deploy to Kubernetes

API

Kubernetes Deployment

19

KubernetesGitlab CI

ns: todo-app-staging

Pod v1.1 Pod v1.1DeploymentDeploy v1.2 into staging

ns: todo-app-production

Pod v1.1 Pod v1.1

API

Kubernetes Deployment

20

KubernetesGitlab CI

ns: todo-app-staging

Pod v1.1 Pod v1.1

Pod v1.2

DeploymentDeploy v1.2 into staging

ns: todo-app-production

Pod v1.1 Pod v1.1

API

Kubernetes Deployment

21

KubernetesGitlab CI

ns: todo-app-staging

Pod v1.1

Pod v1.2

DeploymentDeploy v1.2 into staging

ns: todo-app-production

Pod v1.1 Pod v1.1

API

Kubernetes Deployment

22

KubernetesGitlab CI

ns: todo-app-staging

Pod v1.1

Pod v1.2 Pod v1.2

DeploymentDeploy v1.2 into staging

ns: todo-app-production

Pod v1.1 Pod v1.1

API

Kubernetes Deployment

23

KubernetesGitlab CI

ns: todo-app-staging

Pod v1.2 Pod v1.2

DeploymentDeploy v1.2 into staging

ns: todo-app-production

Pod v1.1 Pod v1.1

24

Pipeline

Configuration

Quelle: https://gitlab.com/inovex/pa-todo-app-web/blob/master/.gitlab-ci.yml 25

★ Build-Software dependencies

★ Reproducible builds

★ Automated Rollout

★ Rollbacks

★ Isolated feature testing

Typical CI/CD Problems

26

27

Environments

28

Rollback

★ Build-Software dependencies

★ Reproducible builds

★ Automated Rollout

★ Rollbacks

★ Isolated feature testing

Typical CI/CD Problems

29

30

Review Environments

31

Config

★ Build-Software dependencies

★ Reproducible builds

★ Automated Rollout

★ Rollbacks

★ Isolated feature testing

Typical CI/CD Problems

32

Demo Time: Video!

33

youtu.be/Ly_f221O6Fo

Assets & Links

34

gitlab.com/inovex/pa-todo-app-web

Johannes M. Scheuermann

inovex GmbH

[email protected]

github.com/johcsheuer inovex.de youtube.com/inovexGmbH

CC BY-NC-ND @johscheuer gitlab.com/inovex

Feedback & Questions:

sayat.me/johscheuer