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

Post on 29-Aug-2019

213 views 0 download

transcript

OpenShift und GitLab

Continuous Delivery in der Cloud

Alexander Griesbaum

Andreas Günzel

Agenda

1. OpenShift

2. GitLab CI

3. Migrationsszenarien

4. Fazit und Ausblick

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

Referenten

Alexander Griesbaum

Senior Manager

Java Enterprise Solutions

Alexander.Griesbaum@EXXETA.com

Andreas Günzel

Director

Java Enterprise Solutions

Andreas.Guenzel@EXXETA.com

@leichtundkross @agrsbm

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

Unser Leitsatz

WIR

VERBINDEN

WELTEN

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

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.

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

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

OpenShift Architektur

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

OpenShift Architektur

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

OpenShift Architektur

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

Warum OpenShift?

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

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

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

DEMO

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

GitLab Architektur

© gitlab.com

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

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

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

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

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

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

DEMO

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

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

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

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

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

www.EXXETA.com

WIR VERBINDEN WELTEN

www.EXXETA.comwww.EXXETA.com