SlideShare a Scribd company logo
Jenkins Multi-Configurations (Matrix)
I will start with describing the problem before going into the solution.
Let's say that you have a set of test suites that need to be ran over
multiple servers, each suite is a csv file including all tests (or keywords
in term of KDT - Keyword Driven Testing).
An easy solution can be by having one csv (with same format for all
servers) and one job for each server that is passing the server ip as
parameter to the test suite. The problem with this approach that when
come the time and your boss ask you to add more 10 servers since the
sales guys are doing a great job and more customers are keep coming
in... well, businesses is good but you have to keep maintaining and
duplicating your jobs all the time and adding new ones with the new
server IPs as parameter.
On top of that, instead of having one mail that aggregate all results and
send one mail you'll get tone of mails with the reports of all of these jobs
e.g.
Other approach is duplicating the same tests in one suite for multi-
systems and having the server ip as parameter passing it to the code. The
problem with this approach is that you still need to maintain the code by
keep adding more lines for each system what make them very long and
complicated, beside that all of these steps will need to be ran one after
other instead of running them in parallel. Still a bad solution.
e.g.
Well, you think that you have a good solution and go on with creating
Multi-Job for each system that contains the same jobs this time (no need
to duplicate) and pass the server IP within the multi-job itself. It sounds
better but still need to duplicate the multi-job for each new system
comes in.
So how to get rid of this overhead with keep maintaining jobs and code?
How to do it dynamically?
Here comes the solution of Multi-Configuration (or known by the name
Matrix). What you need to do is to provide your dimensions as axises, in
our example the csv will be one axis the server will be the other one.
That will create a Matrix that will seem like this:
We have in this matrix 21 different options (3x7). Assuming we have
one Jenkins slave that we can run on it 3 executors (to be ran in parallel)
dedicated for this job then each time 3 different jobs will be ran, and
assuming that we need 3 minutes to complete each 3 jobs then whole
jobs will be finished after 7 minutes.
But if we have 2 slaves (nodes) with same number of executers then the
whole job will ran in 3 minutes approximately.
And if we 3 slaves then the whole job will take about 1 minute only!
For technical details about how to achieve this please take a look at these
plugins:
https://wiki.jenkins-ci.org/display/JENKINS/Matrix+Project+Plugin
https://wiki.jenkins-
ci.org/display/JENKINS/Matrix+Combinations+Plugin

More Related Content

What's hot

카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개
카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개
카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개
if kakao
 
What Every Developer Should Know About Database Scalability
What Every Developer Should Know About Database ScalabilityWhat Every Developer Should Know About Database Scalability
What Every Developer Should Know About Database Scalability
jbellis
 
스택 분석 활용 사례 (송재진)
스택 분석 활용 사례 (송재진)스택 분석 활용 사례 (송재진)
스택 분석 활용 사례 (송재진)
WhaTap Labs
 
20220716_만들면서 느껴보는 POP
20220716_만들면서 느껴보는 POP20220716_만들면서 느껴보는 POP
20220716_만들면서 느껴보는 POP
Chiwon Song
 
암호화 이것만 알면 된다.
암호화 이것만 알면 된다.암호화 이것만 알면 된다.
암호화 이것만 알면 된다.
KwangSeob Jeong
 
생산성을 높여주는 iOS 개발 방법들.pdf
생산성을 높여주는 iOS 개발 방법들.pdf생산성을 높여주는 iOS 개발 방법들.pdf
생산성을 높여주는 iOS 개발 방법들.pdf
ssuserb942d2
 
4. 대용량 아키텍쳐 설계 패턴
4. 대용량 아키텍쳐 설계 패턴4. 대용량 아키텍쳐 설계 패턴
4. 대용량 아키텍쳐 설계 패턴
Terry Cho
 
자바 직렬화 (Java serialization)
자바 직렬화 (Java serialization)자바 직렬화 (Java serialization)
자바 직렬화 (Java serialization)
중선 곽
 
엘라스틱서치, 로그스태시, 키바나
엘라스틱서치, 로그스태시, 키바나엘라스틱서치, 로그스태시, 키바나
엘라스틱서치, 로그스태시, 키바나
종민 김
 
SonarQube와 함께하는 소프트웨어 품질 세미나 - SonarQube 소개
SonarQube와 함께하는 소프트웨어 품질 세미나 - SonarQube 소개SonarQube와 함께하는 소프트웨어 품질 세미나 - SonarQube 소개
SonarQube와 함께하는 소프트웨어 품질 세미나 - SonarQube 소개
CURVC Corp
 
Kafka Security 101 and Real-World Tips
Kafka Security 101 and Real-World Tips Kafka Security 101 and Real-World Tips
Kafka Security 101 and Real-World Tips
confluent
 
Breaking Dependencies Legacy Code - Cork Software Crafters - September 2019
Breaking Dependencies Legacy Code -  Cork Software Crafters - September 2019Breaking Dependencies Legacy Code -  Cork Software Crafters - September 2019
Breaking Dependencies Legacy Code - Cork Software Crafters - September 2019
Paulo Clavijo
 
Sparkによる GISデータを題材とした時系列データ処理 (Hadoop / Spark Conference Japan 2016 講演資料)
Sparkによる GISデータを題材とした時系列データ処理 (Hadoop / Spark Conference Japan 2016 講演資料)Sparkによる GISデータを題材とした時系列データ処理 (Hadoop / Spark Conference Japan 2016 講演資料)
Sparkによる GISデータを題材とした時系列データ処理 (Hadoop / Spark Conference Japan 2016 講演資料)
Hadoop / Spark Conference Japan
 
MVC, MVVM, ReactorKit, VIPER를 거쳐 RIB 정착기
MVC, MVVM, ReactorKit, VIPER를 거쳐 RIB 정착기MVC, MVVM, ReactorKit, VIPER를 거쳐 RIB 정착기
MVC, MVVM, ReactorKit, VIPER를 거쳐 RIB 정착기
정민 안
 
Google borg と コンテナベース分散システムデザインパターン
Google borg と コンテナベース分散システムデザインパターンGoogle borg と コンテナベース分散システムデザインパターン
Google borg と コンテナベース分散システムデザインパターン
ktateish
 
NoSQL3
NoSQL3NoSQL3
はじめてのCouch db
はじめてのCouch dbはじめてのCouch db
はじめてのCouch dbEiji Kuroda
 
What's new in Scala 2.13?
What's new in Scala 2.13?What's new in Scala 2.13?
What's new in Scala 2.13?
Hermann Hueck
 
State: You're Doing It Wrong - Alternative Concurrency Paradigms For The JVM
State: You're Doing It Wrong - Alternative Concurrency Paradigms For The JVMState: You're Doing It Wrong - Alternative Concurrency Paradigms For The JVM
State: You're Doing It Wrong - Alternative Concurrency Paradigms For The JVM
Jonas Bonér
 
PostgreSQL Deep Internal
PostgreSQL Deep InternalPostgreSQL Deep Internal
PostgreSQL Deep Internal
EXEM
 

What's hot (20)

카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개
카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개
카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개
 
What Every Developer Should Know About Database Scalability
What Every Developer Should Know About Database ScalabilityWhat Every Developer Should Know About Database Scalability
What Every Developer Should Know About Database Scalability
 
스택 분석 활용 사례 (송재진)
스택 분석 활용 사례 (송재진)스택 분석 활용 사례 (송재진)
스택 분석 활용 사례 (송재진)
 
20220716_만들면서 느껴보는 POP
20220716_만들면서 느껴보는 POP20220716_만들면서 느껴보는 POP
20220716_만들면서 느껴보는 POP
 
암호화 이것만 알면 된다.
암호화 이것만 알면 된다.암호화 이것만 알면 된다.
암호화 이것만 알면 된다.
 
생산성을 높여주는 iOS 개발 방법들.pdf
생산성을 높여주는 iOS 개발 방법들.pdf생산성을 높여주는 iOS 개발 방법들.pdf
생산성을 높여주는 iOS 개발 방법들.pdf
 
4. 대용량 아키텍쳐 설계 패턴
4. 대용량 아키텍쳐 설계 패턴4. 대용량 아키텍쳐 설계 패턴
4. 대용량 아키텍쳐 설계 패턴
 
자바 직렬화 (Java serialization)
자바 직렬화 (Java serialization)자바 직렬화 (Java serialization)
자바 직렬화 (Java serialization)
 
엘라스틱서치, 로그스태시, 키바나
엘라스틱서치, 로그스태시, 키바나엘라스틱서치, 로그스태시, 키바나
엘라스틱서치, 로그스태시, 키바나
 
SonarQube와 함께하는 소프트웨어 품질 세미나 - SonarQube 소개
SonarQube와 함께하는 소프트웨어 품질 세미나 - SonarQube 소개SonarQube와 함께하는 소프트웨어 품질 세미나 - SonarQube 소개
SonarQube와 함께하는 소프트웨어 품질 세미나 - SonarQube 소개
 
Kafka Security 101 and Real-World Tips
Kafka Security 101 and Real-World Tips Kafka Security 101 and Real-World Tips
Kafka Security 101 and Real-World Tips
 
Breaking Dependencies Legacy Code - Cork Software Crafters - September 2019
Breaking Dependencies Legacy Code -  Cork Software Crafters - September 2019Breaking Dependencies Legacy Code -  Cork Software Crafters - September 2019
Breaking Dependencies Legacy Code - Cork Software Crafters - September 2019
 
Sparkによる GISデータを題材とした時系列データ処理 (Hadoop / Spark Conference Japan 2016 講演資料)
Sparkによる GISデータを題材とした時系列データ処理 (Hadoop / Spark Conference Japan 2016 講演資料)Sparkによる GISデータを題材とした時系列データ処理 (Hadoop / Spark Conference Japan 2016 講演資料)
Sparkによる GISデータを題材とした時系列データ処理 (Hadoop / Spark Conference Japan 2016 講演資料)
 
MVC, MVVM, ReactorKit, VIPER를 거쳐 RIB 정착기
MVC, MVVM, ReactorKit, VIPER를 거쳐 RIB 정착기MVC, MVVM, ReactorKit, VIPER를 거쳐 RIB 정착기
MVC, MVVM, ReactorKit, VIPER를 거쳐 RIB 정착기
 
Google borg と コンテナベース分散システムデザインパターン
Google borg と コンテナベース分散システムデザインパターンGoogle borg と コンテナベース分散システムデザインパターン
Google borg と コンテナベース分散システムデザインパターン
 
NoSQL3
NoSQL3NoSQL3
NoSQL3
 
はじめてのCouch db
はじめてのCouch dbはじめてのCouch db
はじめてのCouch db
 
What's new in Scala 2.13?
What's new in Scala 2.13?What's new in Scala 2.13?
What's new in Scala 2.13?
 
State: You're Doing It Wrong - Alternative Concurrency Paradigms For The JVM
State: You're Doing It Wrong - Alternative Concurrency Paradigms For The JVMState: You're Doing It Wrong - Alternative Concurrency Paradigms For The JVM
State: You're Doing It Wrong - Alternative Concurrency Paradigms For The JVM
 
PostgreSQL Deep Internal
PostgreSQL Deep InternalPostgreSQL Deep Internal
PostgreSQL Deep Internal
 

Viewers also liked

Proyecto 2 3 años
Proyecto 2 3 añosProyecto 2 3 años
Proyecto 2 3 años
Marian Riesgo
 
Airtel advertisements
Airtel advertisementsAirtel advertisements
Airtel advertisements
Vishal Jamwal
 
Discovery, discovery, discovery, discovery - The most important part of any p...
Discovery, discovery, discovery, discovery - The most important part of any p...Discovery, discovery, discovery, discovery - The most important part of any p...
Discovery, discovery, discovery, discovery - The most important part of any p...
Dwayne McDaniel
 
ΑΠΟΛΟΓΙΣΜΟΣ 1ης ΕΒΔΟΜΑΔΑΣ ΚΑ1
ΑΠΟΛΟΓΙΣΜΟΣ 1ης ΕΒΔΟΜΑΔΑΣ ΚΑ1ΑΠΟΛΟΓΙΣΜΟΣ 1ης ΕΒΔΟΜΑΔΑΣ ΚΑ1
ΑΠΟΛΟΓΙΣΜΟΣ 1ης ΕΒΔΟΜΑΔΑΣ ΚΑ1
Akis Ampelas
 
Birds
BirdsBirds
European Policy Framework for SDGs: Communication best practice for SDGs and ...
European Policy Framework for SDGs: Communication best practice for SDGs and ...European Policy Framework for SDGs: Communication best practice for SDGs and ...
European Policy Framework for SDGs: Communication best practice for SDGs and ...
Adriana Farenga
 
Maltrato infantil
Maltrato infantilMaltrato infantil
Maltrato infantil
Carmelo Troya Romero
 
P.a.
P.a.P.a.
05 noções de desenho técnico
05   noções de desenho técnico05   noções de desenho técnico
05 noções de desenho técnico
Eneida Gonzalez Valdes
 
Stack
StackStack
Stack
neuwerk
 
Actividades iniciales. Edición de materia audiovisual
Actividades iniciales. Edición de materia audiovisualActividades iniciales. Edición de materia audiovisual
Actividades iniciales. Edición de materia audiovisual
natybe1993
 
20150529 helmfried meinel
20150529 helmfried meinel20150529 helmfried meinel
20150529 helmfried meinel
bagmaster
 
Presentacion yelfran
Presentacion yelfranPresentacion yelfran
Presentacion yelfran
yelfranvasquez
 
Sand camp beginner drupal development
Sand camp beginner drupal developmentSand camp beginner drupal development
Sand camp beginner drupal development
meghsweet
 
Agile Site built on the top of Oracle WebCenter Sites
Agile Site built on the top of Oracle WebCenter SitesAgile Site built on the top of Oracle WebCenter Sites
Agile Site built on the top of Oracle WebCenter Sites
Duc Therry
 

Viewers also liked (18)

Proyecto 2 3 años
Proyecto 2 3 añosProyecto 2 3 años
Proyecto 2 3 años
 
Airtel advertisements
Airtel advertisementsAirtel advertisements
Airtel advertisements
 
Discovery, discovery, discovery, discovery - The most important part of any p...
Discovery, discovery, discovery, discovery - The most important part of any p...Discovery, discovery, discovery, discovery - The most important part of any p...
Discovery, discovery, discovery, discovery - The most important part of any p...
 
ΑΠΟΛΟΓΙΣΜΟΣ 1ης ΕΒΔΟΜΑΔΑΣ ΚΑ1
ΑΠΟΛΟΓΙΣΜΟΣ 1ης ΕΒΔΟΜΑΔΑΣ ΚΑ1ΑΠΟΛΟΓΙΣΜΟΣ 1ης ΕΒΔΟΜΑΔΑΣ ΚΑ1
ΑΠΟΛΟΓΙΣΜΟΣ 1ης ΕΒΔΟΜΑΔΑΣ ΚΑ1
 
Birds
BirdsBirds
Birds
 
European Policy Framework for SDGs: Communication best practice for SDGs and ...
European Policy Framework for SDGs: Communication best practice for SDGs and ...European Policy Framework for SDGs: Communication best practice for SDGs and ...
European Policy Framework for SDGs: Communication best practice for SDGs and ...
 
Maltrato infantil
Maltrato infantilMaltrato infantil
Maltrato infantil
 
P.a.
P.a.P.a.
P.a.
 
05 noções de desenho técnico
05   noções de desenho técnico05   noções de desenho técnico
05 noções de desenho técnico
 
Stack
StackStack
Stack
 
Balancete 04 13
Balancete 04 13Balancete 04 13
Balancete 04 13
 
Actividades iniciales. Edición de materia audiovisual
Actividades iniciales. Edición de materia audiovisualActividades iniciales. Edición de materia audiovisual
Actividades iniciales. Edición de materia audiovisual
 
20150529 helmfried meinel
20150529 helmfried meinel20150529 helmfried meinel
20150529 helmfried meinel
 
Presentacion yelfran
Presentacion yelfranPresentacion yelfran
Presentacion yelfran
 
Oliver Twist (L.W)
Oliver Twist (L.W)Oliver Twist (L.W)
Oliver Twist (L.W)
 
Sand camp beginner drupal development
Sand camp beginner drupal developmentSand camp beginner drupal development
Sand camp beginner drupal development
 
RdF - Unitranche
RdF - UnitrancheRdF - Unitranche
RdF - Unitranche
 
Agile Site built on the top of Oracle WebCenter Sites
Agile Site built on the top of Oracle WebCenter SitesAgile Site built on the top of Oracle WebCenter Sites
Agile Site built on the top of Oracle WebCenter Sites
 

Similar to Jenkins multi configuration (matrix)

Cloudops fundamentals management, tdd, test driven design, continuous integra...
Cloudops fundamentals management, tdd, test driven design, continuous integra...Cloudops fundamentals management, tdd, test driven design, continuous integra...
Cloudops fundamentals management, tdd, test driven design, continuous integra...
Bret Piatt
 
OverviewAssignment 1 Hypothetical Machine SimulatorCSci 43.docx
OverviewAssignment 1  Hypothetical Machine SimulatorCSci 43.docxOverviewAssignment 1  Hypothetical Machine SimulatorCSci 43.docx
OverviewAssignment 1 Hypothetical Machine SimulatorCSci 43.docx
honey690131
 
Assignment 1 Hypothetical Machine SimulatorCSci 430 Int.docx
Assignment 1  Hypothetical Machine SimulatorCSci 430 Int.docxAssignment 1  Hypothetical Machine SimulatorCSci 430 Int.docx
Assignment 1 Hypothetical Machine SimulatorCSci 430 Int.docx
jane3dyson92312
 
Migration To Multi Core - Parallel Programming Models
Migration To Multi Core - Parallel Programming ModelsMigration To Multi Core - Parallel Programming Models
Migration To Multi Core - Parallel Programming Models
Zvi Avraham
 
Scanned by CamScannerModule 03 Lab WorksheetWeb Developmen.docx
Scanned by CamScannerModule 03 Lab WorksheetWeb Developmen.docxScanned by CamScannerModule 03 Lab WorksheetWeb Developmen.docx
Scanned by CamScannerModule 03 Lab WorksheetWeb Developmen.docx
anhlodge
 
Celery with python
Celery with pythonCelery with python
Celery with python
Alexandre González Rodríguez
 
[Cassandra summit Tokyo, 2015] Cassandra 2015 最新情報 by ジョナサン・エリス(Jonathan Ellis)
[Cassandra summit Tokyo, 2015] Cassandra 2015 最新情報 by ジョナサン・エリス(Jonathan Ellis)[Cassandra summit Tokyo, 2015] Cassandra 2015 最新情報 by ジョナサン・エリス(Jonathan Ellis)
[Cassandra summit Tokyo, 2015] Cassandra 2015 最新情報 by ジョナサン・エリス(Jonathan Ellis)
datastaxjp
 
Apache Cassandra 2.0
Apache Cassandra 2.0Apache Cassandra 2.0
Apache Cassandra 2.0
Joe Stein
 
Clustered PHP - DC PHP 2009
Clustered PHP - DC PHP 2009Clustered PHP - DC PHP 2009
Clustered PHP - DC PHP 2009
marcelesser
 
Build a Complex, Realtime Data Management App with Postgres 14!
Build a Complex, Realtime Data Management App with Postgres 14!Build a Complex, Realtime Data Management App with Postgres 14!
Build a Complex, Realtime Data Management App with Postgres 14!
Jonathan Katz
 
Care and feeding notes
Care and feeding notesCare and feeding notes
Care and feeding notes
Perrin Harkins
 
Alex Smola, Professor in the Machine Learning Department, Carnegie Mellon Uni...
Alex Smola, Professor in the Machine Learning Department, Carnegie Mellon Uni...Alex Smola, Professor in the Machine Learning Department, Carnegie Mellon Uni...
Alex Smola, Professor in the Machine Learning Department, Carnegie Mellon Uni...
MLconf
 
The Architect's Two Hats
The Architect's Two HatsThe Architect's Two Hats
The Architect's Two Hats
Ben Stopford
 
SCons an Introduction
SCons an IntroductionSCons an Introduction
SCons an Introduction
slantsixgames
 
C optimization notes
C optimization notesC optimization notes
C optimization notes
Fyaz Ghaffar
 
CUDA by Example : Thread Cooperation : Notes
CUDA by Example : Thread Cooperation : NotesCUDA by Example : Thread Cooperation : Notes
CUDA by Example : Thread Cooperation : Notes
Subhajit Sahu
 
Test Driven Database Development With Data Dude
Test Driven Database Development With Data DudeTest Driven Database Development With Data Dude
Test Driven Database Development With Data Dude
Cory Foy
 
Introduction to LAVA Workload Scheduler
Introduction to LAVA Workload SchedulerIntroduction to LAVA Workload Scheduler
Introduction to LAVA Workload Scheduler
Nopparat Nopkuat
 
cpu-affinity
cpu-affinitycpu-affinity
cpu-affinity
Magnetic Poetry
 
Csc concepts
Csc conceptsCsc concepts

Similar to Jenkins multi configuration (matrix) (20)

Cloudops fundamentals management, tdd, test driven design, continuous integra...
Cloudops fundamentals management, tdd, test driven design, continuous integra...Cloudops fundamentals management, tdd, test driven design, continuous integra...
Cloudops fundamentals management, tdd, test driven design, continuous integra...
 
OverviewAssignment 1 Hypothetical Machine SimulatorCSci 43.docx
OverviewAssignment 1  Hypothetical Machine SimulatorCSci 43.docxOverviewAssignment 1  Hypothetical Machine SimulatorCSci 43.docx
OverviewAssignment 1 Hypothetical Machine SimulatorCSci 43.docx
 
Assignment 1 Hypothetical Machine SimulatorCSci 430 Int.docx
Assignment 1  Hypothetical Machine SimulatorCSci 430 Int.docxAssignment 1  Hypothetical Machine SimulatorCSci 430 Int.docx
Assignment 1 Hypothetical Machine SimulatorCSci 430 Int.docx
 
Migration To Multi Core - Parallel Programming Models
Migration To Multi Core - Parallel Programming ModelsMigration To Multi Core - Parallel Programming Models
Migration To Multi Core - Parallel Programming Models
 
Scanned by CamScannerModule 03 Lab WorksheetWeb Developmen.docx
Scanned by CamScannerModule 03 Lab WorksheetWeb Developmen.docxScanned by CamScannerModule 03 Lab WorksheetWeb Developmen.docx
Scanned by CamScannerModule 03 Lab WorksheetWeb Developmen.docx
 
Celery with python
Celery with pythonCelery with python
Celery with python
 
[Cassandra summit Tokyo, 2015] Cassandra 2015 最新情報 by ジョナサン・エリス(Jonathan Ellis)
[Cassandra summit Tokyo, 2015] Cassandra 2015 最新情報 by ジョナサン・エリス(Jonathan Ellis)[Cassandra summit Tokyo, 2015] Cassandra 2015 最新情報 by ジョナサン・エリス(Jonathan Ellis)
[Cassandra summit Tokyo, 2015] Cassandra 2015 最新情報 by ジョナサン・エリス(Jonathan Ellis)
 
Apache Cassandra 2.0
Apache Cassandra 2.0Apache Cassandra 2.0
Apache Cassandra 2.0
 
Clustered PHP - DC PHP 2009
Clustered PHP - DC PHP 2009Clustered PHP - DC PHP 2009
Clustered PHP - DC PHP 2009
 
Build a Complex, Realtime Data Management App with Postgres 14!
Build a Complex, Realtime Data Management App with Postgres 14!Build a Complex, Realtime Data Management App with Postgres 14!
Build a Complex, Realtime Data Management App with Postgres 14!
 
Care and feeding notes
Care and feeding notesCare and feeding notes
Care and feeding notes
 
Alex Smola, Professor in the Machine Learning Department, Carnegie Mellon Uni...
Alex Smola, Professor in the Machine Learning Department, Carnegie Mellon Uni...Alex Smola, Professor in the Machine Learning Department, Carnegie Mellon Uni...
Alex Smola, Professor in the Machine Learning Department, Carnegie Mellon Uni...
 
The Architect's Two Hats
The Architect's Two HatsThe Architect's Two Hats
The Architect's Two Hats
 
SCons an Introduction
SCons an IntroductionSCons an Introduction
SCons an Introduction
 
C optimization notes
C optimization notesC optimization notes
C optimization notes
 
CUDA by Example : Thread Cooperation : Notes
CUDA by Example : Thread Cooperation : NotesCUDA by Example : Thread Cooperation : Notes
CUDA by Example : Thread Cooperation : Notes
 
Test Driven Database Development With Data Dude
Test Driven Database Development With Data DudeTest Driven Database Development With Data Dude
Test Driven Database Development With Data Dude
 
Introduction to LAVA Workload Scheduler
Introduction to LAVA Workload SchedulerIntroduction to LAVA Workload Scheduler
Introduction to LAVA Workload Scheduler
 
cpu-affinity
cpu-affinitycpu-affinity
cpu-affinity
 
Csc concepts
Csc conceptsCsc concepts
Csc concepts
 

Recently uploaded

2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
Łukasz Chruściel
 
How to write a program in any programming language
How to write a program in any programming languageHow to write a program in any programming language
How to write a program in any programming language
Rakesh Kumar R
 
GreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-JurisicGreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-Jurisic
Green Software Development
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
Peter Muessig
 
Hand Rolled Applicative User Validation Code Kata
Hand Rolled Applicative User ValidationCode KataHand Rolled Applicative User ValidationCode Kata
Hand Rolled Applicative User Validation Code Kata
Philip Schwarz
 
Using Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional SafetyUsing Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional Safety
Ayan Halder
 
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
mz5nrf0n
 
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
mz5nrf0n
 
All you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVMAll you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVM
Alina Yurenko
 
Top 9 Trends in Cybersecurity for 2024.pptx
Top 9 Trends in Cybersecurity for 2024.pptxTop 9 Trends in Cybersecurity for 2024.pptx
Top 9 Trends in Cybersecurity for 2024.pptx
devvsandy
 
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdfTop Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
VALiNTRY360
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Łukasz Chruściel
 
一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理
dakas1
 
Using Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query PerformanceUsing Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query Performance
Grant Fritchey
 
zOS Mainframe JES2-JES3 JCL-JECL Differences
zOS Mainframe JES2-JES3 JCL-JECL DifferenceszOS Mainframe JES2-JES3 JCL-JECL Differences
zOS Mainframe JES2-JES3 JCL-JECL Differences
YousufSait3
 
Webinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for EmbeddedWebinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for Embedded
ICS
 
Unveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdfUnveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdf
brainerhub1
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
Green Software Development
 
socradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdfsocradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdf
SOCRadar
 
What next after learning python programming basics
What next after learning python programming basicsWhat next after learning python programming basics
What next after learning python programming basics
Rakesh Kumar R
 

Recently uploaded (20)

2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
 
How to write a program in any programming language
How to write a program in any programming languageHow to write a program in any programming language
How to write a program in any programming language
 
GreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-JurisicGreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-Jurisic
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
 
Hand Rolled Applicative User Validation Code Kata
Hand Rolled Applicative User ValidationCode KataHand Rolled Applicative User ValidationCode Kata
Hand Rolled Applicative User Validation Code Kata
 
Using Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional SafetyUsing Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional Safety
 
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
 
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
 
All you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVMAll you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVM
 
Top 9 Trends in Cybersecurity for 2024.pptx
Top 9 Trends in Cybersecurity for 2024.pptxTop 9 Trends in Cybersecurity for 2024.pptx
Top 9 Trends in Cybersecurity for 2024.pptx
 
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdfTop Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
 
一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理
 
Using Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query PerformanceUsing Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query Performance
 
zOS Mainframe JES2-JES3 JCL-JECL Differences
zOS Mainframe JES2-JES3 JCL-JECL DifferenceszOS Mainframe JES2-JES3 JCL-JECL Differences
zOS Mainframe JES2-JES3 JCL-JECL Differences
 
Webinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for EmbeddedWebinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for Embedded
 
Unveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdfUnveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdf
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
 
socradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdfsocradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdf
 
What next after learning python programming basics
What next after learning python programming basicsWhat next after learning python programming basics
What next after learning python programming basics
 

Jenkins multi configuration (matrix)

  • 1. Jenkins Multi-Configurations (Matrix) I will start with describing the problem before going into the solution. Let's say that you have a set of test suites that need to be ran over multiple servers, each suite is a csv file including all tests (or keywords in term of KDT - Keyword Driven Testing). An easy solution can be by having one csv (with same format for all servers) and one job for each server that is passing the server ip as parameter to the test suite. The problem with this approach that when come the time and your boss ask you to add more 10 servers since the sales guys are doing a great job and more customers are keep coming in... well, businesses is good but you have to keep maintaining and duplicating your jobs all the time and adding new ones with the new server IPs as parameter. On top of that, instead of having one mail that aggregate all results and send one mail you'll get tone of mails with the reports of all of these jobs e.g. Other approach is duplicating the same tests in one suite for multi- systems and having the server ip as parameter passing it to the code. The problem with this approach is that you still need to maintain the code by keep adding more lines for each system what make them very long and
  • 2. complicated, beside that all of these steps will need to be ran one after other instead of running them in parallel. Still a bad solution. e.g. Well, you think that you have a good solution and go on with creating Multi-Job for each system that contains the same jobs this time (no need to duplicate) and pass the server IP within the multi-job itself. It sounds better but still need to duplicate the multi-job for each new system comes in. So how to get rid of this overhead with keep maintaining jobs and code? How to do it dynamically? Here comes the solution of Multi-Configuration (or known by the name Matrix). What you need to do is to provide your dimensions as axises, in our example the csv will be one axis the server will be the other one. That will create a Matrix that will seem like this:
  • 3. We have in this matrix 21 different options (3x7). Assuming we have one Jenkins slave that we can run on it 3 executors (to be ran in parallel) dedicated for this job then each time 3 different jobs will be ran, and assuming that we need 3 minutes to complete each 3 jobs then whole jobs will be finished after 7 minutes. But if we have 2 slaves (nodes) with same number of executers then the whole job will ran in 3 minutes approximately. And if we 3 slaves then the whole job will take about 1 minute only! For technical details about how to achieve this please take a look at these plugins: https://wiki.jenkins-ci.org/display/JENKINS/Matrix+Project+Plugin https://wiki.jenkins- ci.org/display/JENKINS/Matrix+Combinations+Plugin