Info: Zenodo’s user support line is staffed on regular business days between Dec 23 and Jan 5. Response times may be slightly longer than normal.

Published December 18, 2019 | Version v1.0
Other Open

Performance Analysis of CI/CD Pipelines Using (Colored) Generalized Stochastic Petri Nets

  • 1. Universität Stuttgart

Description

DevOps is enjoying widespread adoption by enterprises. Many of

them are utilizing CI/CD pipelines. These allow them to define a

chain of processing, in which elements of the DevOps toolchain,

such as building, testing, and deploying, are executed. As software

can only reach users through this pipeline, its speed is of quintes-

sential concern, as delays or failures of the pipeline can cause an

abrupt halt to development and deployment. However, there is a

severe lack in methods to evaluate the speed of a pipeline. Thus,

we propose an approach to detect performance issues of pipelines

using Petri Nets. Additionally, we propose an approach to predict

to what degree pipeline execution must be adjusted, in order to

prevent performance issues entirely. Our approach utilizes StalkCD,

which allows the transformation of pipelines into BPMN and back.

We use the model it creates, and transform it into a Petri Net instead.

We then run a steady state simulation on the Petri Net in order to

get estimates on how the pipeline will perform under various loads.

As StalkCD currently only transforms Jenkins pipelines, the pat-

terns we use to create our Petri Net model were derived primarily

from Jenkins pipelines as well. Additionally, to obtain test-related

information, such as service rates of pipeline elements, we have de-

veloped scripts to transform data provided by various Jenkins APIs

into data models which are used by our transformation. To evaluate

the validity of our approach, we analyze the speed of simulation

of our Petri Net and how accurate our predictions, stemming from

the Petri Net simulation, are to data obtained from actual pipeline

executions. Our result is that the Petri net model we created can

not make accurate predictions of Jenkins pipelines. We discovered

this is due to patterns in Jenkins which we did not or could not

cover in our model. Additionally, we discovered our evaluation

could not produce results necessary to validate our approach. To

create an accurate model and evaluate its predictions would require

a massive amount of research and effort.

Files

StalkCD-Extention and evaluation data.zip

Files (1.5 MB)

Name Size Download all
md5:6dc90b66f941aadafd6f081bcd8d8e8b
1.5 MB Preview Download