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
Andreas Günzel
Director
Java Enterprise Solutions
@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
Top Related