Improve continuous integration and delivery methods by implementing a load testing stage
DOI: 10.31673/2412-9070.2021.013944
DOI:
https://doi.org/10.31673/2412-9070.2021.013944Abstract
The contradiction between system stability and development speed development introduces new challenges to processes automatization. Significant increase of quality and speed of software development was reached due to agile method and continuous integration and continuous delivery (CICD) approach, which enabled rapid software changes by breaking development process into small iterative stages. New product version with new features incorporated is the result of each iteration. Then, there are automation tools typically used for testing and building. However, there is space for performance issues and delivery failures in this scheme. System scaling is generic approach for resolving performance problems, but the question how much the system should be scaled remains unanswered. Load testing procedure is commonly used but it is still not perfect, as testing environment is very different from production environment. Therefore, current paper is aimed at overcoming described difficulties by extending CICD approach with load testing automatization, system benchmarking, which allows system interruption minimization, and system scaling evaluation by scale factors calculation. Using these enrichments more precise testing result will be provided. We also suggest using such tools as Go-replay for traffic mirroring and Nagios for monitoring. Hence, this paper suggests enriching and increasing the efficiency of CICD approach. In addition, paper addresses methods of monitoring metrics collecting in centralized system. They will be used in further analysis and decision-making process regarding new product version in the automated mode.
Keywords: сontinuous integration and continuous delivery (CICD); Server monitoring; version management; configuration management; performance testing; performance scalability; pipelines; bugs detection.
References
1. Cunningham W. Principles behind the Agile Manifesto [Електронний ресурс] // Agile Manifesto. org. URL: http://agilemanifesto.org/principles.html
2. Cohn M. Succeeding with Agile [Електронний ресурс] // Addison-Wesley. URL: http://1.droppdf.com/files/AFvTS/succeedingwith-agile-mike-cohn.pdf
3. Practicing Continuous Integration and Continuous Delivery on AWS [Електронний ресурс] // Amazon Web Services Inc. URL: https://aws.amazon.com
4. Getting started with Continuous Integration in Software Development [Електронний ресурс] // Infosys Limited. URL: https://www.infosys.com
5. An efficient network monitoring and management system [Електронний ресурс] R. Khan, S. Ullah Khan, R. Zaheer, M. I. Babar // International Journal of Information and Electronics Engineering. URL: https://www.researchgate.net/publication/316060077_An_Efficient_Network_ Monitoring_and_Management_System
6. Kucera A., Glos P., Pitner T. Fault detection in building management system networks [Електронний ресурс] // IFAC Proceedings. URL: https://www.sciencedirect.com/science/article/pii/S1474667015373638
7. Feitelson D. G., Frachtenburg E., Beck K. L. Development and Deployment at Facebook [Електронний ресурс] // IEEE Internet Computing. URL: https://ieeexplore.ieee.org/document/6449236
8. Continuous deployment at Facebook and Oando [Електронний ресурс] / T. Savor, M. Douglas, M. Gentili, L. Williams, K. Beck, M. Stumm // 38th International Conference on Software Engineering Companion. URL: https://ieeexplore.ieee.org/document/6449236
9. Bass L., Weber I., Zhu L. DevOps: A Software Architect’s Perspective // Addison-Wesley Professional, 2015. 352 p.
10. Meyer M. Continuous Integration and Its Tools [Електронний ресурс] // IEEE Software. URL: https://ieeexplore.ieee.org/document/6802994