ANALYSIS OF STRUCTURAL OPTIMIZATION METHODS FOR CONTINUOUS INTEGRATION PIPELINES
DOI:
https://doi.org/10.32782/IT/2024-3-14Keywords:
Continuous Integration, structural optimization, software development, software maintenance, computational optimizationAbstract
Continuous Integration (CI) is an essential practice in modern software development. This paper focuses on analyzing the practical efficiency of applying structural optimization techniques to continuous integration pipelines. The objective of this work is to review and evaluate the practical efficiency of various structural optimization techniques applied to continuous integration pipelines in diverse software environments. Methodology: A comprehensive literature review was conducted, focusing on publications from the past ten years to capture recent advancements and emerging trends in CI efficiency improvements. The systematic search of academic databases used keywords such as «Continuous Integration», «CI optimization», «direct acyclic graph», «tasks prioritization», «incremental builds», and «parallel testing». Inclusion criteria ensured the selection of highquality studies, including peer-reviewed journal articles, conference papers, and industry reports. Articles that did not explicitly focus on CI efficiency improvements or lacked empirical evidence were excluded from the review. Additionally, an experiment was conducted to perform a comparative analysis of the effectiveness and applicability of various optimization techniques across different software solutions: S1 – A legacy multi-module monolithic system; S2 – A web-based application with service-oriented architecture; S3 – A modern cloud-native application; S4 – An Infrastructure as a Code solution with a complex multi-staging pipeline; S5 – A test automation solution focused on multi-staged end-to-end tests. The results of applying each optimization technique were thoroughly documented to support final conclusions. The effectiveness analysis is based on the critical path length analysis of a directed acyclic graph representation of the Continuous Integration pipeline. The novelty of this research lies in using comparative analysis to evaluate the efficiency of applying various structural optimization techniques to complex software solutions in hybrid environments. The results of the research highlighted the uneven impact of each structural optimization technique on Continuous Integration pipeline efficiency across the different solutions. While an overall trend toward more effective pipeline execution is evident in each case, the effectiveness of each evaluated method varies from one solution to another. This variation appears to depend on multiple factors, including the technology stack, solution size, inherent limitations, and the size and complexity of the Continuous Integration pipeline. Identifying these factors, as well as evaluating structural optimization techniques on a larger scale to determine correlations between these factors and pipeline efficiency, could be a focus for future research.
References
Xianhao J., Servant F. What helped, and what did not? An Evaluation of the Strategies to Improve Continuous Integration. 43rd International Conference on Software Engineering: Conference Proceedings., Madrid, 25–28 May 2021. P. 213–225.
Burdiuzha R. Building an effective CI/CD pipeline: A comprehensive guide. Medium.com. URL: https://gartsolutions.medium.com/building-an-effective-ci-cd-pipeline-a-comprehensive-guide-bb07343973b7 (date of access: 10.09.2024).
Tsvirkun L., Myronov Y. Challenges and Specificities of Adopting Continuous Integration within Scalable Cloud Environments. IEEE 18th International Conference on Computer Science and Information Technologies (CSIT): Conference Proceedings, Lviv, 19–21 October 2023.
Xianhao J., Servant F. HybridCISave: A Combined Build and Test Selection Approach in Continuous Integration. ACM Transactions on Software Engineering and Methodology. 2023. Vol. 32, no. 4. P. 1–39.
Stahl D. Large scale continuous integration and delivery: Making great software better and faster: PhD thesis. Groningen, 2017. 257 p.
Fallahzadeh E., Bavand A. H., Rigby P. C. Accelerating Continuous Integration with Parallel Batch Testing. 31st ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering: Conference Proceedings, San Francisco, 3–9 December 2023. New York.
Bavand A. H. The Impact of Parallel and Batch Testing in Continuous Integration Environments: Masters Thesis. Concordia University, 2021. 109 p.
Scalable build service system with smart scheduling service / K. Wang et al. ISSTA 2020: Proceedings of the 29th ACM SIGSOFT International Symposium on Software Testing and Analysis: Conference Proceedings, 18–22 July 2020. New York, 2020. P. 456–462.
Zheng S., Adams B., Hassan A. E. Does using Bazel help speed up continuous integration builds?. Empirical Software Engineering. 2024. Vol. 29, no. 5.
Detecting Build Dependency Errors in Incremental Builds / J. Lyu et al. ISSTA 2024: Proceedings of the 33rd ACM SIGSOFT International Symposium on Software Testing and Analysis: Conference Proceedings, Vienna, 16–20 September 2024. New York, 2024. P. 1–12.
Xianhao J., Servant F. A cost-efficient approach to building in continuous integration. ICSE ‘20: Proceedings of the ACM/IEEE 42nd International Conference on Software Engineering: Conference Proceedings, Seoul, 27 June – 19 July 2020. New York, 2020. P. 13–25.
BUILDFAST: History-Aware Build Outcome Prediction for Fast Feedback and Reduced Cost in Continuous Integration / B. Chen et al. 2020 35th IEEE/ACM International Conference on Automated Software Engineering (ASE): Conference Proceedings, Melbourne, 21–25 September 2020. 2024. P. 42–53.