АНАЛІЗ МЕТОДІВ СТРУКТУРНОЇ ОПТИМІЗАЦІЇ ПРОЦЕСІВ НЕПЕРЕРВНОЇ ІНТЕГРАЦІЇ
DOI:
https://doi.org/10.32782/IT/2024-3-14Ключові слова:
неперервна інтеграція, структурна оптимізація, розробка програмного забезпечення, обслуговування програмного забезпечення, оптимізація обчисленьАнотація
Неперервна інтеграція є важливою практикою в сучасній розробці програмного забезпечення. Ця робота зосереджена на аналізі практичної ефективності застосування методів структурної оптимізації процесів неперервної інтеграції. Метою цієї роботи є огляд і оцінка практичної ефективності різних методів структурної оптимізації, застосованих до процесів неперервної інтеграції в різноманітних програмних середовищах. Методологія: проведено систематичний огляд літератури із фокусом на публікаціях за останні п’ять років, щоб зафіксувати останні досягнення та нові тенденції в підвищенні ефективності процесів неперервної інтеграції. Для пошуку в академічних базах даних використовувалися такі ключові слова, як «неперервна інтеграція», «оптимізація неперервної інтеграції», «спрямований ациклічний граф», «пріоритизація завдань», «інкрементні збірки» та «паралельне тестування». Критерії огляду зосереджені на високоякісних досліджень, включаючи рецензовані статті в журналах, доповіді на конференціях і професійні публікації. Статті, які явно не зосереджувалися на підвищенні ефективності процесів неперервної інтеграції або не мали емпіричних доказів, були виключені з огляду. Крім того, було проведено експерименти для порівняльного аналізу ефективності та застосовності різних методів оптимізації для різних програмних рішень: S1 – застаріла багатомодульна монолітна система; S2 – веб-застосунок із сервісно-орієнтованою архітектурою; S3 – сучасний застосунок у хмарному середовищі; S4 – рішення «інфраструктура як код» зі складним багатоетапним процесом; S5 – рішення для автоматизації тестування, зосереджене на багатоетапних наскрізних тестах. Результати застосування кожного методу оптимізації були ретельно задокументовані, щоб підтвердити остаточні висновки. Аналіз ефективності базується на аналізі довжини критичного шляху процесу неперервної інтеграції у вигляді графу. Наукова новизна цього дослідження полягає у використанні методу порівняльного аналізу для оцінки ефективності застосування різних методів структурної оптимізації процесів неперервної інтеграції у складних програмних рішеннях у гібридних середовищах. Результати дослідження підкреслили неоднаковий вплив кожного методу структурної оптимізації на ефективність процесів неперервної інтеграції в різних рішеннях. Хоча загальна тенденція до більш ефективного виконання процесів очевидна в кожному випадку, ефективність кожного оцінюваного методу відрізняється від одного рішення до іншого. Схоже, що така варіація залежить від багатьох факторів, включаючи стек технологій, розмір кодової бази, внутрішні обмеження, а також розмір і складність процесу неперервної інтеграції. Виявлення цих факторів, а також оцінка методів структурної оптимізації в більшому масштабі для визначення кореляцій між цими факторами та ефективністю процесів неперервної інтеграції можуть стати питаннями майбутніх досліджень.
Посилання
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.