Continuous Testing:
Integration- und UI-Testing mit
OpenShift-Build-Pipelines.
Tobias Schneck, ConSol Software GmbH
München, 11. Juli 2017
„OpenShift – everything Continuous „
Seite 3
OpenShift CI/CD Pipeline Konzept
Seite 4
DEV
Prozess Development -> QA Stage
Code
Build & Test
Deploy in Dev
Container
Image
Container
Registry
POD
OPS
Deploy in QA
POD
AUTOMATISCH
MANUEL ODER AUTOMATISCH
Seite 5
OPS
Prozess QA -> Production Stage
Deploy in
Produktion
Container
Image from QA Stage
Container
Registry
POD
MANUEL
Seite 6
CI / CD
Build Pipeline?
OpenShift Komponenten
Seite 7
Execution Node
OpenShift Builds (tradional)
Builder Image
OpenShift
Builder Pod
Docker native
Build
Source-2-
Image Build
Base Image
OpenShift
Master
Scheduler
Image Artifcat
OpenShift
Internal
Registry
Image Stream
(Project/Global)
Dockerfilebuild.yml
Seite 8
Execution Node
OpenShift Builds (CI Pipeline)
Jenkins Image
OpenShift
Builder Pod
Jenkins
Pipeline Build
OpenShift
Master
Scheduler
Image Artifcat
OpenShift
Internal
Registry
Image Stream
(Project/Global)
Jenkinsfile
Maven Image
…
OpenShift
Regular Build
Seite 9
Build up a Build Pipelines !
Seite 10
Bakery App
Seite 11
Bakery App
Seite 12
Transformation to OpenShift
Ziele:
• Sourcecode der Apps nicht verändern
• Testcode nicht verändern
• Vollautomatisiert bis in die Produktion
• All-in-OpenShift (CI, Build, Test, Deployment)
• Jenkins v1 -> v2
Seite 13
Stage I: CI-Build bis zum Artefakt
Seite 14
CI Build -> Docker Image
Docker Image
Artifcat
Jenkinsfile.dev
Maven Image
build.pipeline.yml
Dockerfiles
OpenShift
regular build
Seite 15
DEMO
toschneck/openshift-example-bakery-ci-pipeline
Seite 16
Stage II: Automated Testing
17Seite
Citrus Integration Testing
Automatisierte Schnittstellentests
18Seite
Citrus Integration Testing
Automatisierte Schnittstellentests
19Seite
Sakuli End-2-End Testing
20Seite
Sakuli End-2-End Testing
Seite 21
QA -> tested Docker Image
Docker Image
Artifcat
Jenkinsfile.qa
Citrus Image
build.pipeline.yml
Sakuli Image
Seite 22
DEMO
toschneck/openshift-example-bakery-ci-pipeline
Seite 23
Review
• Migration zu Jenkinsfiles
• Viele Wrapper-Scripte, um flexibel zu sein
• Verteiltes CI-Design erfordert ein Umdenken
• CI-Daten schwerer zugänglich
(Logs, Screenshots, Artifakte)
• Technologie-Mix
• Verteilte Dokumentation
(OpenShift, Jenkins, Jenkins-Plugins, Docker, …)
Seite 24
Review
• Skalierung übernimmt der Cluster
• "oc CLI client" anstatt Openshift-Jenkins-Plugin
• Parametrisierte YAML Templates für OpenShift
• Infrastractur as Code
• Neue Stages sind einfach zu erstellen
• Deployment wird automatisch mitgetestet
• Secrets durch Cluster-Admins verwaltbar
• Builds Steuerbar von CLI und UI
Seite 25
Links
toschneck/openshift-example-bakery-ci-pipeline
christophd/citrus www.citrusframework.org
ConSol/sakuli www.sakuli.org
@toschneck
@citrus_test
@sakuli_e2e
Seite 26
Danke!
Fragen?
Seite 27
ConSol Software GmbH
Franziskanerstraße 38
D-81669 München
Tel: +49-89-45841-100
Fax: +49-89-45841-111
info@consol.de
www.consol.de

Continuous Testing: Integration- und UI-Testing mit OpenShift-Build-Pipelines