+ All Categories
Home > Documents > Continuous Delivery in der Cloud eine Symbiose aus ... · •Übergangslos in GitLab integriert...

Continuous Delivery in der Cloud eine Symbiose aus ... · •Übergangslos in GitLab integriert...

Date post: 29-Aug-2019
Category:
Upload: dinhnguyet
View: 213 times
Download: 0 times
Share this document with a friend
29
OpenShift und GitLab Continuous Delivery in der Cloud Alexander Griesbaum Andreas Günzel
Transcript
Page 1: Continuous Delivery in der Cloud eine Symbiose aus ... · •Übergangslos in GitLab integriert •Workload als „gitlab-runner“ ausgelagert Einbindung z.B. via lokalem Dateisystem,

OpenShift und GitLab

Continuous Delivery in der Cloud

Alexander Griesbaum

Andreas Günzel

Page 2: Continuous Delivery in der Cloud eine Symbiose aus ... · •Übergangslos in GitLab integriert •Workload als „gitlab-runner“ ausgelagert Einbindung z.B. via lokalem Dateisystem,

Agenda

1. OpenShift

2. GitLab CI

3. Migrationsszenarien

4. Fazit und Ausblick

OpenShift und GitLab: Continuous Delivery in der CloudGünzel / Griesbaum 2

Page 3: Continuous Delivery in der Cloud eine Symbiose aus ... · •Übergangslos in GitLab integriert •Workload als „gitlab-runner“ ausgelagert Einbindung z.B. via lokalem Dateisystem,

Referenten

Alexander Griesbaum

Senior Manager

Java Enterprise Solutions

[email protected]

Andreas Günzel

Director

Java Enterprise Solutions

[email protected]

@leichtundkross @agrsbm

OpenShift und GitLab: Continuous Delivery in der CloudGünzel / Griesbaum 3

Page 4: Continuous Delivery in der Cloud eine Symbiose aus ... · •Übergangslos in GitLab integriert •Workload als „gitlab-runner“ ausgelagert Einbindung z.B. via lokalem Dateisystem,

Unser Leitsatz

WIR

VERBINDEN

WELTEN

Page 5: Continuous Delivery in der Cloud eine Symbiose aus ... · •Übergangslos in GitLab integriert •Workload als „gitlab-runner“ ausgelagert Einbindung z.B. via lokalem Dateisystem,

EXXETA auf einen Blick

Wir sind ein unabhängiges mittelständisches Technologie- und Beratungsunternehmen mit einer wertorientierten

Unternehmensführung

>780Mitarbeiter

2005gegründet

85Mio. Umsatz*

11Standorte

(D, CH, SK)

München

Stuttgart

Frankfurt/Main

Karlsruhe

Mannheim

Zürich

Nürnberg

Bratislava

Berlin

Leipzig

Braunschweig

Page 6: Continuous Delivery in der Cloud eine Symbiose aus ... · •Übergangslos in GitLab integriert •Workload als „gitlab-runner“ ausgelagert Einbindung z.B. via lokalem Dateisystem,

Was ist OpenShift?

Think of OpenShift as an operating system, images as applications

that you run on them, and the containers as the actual running

instances of those applications.

Page 7: Continuous Delivery in der Cloud eine Symbiose aus ... · •Übergangslos in GitLab integriert •Workload als „gitlab-runner“ ausgelagert Einbindung z.B. via lokalem Dateisystem,

Kubernetes vs. OpenShift

Kubernetes OKD (ehem. OpenShift Origin)

System zur Automatisierung von

Deployments, Skalierung und

Management von Container basierten

Applikationen.

De‐facto Standard zur Ochestrierung

von Docker Containern.

Kubernetes Distribution angereichert mit Tools um

die Entwicklung zu beschleunigen sowie

Deployment und Skalierung zu vereinfachen.

OKD ist das Upstream Community Project hinter

OpenShift.

Maintainer • Google, Red Hat, CoreOS, … • Red Hat

Lizenz Apache License (Version 2.0)

Plattformen AWS, Azure, Google Cloud, VMware, Hyper-V, …

Zusätzliche

Frameworks

Docker, Image Registry

Netzwerk Management

Log Management, Monitoring

OpenShift und GitLab: Continuous Delivery in der CloudGünzel / Griesbaum 7

Page 8: Continuous Delivery in der Cloud eine Symbiose aus ... · •Übergangslos in GitLab integriert •Workload als „gitlab-runner“ ausgelagert Einbindung z.B. via lokalem Dateisystem,

OpenShift Versionen im Überblick

OpenShift Online OpenShift Dedicated OpenShift Container Platform (OCP)*

On-demand Public Cloud Enterprise Public Cloud On-premises private PAAS

Kosten &

Support

Starter

• Kostenlos

• Limitiert auf 1 Projekt,

1GB Ram, 1GB Storage

• Geteilte Ressourcen

• Kein Support

Pro

• ab $50/Monat

• Geteilte Ressourcen

• Basis Support

• ab $48.000/Jahr

• HA Cluster mit

4 Application Nodes,

100GB Storage,

48TB I/O

• Dedizierte Ressourcen

• Premium Support

Subscription „Starter“

• $4.000/Jahr

• Limitiert auf 2 Cores

• Basis Support

Subscription „Premium“

• $6.000/Jahr

• Limitiert auf 2 Cores

• Premium Support

Plattformen • Gehostet in Public Cloud

• Betrieben von Red Hat

• Gehostet in Public Cloud

(AWS, GCP, Azure*)

• Betrieben von Red Hat

• Gehostet und betrieben im

firmeneigenen Rechenzentrum oder

Private Cloud

OpenShift und GitLab: Continuous Delivery in der CloudGünzel / Griesbaum 8

Page 9: Continuous Delivery in der Cloud eine Symbiose aus ... · •Übergangslos in GitLab integriert •Workload als „gitlab-runner“ ausgelagert Einbindung z.B. via lokalem Dateisystem,

OpenShift Architektur

OpenShift und GitLab: Continuous Delivery in der CloudGünzel / Griesbaum 9

Page 10: Continuous Delivery in der Cloud eine Symbiose aus ... · •Übergangslos in GitLab integriert •Workload als „gitlab-runner“ ausgelagert Einbindung z.B. via lokalem Dateisystem,

OpenShift Architektur

OpenShift und GitLab: Continuous Delivery in der CloudGünzel / Griesbaum 10

Page 11: Continuous Delivery in der Cloud eine Symbiose aus ... · •Übergangslos in GitLab integriert •Workload als „gitlab-runner“ ausgelagert Einbindung z.B. via lokalem Dateisystem,

OpenShift Architektur

OpenShift und GitLab: Continuous Delivery in der CloudGünzel / Griesbaum 11

Page 12: Continuous Delivery in der Cloud eine Symbiose aus ... · •Übergangslos in GitLab integriert •Workload als „gitlab-runner“ ausgelagert Einbindung z.B. via lokalem Dateisystem,

Warum OpenShift?

OpenShift und GitLab: Continuous Delivery in der CloudGünzel / Griesbaum 12

Page 13: Continuous Delivery in der Cloud eine Symbiose aus ... · •Übergangslos in GitLab integriert •Workload als „gitlab-runner“ ausgelagert Einbindung z.B. via lokalem Dateisystem,

Warum OpenShift?

• Aus strategischer Sicht

Open Source

Enterprise Support & Trainings

Runs everywhere

• Aus Sicht von Entwicklung und Betrieb

Templates

Source-to-Image

Lokale Installation

Minishift

Red Hat Container Development Kit (CDK)*

* Zugang nur im Rahmen des Red Hat Developer Program

OpenShift und GitLab: Continuous Delivery in der CloudGünzel / Griesbaum 13

Page 14: Continuous Delivery in der Cloud eine Symbiose aus ... · •Übergangslos in GitLab integriert •Workload als „gitlab-runner“ ausgelagert Einbindung z.B. via lokalem Dateisystem,

OpenShift Templates

• Ein Template definiert

Images (Registry)

Ressourcen (Deployment und Build Konfiguration, Storage, Service, Monitoring ...)

Parameter (Umgebungsvariablen)

• Templates werden durch den Provider (Ops Team) vorgegeben

Ermöglicht Kontrolle über Applikationen die erstellt werden können

Sicherstellung von SLAs (Definierte Ressourcen je Applikation)

• Templates werden als JSON oder YAML definiert

• OpenShift liefert eine Vielzahl vorkonfigurierter Templates

JBoss/Wildfly, MySQL, MongoDB, …

OpenShift und GitLab: Continuous Delivery in der CloudGünzel / Griesbaum 14

Page 15: Continuous Delivery in der Cloud eine Symbiose aus ... · •Übergangslos in GitLab integriert •Workload als „gitlab-runner“ ausgelagert Einbindung z.B. via lokalem Dateisystem,

DEMO

Page 16: Continuous Delivery in der Cloud eine Symbiose aus ... · •Übergangslos in GitLab integriert •Workload als „gitlab-runner“ ausgelagert Einbindung z.B. via lokalem Dateisystem,

GitLab

• Source Code Repository

• Wiki & Ticketsystem

• Docker Registry

• DevOps Tools / CI/CD

• Monitoring

• „From Idea to Production“

Planung

Erstellung/Entwicklung

Packaging

Releases

Konfiguration

Deployment

Monitoring

© gitlab.com

OpenShift und GitLab: Continuous Delivery in der CloudGünzel / Griesbaum 16

Page 17: Continuous Delivery in der Cloud eine Symbiose aus ... · •Übergangslos in GitLab integriert •Workload als „gitlab-runner“ ausgelagert Einbindung z.B. via lokalem Dateisystem,

GitLab Architektur

© gitlab.com

OpenShift und GitLab: Continuous Delivery in der CloudGünzel / Griesbaum 17

Page 18: Continuous Delivery in der Cloud eine Symbiose aus ... · •Übergangslos in GitLab integriert •Workload als „gitlab-runner“ ausgelagert Einbindung z.B. via lokalem Dateisystem,

GitLab CI

• Pipeline as Code

.gitlab-ci.yml

Feste Syntax, Validierung mit Lint

Dennoch: kann kompliziert und lang werden

• Übergangslos in GitLab integriert

• Workload als „gitlab-runner“ ausgelagert

Einbindung z.B. via lokalem Dateisystem, ssh, Docker, Kubernetes

• Build erfordert Verbindung zu laufender GitLab-Instanz

OpenShift und GitLab: Continuous Delivery in der CloudGünzel / Griesbaum 18

Page 19: Continuous Delivery in der Cloud eine Symbiose aus ... · •Übergangslos in GitLab integriert •Workload als „gitlab-runner“ ausgelagert Einbindung z.B. via lokalem Dateisystem,

GitLab CI Architektur (klassisch)

Branch erstellen

Feature entwickeln

GitLabIssue anlegen

1

2

git push3 Build

Pipeline trigger4

gitlab-

runner(s)

delegieren

6

5

Monitor8

Build via

FS, ssh, docker

Ziel-

umgebung

deploy7

OpenShift und GitLab: Continuous Delivery in der CloudGünzel / Griesbaum 19

Page 20: Continuous Delivery in der Cloud eine Symbiose aus ... · •Übergangslos in GitLab integriert •Workload als „gitlab-runner“ ausgelagert Einbindung z.B. via lokalem Dateisystem,

GitLab CI Architektur (dynamische Runner in OpenShift)

Branch erstellen

Feature entwickeln

GitLabIssue anlegen

1

2

git push3 Build & deploy

Pipeline trigger4

runner-

gitlab-runner

delegieren

6

5

Monitor

Monitor

7

7

OpenShift

container pro stage (docker, kubernetes)

OpenShift und GitLab: Continuous Delivery in der CloudGünzel / Griesbaum 20

Page 21: Continuous Delivery in der Cloud eine Symbiose aus ... · •Übergangslos in GitLab integriert •Workload als „gitlab-runner“ ausgelagert Einbindung z.B. via lokalem Dateisystem,

GitLab CI Architektur (OpenShift)

Branch erstellen

Feature entwickeln

GitLabIssue anlegen

1

2

git push3

Pipeline trigger4

delegieren5

Monitor

Monitor

7

7

OpenShift

Build & deploy

runner-

gitlab-runner

6

container pro stage (docker, kubernetes)

OpenShift und GitLab: Continuous Delivery in der CloudGünzel / Griesbaum 21

Page 22: Continuous Delivery in der Cloud eine Symbiose aus ... · •Übergangslos in GitLab integriert •Workload als „gitlab-runner“ ausgelagert Einbindung z.B. via lokalem Dateisystem,

GitLab CI extended

• Anbindung an Kubernetes/OpenShift ermöglicht Deployments On-Demand

• Review Apps

Anwendung bei Merge Request live ansehen und validieren

Anwendung nach Merge automatisch herunterfahren

• Monitoring

Integration von Prometheus zum Monitoring von Applikationen im Cluster

OpenShift und GitLab: Continuous Delivery in der CloudGünzel / Griesbaum 22

Page 23: Continuous Delivery in der Cloud eine Symbiose aus ... · •Übergangslos in GitLab integriert •Workload als „gitlab-runner“ ausgelagert Einbindung z.B. via lokalem Dateisystem,

DEMO

Page 24: Continuous Delivery in der Cloud eine Symbiose aus ... · •Übergangslos in GitLab integriert •Workload als „gitlab-runner“ ausgelagert Einbindung z.B. via lokalem Dateisystem,

Eigenes Data Center

Migrationsszenarien - Ist Zustand

Infrastruktur Setup: Entwicklungsumgebung & Applikation im eigenen Data Center

Infrastruktur

Entwicklungsumgebung

Gitlab

SonarQubeNexus

Gitlab

Runner

Infrastruktur

Applikation

Application

Server Datenbank

Web Server

OpenShift und GitLab: Continuous Delivery in der CloudGünzel / Griesbaum 24

Page 25: Continuous Delivery in der Cloud eine Symbiose aus ... · •Übergangslos in GitLab integriert •Workload als „gitlab-runner“ ausgelagert Einbindung z.B. via lokalem Dateisystem,

Eigenes Data Center OpenShift

Migrationsszenarien (1)

Infrastruktur Setup: Applikation in OpenShift Container Platform

Infrastruktur

Entwicklungsumgebung

Gitlab

SonarQubeNexus

Gitlab

Runner

Infrastruktur

Applikation

Application

Server Datenbank

Web Server

OpenShift und GitLab: Continuous Delivery in der CloudGünzel / Griesbaum 25

Page 26: Continuous Delivery in der Cloud eine Symbiose aus ... · •Übergangslos in GitLab integriert •Workload als „gitlab-runner“ ausgelagert Einbindung z.B. via lokalem Dateisystem,

Eigenes Data Center OpenShift

Migrationsszenarien (2)

Infrastruktur Setup: Applikation in OpenShift Online/Dedicated

Infrastruktur

Entwicklungsumgebung

Gitlab

SonarQubeNexus

Gitlab

Runner

Infrastruktur

Applikation

Application

Server Datenbank

Web Server

OpenShift und GitLab: Continuous Delivery in der CloudGünzel / Griesbaum 26

Page 27: Continuous Delivery in der Cloud eine Symbiose aus ... · •Übergangslos in GitLab integriert •Workload als „gitlab-runner“ ausgelagert Einbindung z.B. via lokalem Dateisystem,

OpenShift

Infrastruktur

Applikation

Infrastruktur

Entwicklungsumgebung

Migrationsszenarien (3)

Infrastruktur Setup: Entwicklungsumgebung & Applikation in OpenShift Online/Dedicated

Gitlab

SonarQubeNexus

Gitlab

Runner

Application

Server Datenbank

Web Server

OpenShift und GitLab: Continuous Delivery in der CloudGünzel / Griesbaum 27

Page 28: Continuous Delivery in der Cloud eine Symbiose aus ... · •Übergangslos in GitLab integriert •Workload als „gitlab-runner“ ausgelagert Einbindung z.B. via lokalem Dateisystem,

Fazit und Ausblick

• … für den Betrieb

Einheitliche Plattform für alle Systeme

Schnelles & einheitliches Aufsetzen neuer Systeme

Integriertes & einheitliches Monitoring aller Systeme

Leichte & automatische Skalierung

• … für die Entwicklungsteams

Kaum Umstellungen notwendig

Review Apps

Produktionsnahes Deployment auf lokalen Entwicklungsmaschinen möglich

Was haben wir erreicht…

OpenShift und GitLab: Continuous Delivery in der CloudGünzel / Griesbaum 28

Page 29: Continuous Delivery in der Cloud eine Symbiose aus ... · •Übergangslos in GitLab integriert •Workload als „gitlab-runner“ ausgelagert Einbindung z.B. via lokalem Dateisystem,

www.EXXETA.com

WIR VERBINDEN WELTEN

www.EXXETA.comwww.EXXETA.com


Recommended