SlideShare une entreprise Scribd logo
1  sur  45
Télécharger pour lire hors ligne
OpenShift Build Pipelines
Build ► Test ► Run!
Tobias Schneck
Software Engineer @ Loodse GmbH
Testautomation @ ConSol Software GmbH (until June 18)
Sebastian ScheeleHeadquarter in
in Hamburg, Germany
Founders
Awarded by
> 25 employees
world wide
Founded in 2016 Julian Hansert
Cloud native
and container
technologies
Software
development
K8s certified
Multi & Hybrid Cloud
Container Engine
Testing as a Service
Consulting
Workshops
Infrastruktur
Open Source
Testautomatisierung @ ConSol
Kontakt: nico.zellner@consol.de
+
Agenda
• OpenShift CI/CD Pipeline Concept
• Build up some Pipelines!
• Stage I: CI Build of the Artefact
• Stage II: Automated Testing
− Citrus Integration Testing
− Sakuli E2E Testing
• Stage III: Artefact Deployment
• Review
• Alternatives
• Links
OpenShift CI/CD Pipeline Concept
OpenShift Build Pipelines: Build -> Test -> Run! Folie 6
Prozess Development ► QA Stage
OPS
Code
Build &
Unit-Test
Deploy in Dev
Container
Image
Container
Registry
POD
AUTOMATIC
MANUEL ODER AUTOMATIC
POD
Deploy in QA
► Test
OpenShift Build Pipelines: Build -> Test -> Run! Folie 7
Prozess QA ► Production Stage
OPS
Deploy in
Production
►Smoke-Test
Container
Image from QA Stage
MANUEL
OpenShift Build Pipelines: Build -> Test -> Run! Folie 8
OpenShift Core Components
CI / CD
Build Pipeline?
Jenkins Integration
+ Jenkins Template
+ OpenShift Jenkins Client Plugin
+ OpenShift Jenkins Sync Plugin
OpenShift Build Pipelines: Build -> Test -> Run! Folie 9
OpenShift Regular Builds (traditional)
Execution Node
OpenShift
Builder Pod
OpenShift
Master
Scheduler
OpenShift
Internal
Registry
Image Stream
(Project/Global)
Source-2-
Image Build
Docker
native Build
build.yml Dockerfile
Image Artifcat
Builder Image Base Image
OpenShift Build Pipelines: Build -> Test -> Run! Folie 10
OpenShift CI Pipeline Build
Execution Node
OpenShift
Builder Pod
OpenShift
Master
Scheduler
OpenShift
Internal
Registry
Image Stream
(Project/Global)
Image Artifcat
Jenkins Image
Maven Image
…
Jenkinsfile
Jenkins
Pipeline Build
OpenShift
Regular Build
OpenShift Build Pipelines: Build -> Test -> Run! Folie 11
● Uses OpenShift CLI: oc
○ Automatically authorized
○ Use complete CLI possibilities
○ Huge flexibility
● Uses OpenShift Jenkins Client Plugin
○ Based on Jenkins kubernetes-plugin
○ Groovy wrapper for OpenShift API
○ Enables dynamic slave images
- built-in images: base, maven, nodejs
- custom images
OpenShift Build & Deploy with Jenkinsfile
Jenkins Image
Jenkinsfile
Maven Image
Node Image
…
OpenShift Build Pipelines: Build -> Test -> Run! Folie 12
OpenShift Custom Jenkins Slave
Jenkinsfile
podTemplate(label: "citrus",
cloud: "openshift",
inheritFrom: "maven",
containers: [
containerTemplate(name: "jnlp",
image: "toschneck/citrus-jenkins-slave",
)
])
{
node('citrus') {
sh "echo execute oc citrus build"
checkout scm
sh "mvn install"
junit 'citrus-tests/target/citrus-reports/**/*.xml'
archiveArtifacts "citrus-tests/target/citrus-*/**/*"
}
}
Used by
citrusframework/citrus-docker-images PR #3
FROM consol/citrus:2.7.5
### sourced are copied from:
# https://github.com/openshift/jenkins/tree/master/slave-base
# https://github.com/openshift/jenkins/tree/master/slave-maven
# Copy the jenkins-slave entrypoint
ADD contrib/bin/* /usr/local/bin/
# Run the Jenkins JNLP client
ENTRYPOINT ["/usr/local/bin/run-jnlp-client"]
Build up a Build Pipeline!
OpenShift Build Pipelines: Build -> Test -> Run! Folie 14
Bakery App
OpenShift Build Pipelines: Build -> Test -> Run! Folie 15
Bakery App
OpenShift Build Pipelines: Build -> Test -> Run! Folie 16
Transition to OpenShift
Goals:
• Don’t change the Sourcecode of the Apps
• Also don’t change the Testcode
• Fully Automated Pipeline until Production
• All in OpenShift (CI, Build, Test, Deployment)
• Jenkins v1 -> v2
Stage I: CI-Build of the Artefact
OpenShift Build Pipelines: Build -> Test -> Run! Folie 18
CI Build ► Docker Image
build.pipeline.yml Jenkinsfile.dev
Maven Image
Dockerfiles
OpenShift
Regular Build
Docker Image
Artifact
DEMO
toschneck/openshift-example-bakery-ci-pipeline
Stage II: Automated Testing
Citrus Integration Testing
OpenShift Build Pipelines: Build -> Test -> Run! Folie 22
Mission ► Integration Tests
System under Test
System
Under Test
Verträge
Stammdaten
Dienstleister
Shipping
JM
S
XM
L
FTP
CSV
Webclient
Kunde
Agent / Techniker
Mobile, PDA
Http
REST
Http
SOAP
OpenShift Build Pipelines: Build -> Test -> Run! Folie 23
Mission ► Integration Tests
System
Under Test
Stammdaten
Dienstleister
JM
S
XM
L
FTP
CSV
Kunde
Agent / Techniker Http
REST
Http
SOAP
Automated API Interface Tests
OpenShift Build Pipelines: Build -> Test -> Run! Folie 24
Use Case: Testing of Middleware Integration / ESB / API
Citrus Features
• Ready to use components
− Client & Server Implementation
− Application Server Deployments
− Container Images
• Message transports
− Http REST, SOAP, JMS, FTP, TCP/IP, Mail, RMI, SSH, ...
• Data formats
− XML, Json, PlainText, CSV, XSD, WSDL
• Test DSL
− XML & Java
citrusframework/citrus
OpenShift Build Pipelines: Build -> Test -> Run! Folie 25
more Citrus
• Citrus Admin UI
• Easy Testsuite Management
• Reporting
• Citrus Simulator
• Complex Messaging Workflow Simulation
• Predefined Interface Packages: WBCI, WITA
OpenShift Build Pipelines: Build -> Test -> Run! Folie 26
QA ► Citrus API Integration Tests
Citrus Slave Image
build.pipeline.yml Jenkinsfile.qa
DEMO
toschneck/openshift-example-bakery-ci-pipeline
E2E Testing
OpenShift Build Pipelines: Build -> Test -> Run! Folie 29
Sakuli End-to-End Use Cases
OpenShift Build Pipelines: Build -> Test -> Run! Folie 30
Motivation
• Founded February 2014 Open Source (Apache)
• Goals:
− Combine a web and screen-based testing in ONE tool
− Use test results in CI- and monitoring systems
− Platform independent: (Linux/Windows/MacOS)
• Application tests from a End User Perspective
− Functionality (business critical path)
− Performance (e2e loading time)
OpenShift Build Pipelines: Build -> Test -> Run! Folie 31
Component 1: Sahi / Selenium
Web testing tool (sahi.co.in, seleniumhq.org)
method based DOM access:
_assertContainsText ("Logged in as: Sakuli", _div("user_field"));
_click(_span("Loaded Run Tabels"));
_assertExists(_table("cross_table_fixed"));
_assertExists(_cell(“testing allowed", _rightOf(_span("Name")), _under(_cell("Action")));
<table>
<tbody>
<tr>
<td>Alice</td>
<td>Bob</td>
</tr>
</tbody>
</table>
Webserverlocalhost:9999
{js}
OpenShift Build Pipelines: Build -> Test -> Run! Folie 32
Component 2: Sikuli
Visual automation tool (sikuli.org)
image identification, mouse & keyboard interaction:
screen.find("sap_ok").click();
screen.find("sap_ok").right(40).click().type("2223");
var bubble = new Region().waitForImage("bubble.png", 20);
bubble.dragAndDropTo(bubble.left(35)).highlight();
OpenShift Build Pipelines: Build -> Test -> Run! Folie 33
Benefits
• Integrated API for both Tools - one TestScope
• Step by Step Code (JavaScript, Java)
• Automatic Screenshots on any Errors
• Cloud-ready Docker Images for Kubernets/OpenShift
• Sakuli UI for Maintenance, Execution and Reporting (beta)
• "Forwarder" Modules:
− Monitoring (Gearman, Icinga, CheckMK)
− CI (Jenkins, Travis CI, Drone ...)
− Databases (MySQL/MariaDB, ...)
OpenShift Build Pipelines: Build -> Test -> Run! Folie 34
Monitoring Integration
• Ready-to-use setup in Kubernetes/OpenShift
• Combinable with „traditional“ monitoring checks
• Performance graphs
• Cron scheduled check execution
• Error screenshots
• Mail / Chat Notification
• Live watching possible
OpenShift Build Pipelines: Build -> Test -> Run! Folie 35
Sakuli End-2-End Testing Container
ConSol/docker-headless-vnc-container
OpenShift Build Pipelines: Build -> Test -> Run! Folie 36
QA ► Tested Docker Image
Docker Image
Artifcat
Citrus Slave Image SakuliImage
build.pipeline.yml Jenkinsfile.qa
DEMO
toschneck/openshift-example-bakery-ci-pipeline
OpenShift Build Pipelines: Build -> Test -> Run! Folie 38
Review
• Jenkins is not designed for containers or pods
Plugins, Startup, Java Agents, local Files, Development Roadmap
• Migration to Jenkinsfiles
• A bunch of wrapper scripts needed, to be flexible
• Rethink the CI workflow due to distributed approach
• Access to CI runtime data is not so easy any more
Logs, Screenshots, Artifacts
• Broad mix of technologies
• Jenkins slave image is intransparent -> do it yourself!
Base image: github.com/openshift/jenkins/slave-base
• Distributed documentation
OpenShift, Kubernetes, Jenkins, Jenkins-Plugins, Docker, …
OpenShift Build Pipelines: Build -> Test -> Run! Folie 39
Review
• Scaling is solved by the Cluster
• "oc CLI client" instead of OpenShift Jenkins Plugin
► Pipeline can be tested/developed step-by-step
► Independent from the plugin release lifecycle
• Parameterized YAML templates for OpenShift
• Infrastructur as Code
• New stages are easy to create
• Deployment will be tested by default
• Secrets are maintainable by cluster admins
• Builds can be controlled by CLI and UI
• Extendable trough Open Source approach
OpenShift Build Pipelines: Build -> Test -> Run! Folie 40
Alternative Approaches
hasura/gitkube
⇨ Gitkube
• “git push” based Workflow on remote Git
• Simple: combination of bash scripts
⇨ Skaffold:
• Simple scripted CI/CD Workflow
• 2 Stages: Local & Remote
⇨ JenkinsX
• Predefined workflow for CI/CD in Kubernetes
• NO new Jenkins -> just a Wrapper
• GitHub only (currently)
⇨ DroneCI / KubeCI
• Container first and easy understandable concept
• Local execution
• Layered build concept for Pods (in Development)
GoogleContainerTools/skaffold
kubeciiodrone/drone
jenkins-x/jx
KubeCI
● Drone Kubernetes Runtime
● Plugins:
○ kubectl
○ helm
○ img
(daemon-less build)
○ … more will follow
pipeline:
test:
image: python:2-slim
commands:
- python test/wait-for-it.py
build-docker:
image: plugins/docker
repo: toschneck/wait-for-it
dockerfile: Dockerfile
WIP
OpenShift Build Pipelines: Build -> Test -> Run! Folie 42
Links
toschneck/openshift-example-bakery-ci-pipeline
citrusframework/citrus www.citrusframework.org
ConSol/sakuli www.sakuli.org
@toschneck
@citrus_test
@sakuli_e2e
Questions?
We are hiring!
Hamburg, Berlin, Munich, San Francisco, Gdańsk, …
www.loodse.com
@Loodse
Thank you Munich!
Tobias Schneck, Loodse
@toschneck

Contenu connexe

Tendances

7 Habits of Highly Effective Jenkins Users
7 Habits of Highly Effective Jenkins Users7 Habits of Highly Effective Jenkins Users
7 Habits of Highly Effective Jenkins UsersJules Pierre-Louis
 
Pipeline based deployments on Jenkins
Pipeline based deployments  on JenkinsPipeline based deployments  on Jenkins
Pipeline based deployments on JenkinsKnoldus Inc.
 
7 Habits of Highly Effective Jenkins Users
7 Habits of Highly Effective Jenkins Users7 Habits of Highly Effective Jenkins Users
7 Habits of Highly Effective Jenkins UsersJules Pierre-Louis
 
CI/CD on Android project via Jenkins Pipeline
CI/CD on Android project via Jenkins PipelineCI/CD on Android project via Jenkins Pipeline
CI/CD on Android project via Jenkins PipelineVeaceslav Gaidarji
 
Building an Extensible, Resumable DSL on Top of Apache Groovy
Building an Extensible, Resumable DSL on Top of Apache GroovyBuilding an Extensible, Resumable DSL on Top of Apache Groovy
Building an Extensible, Resumable DSL on Top of Apache Groovyjgcloudbees
 
Jenkins Pipeline @ Scale. Building Automation Frameworks for Systems Integration
Jenkins Pipeline @ Scale. Building Automation Frameworks for Systems IntegrationJenkins Pipeline @ Scale. Building Automation Frameworks for Systems Integration
Jenkins Pipeline @ Scale. Building Automation Frameworks for Systems IntegrationOleg Nenashev
 
Let's go HTTPS-only! - More Than Buying a Certificate
Let's go HTTPS-only! - More Than Buying a CertificateLet's go HTTPS-only! - More Than Buying a Certificate
Let's go HTTPS-only! - More Than Buying a CertificateSteffen Gebert
 
Ci For The Web 2.0 Guy Or Gal
Ci For The Web 2.0 Guy Or GalCi For The Web 2.0 Guy Or Gal
Ci For The Web 2.0 Guy Or GalChad Woolley
 
Using Docker to build and test in your laptop and Jenkins
Using Docker to build and test in your laptop and JenkinsUsing Docker to build and test in your laptop and Jenkins
Using Docker to build and test in your laptop and JenkinsMicael Gallego
 
Lessons Learned: Using Concourse In Production
Lessons Learned: Using Concourse In ProductionLessons Learned: Using Concourse In Production
Lessons Learned: Using Concourse In ProductionShingo Omura
 
Open Source tools overview
Open Source tools overviewOpen Source tools overview
Open Source tools overviewLuciano Resende
 
Gitlab - Creating C++ applications with Gitlab CI
Gitlab - Creating C++ applications with Gitlab CIGitlab - Creating C++ applications with Gitlab CI
Gitlab - Creating C++ applications with Gitlab CIUilian Ries
 
Automate App Container Delivery with CI/CD and DevOps
Automate App Container Delivery with CI/CD and DevOpsAutomate App Container Delivery with CI/CD and DevOps
Automate App Container Delivery with CI/CD and DevOpsDaniel Oh
 
Voxxed Luxembourd 2016 Jenkins 2.0 et Pipeline as code
Voxxed Luxembourd 2016 Jenkins 2.0 et Pipeline as codeVoxxed Luxembourd 2016 Jenkins 2.0 et Pipeline as code
Voxxed Luxembourd 2016 Jenkins 2.0 et Pipeline as codeDamien Duportal
 
Использование AzureDevOps при разработке микросервисных приложений
Использование AzureDevOps при разработке микросервисных приложенийИспользование AzureDevOps при разработке микросервисных приложений
Использование AzureDevOps при разработке микросервисных приложенийVitebsk Miniq
 
Testing - Selenium? Rich-Clients? Containers?
Testing - Selenium? Rich-Clients? Containers?Testing - Selenium? Rich-Clients? Containers?
Testing - Selenium? Rich-Clients? Containers?Tobias Schneck
 
Brujug Jenkins pipeline scalability
Brujug Jenkins pipeline scalabilityBrujug Jenkins pipeline scalability
Brujug Jenkins pipeline scalabilityDamien Coraboeuf
 
State of the Jenkins Automation
State of the Jenkins AutomationState of the Jenkins Automation
State of the Jenkins AutomationJulien Pivotto
 

Tendances (20)

7 Habits of Highly Effective Jenkins Users
7 Habits of Highly Effective Jenkins Users7 Habits of Highly Effective Jenkins Users
7 Habits of Highly Effective Jenkins Users
 
Pipeline based deployments on Jenkins
Pipeline based deployments  on JenkinsPipeline based deployments  on Jenkins
Pipeline based deployments on Jenkins
 
7 Habits of Highly Effective Jenkins Users
7 Habits of Highly Effective Jenkins Users7 Habits of Highly Effective Jenkins Users
7 Habits of Highly Effective Jenkins Users
 
sed.pdf
sed.pdfsed.pdf
sed.pdf
 
CI/CD on Android project via Jenkins Pipeline
CI/CD on Android project via Jenkins PipelineCI/CD on Android project via Jenkins Pipeline
CI/CD on Android project via Jenkins Pipeline
 
Building an Extensible, Resumable DSL on Top of Apache Groovy
Building an Extensible, Resumable DSL on Top of Apache GroovyBuilding an Extensible, Resumable DSL on Top of Apache Groovy
Building an Extensible, Resumable DSL on Top of Apache Groovy
 
Docker & ci
Docker & ciDocker & ci
Docker & ci
 
Jenkins Pipeline @ Scale. Building Automation Frameworks for Systems Integration
Jenkins Pipeline @ Scale. Building Automation Frameworks for Systems IntegrationJenkins Pipeline @ Scale. Building Automation Frameworks for Systems Integration
Jenkins Pipeline @ Scale. Building Automation Frameworks for Systems Integration
 
Let's go HTTPS-only! - More Than Buying a Certificate
Let's go HTTPS-only! - More Than Buying a CertificateLet's go HTTPS-only! - More Than Buying a Certificate
Let's go HTTPS-only! - More Than Buying a Certificate
 
Ci For The Web 2.0 Guy Or Gal
Ci For The Web 2.0 Guy Or GalCi For The Web 2.0 Guy Or Gal
Ci For The Web 2.0 Guy Or Gal
 
Using Docker to build and test in your laptop and Jenkins
Using Docker to build and test in your laptop and JenkinsUsing Docker to build and test in your laptop and Jenkins
Using Docker to build and test in your laptop and Jenkins
 
Lessons Learned: Using Concourse In Production
Lessons Learned: Using Concourse In ProductionLessons Learned: Using Concourse In Production
Lessons Learned: Using Concourse In Production
 
Open Source tools overview
Open Source tools overviewOpen Source tools overview
Open Source tools overview
 
Gitlab - Creating C++ applications with Gitlab CI
Gitlab - Creating C++ applications with Gitlab CIGitlab - Creating C++ applications with Gitlab CI
Gitlab - Creating C++ applications with Gitlab CI
 
Automate App Container Delivery with CI/CD and DevOps
Automate App Container Delivery with CI/CD and DevOpsAutomate App Container Delivery with CI/CD and DevOps
Automate App Container Delivery with CI/CD and DevOps
 
Voxxed Luxembourd 2016 Jenkins 2.0 et Pipeline as code
Voxxed Luxembourd 2016 Jenkins 2.0 et Pipeline as codeVoxxed Luxembourd 2016 Jenkins 2.0 et Pipeline as code
Voxxed Luxembourd 2016 Jenkins 2.0 et Pipeline as code
 
Использование AzureDevOps при разработке микросервисных приложений
Использование AzureDevOps при разработке микросервисных приложенийИспользование AzureDevOps при разработке микросервисных приложений
Использование AzureDevOps при разработке микросервисных приложений
 
Testing - Selenium? Rich-Clients? Containers?
Testing - Selenium? Rich-Clients? Containers?Testing - Selenium? Rich-Clients? Containers?
Testing - Selenium? Rich-Clients? Containers?
 
Brujug Jenkins pipeline scalability
Brujug Jenkins pipeline scalabilityBrujug Jenkins pipeline scalability
Brujug Jenkins pipeline scalability
 
State of the Jenkins Automation
State of the Jenkins AutomationState of the Jenkins Automation
State of the Jenkins Automation
 

Similaire à OpenShift Build Pipelines @ Lightweight Java User Group Meetup

Mihai Criveti - PyCon Ireland - Automate Everything
Mihai Criveti - PyCon Ireland - Automate EverythingMihai Criveti - PyCon Ireland - Automate Everything
Mihai Criveti - PyCon Ireland - Automate EverythingMihai Criveti
 
Continuous Integration with Cloud Foundry Concourse and Docker on OpenPOWER
Continuous Integration with Cloud Foundry Concourse and Docker on OpenPOWERContinuous Integration with Cloud Foundry Concourse and Docker on OpenPOWER
Continuous Integration with Cloud Foundry Concourse and Docker on OpenPOWERIndrajit Poddar
 
Atlanta Jenkins Area Meetup October 22nd 2015
Atlanta Jenkins Area Meetup October 22nd 2015Atlanta Jenkins Area Meetup October 22nd 2015
Atlanta Jenkins Area Meetup October 22nd 2015Kurt Madel
 
OPENSHIFT CONTAINER PLATFORM CI/CD Build & Deploy
OPENSHIFT CONTAINER PLATFORM CI/CD Build & DeployOPENSHIFT CONTAINER PLATFORM CI/CD Build & Deploy
OPENSHIFT CONTAINER PLATFORM CI/CD Build & DeployNatale Vinto
 
Continuous Integration With Jenkins Docker SQL Server
Continuous Integration With Jenkins Docker SQL ServerContinuous Integration With Jenkins Docker SQL Server
Continuous Integration With Jenkins Docker SQL ServerChris Adkin
 
Jenkins Days - Workshop - Let's Build a Pipeline - Los Angeles
Jenkins Days - Workshop - Let's Build a Pipeline - Los AngelesJenkins Days - Workshop - Let's Build a Pipeline - Los Angeles
Jenkins Days - Workshop - Let's Build a Pipeline - Los AngelesAndy Pemberton
 
DCEU 18: Building Your Development Pipeline
DCEU 18: Building Your Development PipelineDCEU 18: Building Your Development Pipeline
DCEU 18: Building Your Development PipelineDocker, Inc.
 
Webinar - Unbox GitLab CI/CD
Webinar - Unbox GitLab CI/CD Webinar - Unbox GitLab CI/CD
Webinar - Unbox GitLab CI/CD Annie Huang
 
Docker - Demo on PHP Application deployment
Docker - Demo on PHP Application deployment Docker - Demo on PHP Application deployment
Docker - Demo on PHP Application deployment Arun prasath
 
How to set up an ASP.NET 5 Continuous Delivery Pipeline using IBM Bluemix Dev...
How to set up an ASP.NET 5 Continuous Delivery Pipeline using IBM Bluemix Dev...How to set up an ASP.NET 5 Continuous Delivery Pipeline using IBM Bluemix Dev...
How to set up an ASP.NET 5 Continuous Delivery Pipeline using IBM Bluemix Dev...Richard Johansson
 
Webinar: OpenStack Accelerates Software Development
Webinar: OpenStack Accelerates Software DevelopmentWebinar: OpenStack Accelerates Software Development
Webinar: OpenStack Accelerates Software DevelopmentPlatform9
 
Linux containers and docker
Linux containers and dockerLinux containers and docker
Linux containers and dockerFabio Fumarola
 
SymfonyCon Berlin 2016 Jenkins Deployment Pipelines
SymfonyCon Berlin 2016 Jenkins Deployment PipelinesSymfonyCon Berlin 2016 Jenkins Deployment Pipelines
SymfonyCon Berlin 2016 Jenkins Deployment Pipelinescpsitgmbh
 
What's New in Docker - February 2017
What's New in Docker - February 2017What's New in Docker - February 2017
What's New in Docker - February 2017Patrick Chanezon
 
CI/CD with Jenkins and Docker - DevOps Meetup Day Thailand
CI/CD with Jenkins and Docker - DevOps Meetup Day ThailandCI/CD with Jenkins and Docker - DevOps Meetup Day Thailand
CI/CD with Jenkins and Docker - DevOps Meetup Day ThailandTroublemaker Khunpech
 

Similaire à OpenShift Build Pipelines @ Lightweight Java User Group Meetup (20)

Mihai Criveti - PyCon Ireland - Automate Everything
Mihai Criveti - PyCon Ireland - Automate EverythingMihai Criveti - PyCon Ireland - Automate Everything
Mihai Criveti - PyCon Ireland - Automate Everything
 
Jenkins-CI
Jenkins-CIJenkins-CI
Jenkins-CI
 
Continuous Integration with Cloud Foundry Concourse and Docker on OpenPOWER
Continuous Integration with Cloud Foundry Concourse and Docker on OpenPOWERContinuous Integration with Cloud Foundry Concourse and Docker on OpenPOWER
Continuous Integration with Cloud Foundry Concourse and Docker on OpenPOWER
 
Atlanta Jenkins Area Meetup October 22nd 2015
Atlanta Jenkins Area Meetup October 22nd 2015Atlanta Jenkins Area Meetup October 22nd 2015
Atlanta Jenkins Area Meetup October 22nd 2015
 
CI/CD with Github Actions
CI/CD with Github ActionsCI/CD with Github Actions
CI/CD with Github Actions
 
OPENSHIFT CONTAINER PLATFORM CI/CD Build & Deploy
OPENSHIFT CONTAINER PLATFORM CI/CD Build & DeployOPENSHIFT CONTAINER PLATFORM CI/CD Build & Deploy
OPENSHIFT CONTAINER PLATFORM CI/CD Build & Deploy
 
Continuous Integration With Jenkins Docker SQL Server
Continuous Integration With Jenkins Docker SQL ServerContinuous Integration With Jenkins Docker SQL Server
Continuous Integration With Jenkins Docker SQL Server
 
Jenkins Days - Workshop - Let's Build a Pipeline - Los Angeles
Jenkins Days - Workshop - Let's Build a Pipeline - Los AngelesJenkins Days - Workshop - Let's Build a Pipeline - Los Angeles
Jenkins Days - Workshop - Let's Build a Pipeline - Los Angeles
 
ConcourseCi overview
ConcourseCi  overviewConcourseCi  overview
ConcourseCi overview
 
DCEU 18: Building Your Development Pipeline
DCEU 18: Building Your Development PipelineDCEU 18: Building Your Development Pipeline
DCEU 18: Building Your Development Pipeline
 
Webinar - Unbox GitLab CI/CD
Webinar - Unbox GitLab CI/CD Webinar - Unbox GitLab CI/CD
Webinar - Unbox GitLab CI/CD
 
AWS Code Services
AWS Code ServicesAWS Code Services
AWS Code Services
 
Docker - Demo on PHP Application deployment
Docker - Demo on PHP Application deployment Docker - Demo on PHP Application deployment
Docker - Demo on PHP Application deployment
 
Jenkins presentation
Jenkins presentationJenkins presentation
Jenkins presentation
 
How to set up an ASP.NET 5 Continuous Delivery Pipeline using IBM Bluemix Dev...
How to set up an ASP.NET 5 Continuous Delivery Pipeline using IBM Bluemix Dev...How to set up an ASP.NET 5 Continuous Delivery Pipeline using IBM Bluemix Dev...
How to set up an ASP.NET 5 Continuous Delivery Pipeline using IBM Bluemix Dev...
 
Webinar: OpenStack Accelerates Software Development
Webinar: OpenStack Accelerates Software DevelopmentWebinar: OpenStack Accelerates Software Development
Webinar: OpenStack Accelerates Software Development
 
Linux containers and docker
Linux containers and dockerLinux containers and docker
Linux containers and docker
 
SymfonyCon Berlin 2016 Jenkins Deployment Pipelines
SymfonyCon Berlin 2016 Jenkins Deployment PipelinesSymfonyCon Berlin 2016 Jenkins Deployment Pipelines
SymfonyCon Berlin 2016 Jenkins Deployment Pipelines
 
What's New in Docker - February 2017
What's New in Docker - February 2017What's New in Docker - February 2017
What's New in Docker - February 2017
 
CI/CD with Jenkins and Docker - DevOps Meetup Day Thailand
CI/CD with Jenkins and Docker - DevOps Meetup Day ThailandCI/CD with Jenkins and Docker - DevOps Meetup Day Thailand
CI/CD with Jenkins and Docker - DevOps Meetup Day Thailand
 

Plus de Tobias Schneck

ARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdf
ARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdfARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdf
ARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdfTobias Schneck
 
Kubermatic How to Migrate 100 Clusters from On-Prem to Google Cloud Without D...
Kubermatic How to Migrate 100 Clusters from On-Prem to Google Cloud Without D...Kubermatic How to Migrate 100 Clusters from On-Prem to Google Cloud Without D...
Kubermatic How to Migrate 100 Clusters from On-Prem to Google Cloud Without D...Tobias Schneck
 
ClusterAPI Overview - Managing multi-cloud Kubernetes Clusters - k8s Meetup@v...
ClusterAPI Overview - Managing multi-cloud Kubernetes Clusters - k8s Meetup@v...ClusterAPI Overview - Managing multi-cloud Kubernetes Clusters - k8s Meetup@v...
ClusterAPI Overview - Managing multi-cloud Kubernetes Clusters - k8s Meetup@v...Tobias Schneck
 
Creating Kubernetes multi clusters with ClusterAPI @ Stuttgart Kubernetes Meetup
Creating Kubernetes multi clusters with ClusterAPI @ Stuttgart Kubernetes MeetupCreating Kubernetes multi clusters with ClusterAPI @ Stuttgart Kubernetes Meetup
Creating Kubernetes multi clusters with ClusterAPI @ Stuttgart Kubernetes MeetupTobias Schneck
 
KubeCI - Cloud Native Continuous Delivery for Kubernetes
KubeCI - Cloud Native Continuous Delivery for KubernetesKubeCI - Cloud Native Continuous Delivery for Kubernetes
KubeCI - Cloud Native Continuous Delivery for KubernetesTobias Schneck
 
Kubernetes Cluster API - managing the infrastructure of multi clusters (k8s ...
Kubernetes Cluster API - managing the infrastructure of  multi clusters (k8s ...Kubernetes Cluster API - managing the infrastructure of  multi clusters (k8s ...
Kubernetes Cluster API - managing the infrastructure of multi clusters (k8s ...Tobias Schneck
 
UI Testing - Selenium? Rich-Clients? Containers? (SwanseaCon 2018)
UI Testing - Selenium? Rich-Clients? Containers? (SwanseaCon 2018)UI Testing - Selenium? Rich-Clients? Containers? (SwanseaCon 2018)
UI Testing - Selenium? Rich-Clients? Containers? (SwanseaCon 2018)Tobias Schneck
 
Creating Kubernetes multi clusters with ClusterAPI in the Hetzner Cloud
Creating Kubernetes multi clusters with ClusterAPI in the Hetzner CloudCreating Kubernetes multi clusters with ClusterAPI in the Hetzner Cloud
Creating Kubernetes multi clusters with ClusterAPI in the Hetzner CloudTobias Schneck
 
OpenShift-Build-Pipelines: Build ► Test ► Run!
OpenShift-Build-Pipelines: Build ► Test ► Run!OpenShift-Build-Pipelines: Build ► Test ► Run!
OpenShift-Build-Pipelines: Build ► Test ► Run!Tobias Schneck
 
Kotlin for backend development (Hackaburg 2018 Regensburg)
Kotlin for backend development (Hackaburg 2018 Regensburg)Kotlin for backend development (Hackaburg 2018 Regensburg)
Kotlin for backend development (Hackaburg 2018 Regensburg)Tobias Schneck
 
UI-Testing - Selenium? Rich-Clients? Containers? @APEX connect 2018
UI-Testing - Selenium? Rich-Clients? Containers? @APEX connect 2018UI-Testing - Selenium? Rich-Clients? Containers? @APEX connect 2018
UI-Testing - Selenium? Rich-Clients? Containers? @APEX connect 2018Tobias Schneck
 
Continuous Testing: Integration- und UI-Testing mit OpenShift-Build-Pipelines
Continuous Testing: Integration- und UI-Testing mit OpenShift-Build-PipelinesContinuous Testing: Integration- und UI-Testing mit OpenShift-Build-Pipelines
Continuous Testing: Integration- und UI-Testing mit OpenShift-Build-PipelinesTobias Schneck
 
OOP2017: Containerized End-2-End Testing – automate it!
OOP2017: Containerized End-2-End Testing – automate it!OOP2017: Containerized End-2-End Testing – automate it!
OOP2017: Containerized End-2-End Testing – automate it!Tobias Schneck
 
Containerized End-2-End Testing - Agile Testing Meetup at Süddeutsche Zeitung...
Containerized End-2-End Testing - Agile Testing Meetup at Süddeutsche Zeitung...Containerized End-2-End Testing - Agile Testing Meetup at Süddeutsche Zeitung...
Containerized End-2-End Testing - Agile Testing Meetup at Süddeutsche Zeitung...Tobias Schneck
 
Containerized End-2-End-Testing - ContainerConf Mannheim
Containerized End-2-End-Testing - ContainerConf MannheimContainerized End-2-End-Testing - ContainerConf Mannheim
Containerized End-2-End-Testing - ContainerConf MannheimTobias Schneck
 
Containerized End-2-End-Testing - Software-QS-Tag (deutsch)
Containerized End-2-End-Testing - Software-QS-Tag (deutsch)Containerized End-2-End-Testing - Software-QS-Tag (deutsch)
Containerized End-2-End-Testing - Software-QS-Tag (deutsch)Tobias Schneck
 
Containerized End-2-End Testing - JUG Saxony Day
Containerized End-2-End Testing - JUG Saxony DayContainerized End-2-End Testing - JUG Saxony Day
Containerized End-2-End Testing - JUG Saxony DayTobias Schneck
 
Skale your test environment! Containerized End-2-End-Testing @Herbstcampus Nü...
Skale your test environment! Containerized End-2-End-Testing @Herbstcampus Nü...Skale your test environment! Containerized End-2-End-Testing @Herbstcampus Nü...
Skale your test environment! Containerized End-2-End-Testing @Herbstcampus Nü...Tobias Schneck
 
Containerized End-2-End-Testing - Tobias Schneck
Containerized End-2-End-Testing - Tobias SchneckContainerized End-2-End-Testing - Tobias Schneck
Containerized End-2-End-Testing - Tobias SchneckTobias Schneck
 

Plus de Tobias Schneck (19)

ARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdf
ARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdfARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdf
ARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdf
 
Kubermatic How to Migrate 100 Clusters from On-Prem to Google Cloud Without D...
Kubermatic How to Migrate 100 Clusters from On-Prem to Google Cloud Without D...Kubermatic How to Migrate 100 Clusters from On-Prem to Google Cloud Without D...
Kubermatic How to Migrate 100 Clusters from On-Prem to Google Cloud Without D...
 
ClusterAPI Overview - Managing multi-cloud Kubernetes Clusters - k8s Meetup@v...
ClusterAPI Overview - Managing multi-cloud Kubernetes Clusters - k8s Meetup@v...ClusterAPI Overview - Managing multi-cloud Kubernetes Clusters - k8s Meetup@v...
ClusterAPI Overview - Managing multi-cloud Kubernetes Clusters - k8s Meetup@v...
 
Creating Kubernetes multi clusters with ClusterAPI @ Stuttgart Kubernetes Meetup
Creating Kubernetes multi clusters with ClusterAPI @ Stuttgart Kubernetes MeetupCreating Kubernetes multi clusters with ClusterAPI @ Stuttgart Kubernetes Meetup
Creating Kubernetes multi clusters with ClusterAPI @ Stuttgart Kubernetes Meetup
 
KubeCI - Cloud Native Continuous Delivery for Kubernetes
KubeCI - Cloud Native Continuous Delivery for KubernetesKubeCI - Cloud Native Continuous Delivery for Kubernetes
KubeCI - Cloud Native Continuous Delivery for Kubernetes
 
Kubernetes Cluster API - managing the infrastructure of multi clusters (k8s ...
Kubernetes Cluster API - managing the infrastructure of  multi clusters (k8s ...Kubernetes Cluster API - managing the infrastructure of  multi clusters (k8s ...
Kubernetes Cluster API - managing the infrastructure of multi clusters (k8s ...
 
UI Testing - Selenium? Rich-Clients? Containers? (SwanseaCon 2018)
UI Testing - Selenium? Rich-Clients? Containers? (SwanseaCon 2018)UI Testing - Selenium? Rich-Clients? Containers? (SwanseaCon 2018)
UI Testing - Selenium? Rich-Clients? Containers? (SwanseaCon 2018)
 
Creating Kubernetes multi clusters with ClusterAPI in the Hetzner Cloud
Creating Kubernetes multi clusters with ClusterAPI in the Hetzner CloudCreating Kubernetes multi clusters with ClusterAPI in the Hetzner Cloud
Creating Kubernetes multi clusters with ClusterAPI in the Hetzner Cloud
 
OpenShift-Build-Pipelines: Build ► Test ► Run!
OpenShift-Build-Pipelines: Build ► Test ► Run!OpenShift-Build-Pipelines: Build ► Test ► Run!
OpenShift-Build-Pipelines: Build ► Test ► Run!
 
Kotlin for backend development (Hackaburg 2018 Regensburg)
Kotlin for backend development (Hackaburg 2018 Regensburg)Kotlin for backend development (Hackaburg 2018 Regensburg)
Kotlin for backend development (Hackaburg 2018 Regensburg)
 
UI-Testing - Selenium? Rich-Clients? Containers? @APEX connect 2018
UI-Testing - Selenium? Rich-Clients? Containers? @APEX connect 2018UI-Testing - Selenium? Rich-Clients? Containers? @APEX connect 2018
UI-Testing - Selenium? Rich-Clients? Containers? @APEX connect 2018
 
Continuous Testing: Integration- und UI-Testing mit OpenShift-Build-Pipelines
Continuous Testing: Integration- und UI-Testing mit OpenShift-Build-PipelinesContinuous Testing: Integration- und UI-Testing mit OpenShift-Build-Pipelines
Continuous Testing: Integration- und UI-Testing mit OpenShift-Build-Pipelines
 
OOP2017: Containerized End-2-End Testing – automate it!
OOP2017: Containerized End-2-End Testing – automate it!OOP2017: Containerized End-2-End Testing – automate it!
OOP2017: Containerized End-2-End Testing – automate it!
 
Containerized End-2-End Testing - Agile Testing Meetup at Süddeutsche Zeitung...
Containerized End-2-End Testing - Agile Testing Meetup at Süddeutsche Zeitung...Containerized End-2-End Testing - Agile Testing Meetup at Süddeutsche Zeitung...
Containerized End-2-End Testing - Agile Testing Meetup at Süddeutsche Zeitung...
 
Containerized End-2-End-Testing - ContainerConf Mannheim
Containerized End-2-End-Testing - ContainerConf MannheimContainerized End-2-End-Testing - ContainerConf Mannheim
Containerized End-2-End-Testing - ContainerConf Mannheim
 
Containerized End-2-End-Testing - Software-QS-Tag (deutsch)
Containerized End-2-End-Testing - Software-QS-Tag (deutsch)Containerized End-2-End-Testing - Software-QS-Tag (deutsch)
Containerized End-2-End-Testing - Software-QS-Tag (deutsch)
 
Containerized End-2-End Testing - JUG Saxony Day
Containerized End-2-End Testing - JUG Saxony DayContainerized End-2-End Testing - JUG Saxony Day
Containerized End-2-End Testing - JUG Saxony Day
 
Skale your test environment! Containerized End-2-End-Testing @Herbstcampus Nü...
Skale your test environment! Containerized End-2-End-Testing @Herbstcampus Nü...Skale your test environment! Containerized End-2-End-Testing @Herbstcampus Nü...
Skale your test environment! Containerized End-2-End-Testing @Herbstcampus Nü...
 
Containerized End-2-End-Testing - Tobias Schneck
Containerized End-2-End-Testing - Tobias SchneckContainerized End-2-End-Testing - Tobias Schneck
Containerized End-2-End-Testing - Tobias Schneck
 

Dernier

Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendArshad QA
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 

Dernier (20)

Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and Backend
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 

OpenShift Build Pipelines @ Lightweight Java User Group Meetup

  • 1. OpenShift Build Pipelines Build ► Test ► Run! Tobias Schneck Software Engineer @ Loodse GmbH Testautomation @ ConSol Software GmbH (until June 18)
  • 2. Sebastian ScheeleHeadquarter in in Hamburg, Germany Founders Awarded by > 25 employees world wide Founded in 2016 Julian Hansert Cloud native and container technologies Software development K8s certified Multi & Hybrid Cloud Container Engine
  • 3. Testing as a Service Consulting Workshops Infrastruktur Open Source Testautomatisierung @ ConSol Kontakt: nico.zellner@consol.de
  • 4. + Agenda • OpenShift CI/CD Pipeline Concept • Build up some Pipelines! • Stage I: CI Build of the Artefact • Stage II: Automated Testing − Citrus Integration Testing − Sakuli E2E Testing • Stage III: Artefact Deployment • Review • Alternatives • Links
  • 6. OpenShift Build Pipelines: Build -> Test -> Run! Folie 6 Prozess Development ► QA Stage OPS Code Build & Unit-Test Deploy in Dev Container Image Container Registry POD AUTOMATIC MANUEL ODER AUTOMATIC POD Deploy in QA ► Test
  • 7. OpenShift Build Pipelines: Build -> Test -> Run! Folie 7 Prozess QA ► Production Stage OPS Deploy in Production ►Smoke-Test Container Image from QA Stage MANUEL
  • 8. OpenShift Build Pipelines: Build -> Test -> Run! Folie 8 OpenShift Core Components CI / CD Build Pipeline? Jenkins Integration + Jenkins Template + OpenShift Jenkins Client Plugin + OpenShift Jenkins Sync Plugin
  • 9. OpenShift Build Pipelines: Build -> Test -> Run! Folie 9 OpenShift Regular Builds (traditional) Execution Node OpenShift Builder Pod OpenShift Master Scheduler OpenShift Internal Registry Image Stream (Project/Global) Source-2- Image Build Docker native Build build.yml Dockerfile Image Artifcat Builder Image Base Image
  • 10. OpenShift Build Pipelines: Build -> Test -> Run! Folie 10 OpenShift CI Pipeline Build Execution Node OpenShift Builder Pod OpenShift Master Scheduler OpenShift Internal Registry Image Stream (Project/Global) Image Artifcat Jenkins Image Maven Image … Jenkinsfile Jenkins Pipeline Build OpenShift Regular Build
  • 11. OpenShift Build Pipelines: Build -> Test -> Run! Folie 11 ● Uses OpenShift CLI: oc ○ Automatically authorized ○ Use complete CLI possibilities ○ Huge flexibility ● Uses OpenShift Jenkins Client Plugin ○ Based on Jenkins kubernetes-plugin ○ Groovy wrapper for OpenShift API ○ Enables dynamic slave images - built-in images: base, maven, nodejs - custom images OpenShift Build & Deploy with Jenkinsfile Jenkins Image Jenkinsfile Maven Image Node Image …
  • 12. OpenShift Build Pipelines: Build -> Test -> Run! Folie 12 OpenShift Custom Jenkins Slave Jenkinsfile podTemplate(label: "citrus", cloud: "openshift", inheritFrom: "maven", containers: [ containerTemplate(name: "jnlp", image: "toschneck/citrus-jenkins-slave", ) ]) { node('citrus') { sh "echo execute oc citrus build" checkout scm sh "mvn install" junit 'citrus-tests/target/citrus-reports/**/*.xml' archiveArtifacts "citrus-tests/target/citrus-*/**/*" } } Used by citrusframework/citrus-docker-images PR #3 FROM consol/citrus:2.7.5 ### sourced are copied from: # https://github.com/openshift/jenkins/tree/master/slave-base # https://github.com/openshift/jenkins/tree/master/slave-maven # Copy the jenkins-slave entrypoint ADD contrib/bin/* /usr/local/bin/ # Run the Jenkins JNLP client ENTRYPOINT ["/usr/local/bin/run-jnlp-client"]
  • 13. Build up a Build Pipeline!
  • 14. OpenShift Build Pipelines: Build -> Test -> Run! Folie 14 Bakery App
  • 15. OpenShift Build Pipelines: Build -> Test -> Run! Folie 15 Bakery App
  • 16. OpenShift Build Pipelines: Build -> Test -> Run! Folie 16 Transition to OpenShift Goals: • Don’t change the Sourcecode of the Apps • Also don’t change the Testcode • Fully Automated Pipeline until Production • All in OpenShift (CI, Build, Test, Deployment) • Jenkins v1 -> v2
  • 17. Stage I: CI-Build of the Artefact
  • 18. OpenShift Build Pipelines: Build -> Test -> Run! Folie 18 CI Build ► Docker Image build.pipeline.yml Jenkinsfile.dev Maven Image Dockerfiles OpenShift Regular Build Docker Image Artifact
  • 22. OpenShift Build Pipelines: Build -> Test -> Run! Folie 22 Mission ► Integration Tests System under Test System Under Test Verträge Stammdaten Dienstleister Shipping JM S XM L FTP CSV Webclient Kunde Agent / Techniker Mobile, PDA Http REST Http SOAP
  • 23. OpenShift Build Pipelines: Build -> Test -> Run! Folie 23 Mission ► Integration Tests System Under Test Stammdaten Dienstleister JM S XM L FTP CSV Kunde Agent / Techniker Http REST Http SOAP Automated API Interface Tests
  • 24. OpenShift Build Pipelines: Build -> Test -> Run! Folie 24 Use Case: Testing of Middleware Integration / ESB / API Citrus Features • Ready to use components − Client & Server Implementation − Application Server Deployments − Container Images • Message transports − Http REST, SOAP, JMS, FTP, TCP/IP, Mail, RMI, SSH, ... • Data formats − XML, Json, PlainText, CSV, XSD, WSDL • Test DSL − XML & Java citrusframework/citrus
  • 25. OpenShift Build Pipelines: Build -> Test -> Run! Folie 25 more Citrus • Citrus Admin UI • Easy Testsuite Management • Reporting • Citrus Simulator • Complex Messaging Workflow Simulation • Predefined Interface Packages: WBCI, WITA
  • 26. OpenShift Build Pipelines: Build -> Test -> Run! Folie 26 QA ► Citrus API Integration Tests Citrus Slave Image build.pipeline.yml Jenkinsfile.qa
  • 29. OpenShift Build Pipelines: Build -> Test -> Run! Folie 29 Sakuli End-to-End Use Cases
  • 30. OpenShift Build Pipelines: Build -> Test -> Run! Folie 30 Motivation • Founded February 2014 Open Source (Apache) • Goals: − Combine a web and screen-based testing in ONE tool − Use test results in CI- and monitoring systems − Platform independent: (Linux/Windows/MacOS) • Application tests from a End User Perspective − Functionality (business critical path) − Performance (e2e loading time)
  • 31. OpenShift Build Pipelines: Build -> Test -> Run! Folie 31 Component 1: Sahi / Selenium Web testing tool (sahi.co.in, seleniumhq.org) method based DOM access: _assertContainsText ("Logged in as: Sakuli", _div("user_field")); _click(_span("Loaded Run Tabels")); _assertExists(_table("cross_table_fixed")); _assertExists(_cell(“testing allowed", _rightOf(_span("Name")), _under(_cell("Action"))); <table> <tbody> <tr> <td>Alice</td> <td>Bob</td> </tr> </tbody> </table> Webserverlocalhost:9999 {js}
  • 32. OpenShift Build Pipelines: Build -> Test -> Run! Folie 32 Component 2: Sikuli Visual automation tool (sikuli.org) image identification, mouse & keyboard interaction: screen.find("sap_ok").click(); screen.find("sap_ok").right(40).click().type("2223"); var bubble = new Region().waitForImage("bubble.png", 20); bubble.dragAndDropTo(bubble.left(35)).highlight();
  • 33. OpenShift Build Pipelines: Build -> Test -> Run! Folie 33 Benefits • Integrated API for both Tools - one TestScope • Step by Step Code (JavaScript, Java) • Automatic Screenshots on any Errors • Cloud-ready Docker Images for Kubernets/OpenShift • Sakuli UI for Maintenance, Execution and Reporting (beta) • "Forwarder" Modules: − Monitoring (Gearman, Icinga, CheckMK) − CI (Jenkins, Travis CI, Drone ...) − Databases (MySQL/MariaDB, ...)
  • 34. OpenShift Build Pipelines: Build -> Test -> Run! Folie 34 Monitoring Integration • Ready-to-use setup in Kubernetes/OpenShift • Combinable with „traditional“ monitoring checks • Performance graphs • Cron scheduled check execution • Error screenshots • Mail / Chat Notification • Live watching possible
  • 35. OpenShift Build Pipelines: Build -> Test -> Run! Folie 35 Sakuli End-2-End Testing Container ConSol/docker-headless-vnc-container
  • 36. OpenShift Build Pipelines: Build -> Test -> Run! Folie 36 QA ► Tested Docker Image Docker Image Artifcat Citrus Slave Image SakuliImage build.pipeline.yml Jenkinsfile.qa
  • 38. OpenShift Build Pipelines: Build -> Test -> Run! Folie 38 Review • Jenkins is not designed for containers or pods Plugins, Startup, Java Agents, local Files, Development Roadmap • Migration to Jenkinsfiles • A bunch of wrapper scripts needed, to be flexible • Rethink the CI workflow due to distributed approach • Access to CI runtime data is not so easy any more Logs, Screenshots, Artifacts • Broad mix of technologies • Jenkins slave image is intransparent -> do it yourself! Base image: github.com/openshift/jenkins/slave-base • Distributed documentation OpenShift, Kubernetes, Jenkins, Jenkins-Plugins, Docker, …
  • 39. OpenShift Build Pipelines: Build -> Test -> Run! Folie 39 Review • Scaling is solved by the Cluster • "oc CLI client" instead of OpenShift Jenkins Plugin ► Pipeline can be tested/developed step-by-step ► Independent from the plugin release lifecycle • Parameterized YAML templates for OpenShift • Infrastructur as Code • New stages are easy to create • Deployment will be tested by default • Secrets are maintainable by cluster admins • Builds can be controlled by CLI and UI • Extendable trough Open Source approach
  • 40. OpenShift Build Pipelines: Build -> Test -> Run! Folie 40 Alternative Approaches hasura/gitkube ⇨ Gitkube • “git push” based Workflow on remote Git • Simple: combination of bash scripts ⇨ Skaffold: • Simple scripted CI/CD Workflow • 2 Stages: Local & Remote ⇨ JenkinsX • Predefined workflow for CI/CD in Kubernetes • NO new Jenkins -> just a Wrapper • GitHub only (currently) ⇨ DroneCI / KubeCI • Container first and easy understandable concept • Local execution • Layered build concept for Pods (in Development) GoogleContainerTools/skaffold kubeciiodrone/drone jenkins-x/jx
  • 41. KubeCI ● Drone Kubernetes Runtime ● Plugins: ○ kubectl ○ helm ○ img (daemon-less build) ○ … more will follow pipeline: test: image: python:2-slim commands: - python test/wait-for-it.py build-docker: image: plugins/docker repo: toschneck/wait-for-it dockerfile: Dockerfile WIP
  • 42. OpenShift Build Pipelines: Build -> Test -> Run! Folie 42 Links toschneck/openshift-example-bakery-ci-pipeline citrusframework/citrus www.citrusframework.org ConSol/sakuli www.sakuli.org @toschneck @citrus_test @sakuli_e2e
  • 44. We are hiring! Hamburg, Berlin, Munich, San Francisco, Gdańsk, … www.loodse.com @Loodse
  • 45. Thank you Munich! Tobias Schneck, Loodse @toschneck