CI/CD for Distributed Software Systems: Why Software Architecture Determines Pipeline Complexity

Authors

  • Sumith Thalary Sr DevOPs Engineer, Nike, Beaverton, OR. Author
  • Anvesh Katipelly Senior Software Engineer, PayPal, Texas, USA. Author

DOI:

https://doi.org/10.63282/3050-922X.IJERET-V2I4P111

Keywords:

Pipelines, Releases, Environments, Pipeline Design, Environment Promotion, Release Strategies, CI/CD Architecture Devops For Microservices, Release Orchestration Deployment Strategies, Coupling, Dependencies, Build Structure, Monolith Vs Microservices, Dependency Graphs, Build-Time Vs Runtime Decisions, Enterprise Software Delivery, Pipeline Design Patterns, Software Coupling Devops, Build Vs Deploy Complexity

Abstract

Continuous Integration and Continuous Deployment (CI/CD) are now essential practices in the contemporary software development process allowing organizations to be able to release updates on their software quickly and consistently. Nevertheless, there has been an extreme complication of CI/CD pipelines with the adoption of distributed software architectures, including microservices and service-oriented systems. In distributed settings, applications are composed of several autonomous services communicating via networks and need elaborate integration, testing and deployment mechanisms. The paper under research examines the impact that software architecture has on the operational complexity and design of CI/CD pipelines in distributed software systems. The paper evaluates some of the critical architectural design dimensions such as component breakdown, service communication, dependency management, and scalability strategy and how these elements influence pipeline structure and execution. An architecture-based CI/CD system is proposed to overcome the issues posed by distributed architecture. The framework takes into account concepts like modular pipeline design, automated dependency mapping, adaptive build and test scheduling as well as smart deployment orchestration. The study shows that distributed architectures can be used to achieve shorter deployment cycles and better system scalability with the help of parallelization and service-level deployment mechanisms through performance evaluation and comparative analysis. Nevertheless, such benefits also bring other complexity of the pipeline in terms of inter-service dependencies, the heterogeneity of infrastructure and the necessity of a multi-environment deployment. The findings also point to the complexity of the CI/CD pipeline as heavily conditioned by the design-related choices as opposed to the selection of the automation tools alone. With the arts and craft of architectural consciousness in the design of the pipeline, organizations are able to maximize the performance of CI/CD, enhance the reliability of deployment and the ability to deliver scalable software to the modern distributed systems.

References

[1] Daneva, M., & Bolscher, R. (2020). What we know about software architecture styles in continuous delivery and devops?. In International Conference on Software Technologies (pp. 26-39). Springer, Cham.

[2] Madupati, B. (2019). Revolution of Cloud Technology in Software Development. Available at SSRN 5146576.

[3] Barczak, A., Barczak, M., & Toledo, M. (2021, July). Performance comparison of monolith and microservices based applications. In Proceedings of the 25th World Multi-Conference on Systemics, Cybernetics and Informatics, WMSCI (pp. 120-125).

[4] Kakarla, R., & Sannareddy, S. B. (2019). AI-driven DevOps automation for CI/CD pipeline optimization. constraints, 5(6).

[5] State Of CI/CD Survey 2020, activestate, online. https://cdn.activestate.com/wp-content/uploads/2021/03/State-of-CI_CD-Survey-2020.pdf

[6] Senapathi, M., Buchan, J., & Osman, H. (2018, June). DevOps capabilities, practices, and challenges: Insights from a case study. In Proceedings of the 22nd International Conference on Evaluation and Assessment in Software Engineering 2018 (pp. 57-67).

[7] Woods, E., Erder, M., & Pureur, P. (2021). Continuous architecture in practice: Software architecture in the age of agility and DevOps. Addison-Wesley Professional.

[8] Pillai, S. (2016). Continuous Integration/Continuous Deployment (CI/CD) in DevOps: Principles, Practices, andChallenges. International Journal of Artificial Intelligence and Machine Learning, 6(3).

[9] Arugula, B. (2021). Implementing DevOps and CI/CD Pipelines in Large-Scale Enterprises. International Journal of Emerging Research in Engineering and Technology, 2(4), 39-47.

[10] Accelerate State of DevOps, 2019. Online. https://dora.dev/research/2019/dora-report/2019-dora-accelerate-state-of-devops-report.pdf

[11] Fleischmann, A. (2012). Distributed systems: software design and implementation. Springer Science & Business Media.

[12] Yau, S. S., & Caglayan, M. U. (1983). Distributed software system design representation using modified Petri nets. IEEE Transactions on Software Engineering, (6), 733-745.

[13] Jin, W., Liu, T., Qu, Y., Zheng, Q., Cui, D., & Chi, J. (2018). Dynamic structure measurement for distributed software. Software Quality Journal, 26(3), 1119-1145.

[14] Hölttä-Otto, K., Chiriac, N., Lysy, D., & Suh, E. S. (2013). Architectural decomposition: the role of granularity and decomposition viewpoint. In Advances in Product Family and Product Platform Design: Methods & Applications (pp. 221-243). New York, NY: Springer New York.

[15] Srikanth, K., & Puranam, P. (2011). Integrating distributed work: comparing task design, communication, and tacit coordination mechanisms. Strategic management journal, 32(8), 849-875.

[16] Test Automation in 2020: Findings from the DevTestOps Landscape Report, Mabl, 2020. Online. https://www.mabl.com/blog/test-automation-in-2020-findings-from-the-devtestops-landscape-report

[17] García-Valls, M., Domínguez-Poblete, J., Touahria, I. E., & Lu, C. (2018). Integration of data distribution service and distributed partitioned systems. Journal of Systems Architecture, 83, 23-31.

[18] Alda, S., Won, M., & Cremers, A. B. (2002, November). Managing dependencies in component-based distributed applications. In International Workshop on Scientific Engineering of Distributed Java Applications (pp. 143-154). Berlin, Heidelberg: Springer Berlin Heidelberg.

[19] Pasham, S. D. (2020). Fault-Tolerant Distributed Computing for Real-Time Applications in Critical Systems. The Computertech, 1-29.

[20] Burkert, M., & Krumm, H. (2016, August). Dependency Management in Component-Based Building Automation Systems. In 2016 IEEE 14th Intl Conf on Dependable, Autonomic and Secure Computing, 14th Intl Conf on Pervasive Intelligence and Computing, 2nd Intl Conf on Big Data Intelligence and Computing and Cyber Science and Technology Congress (DASC/PiCom/DataCom/CyberSciTech) (pp. 352-359). IEEE.

[21] Malik, M. F., & Khan, M. N. A. (2016). An analysis of performance testing in distributed software applications. International Journal of Modern Education and Computer Science, 8(7), 53.

[22] Humble, J., & Farley, D. (2010). Continuous delivery: reliable software releases through build, test, and deployment automation. Pearson Education.

[23] Chennareddy, R. K. (2020). Engineering Intelligence Systems Using Big Data and Cloud Architectures for Modern Data Intensive Applications. International Journal of AI, BigData, Computational and Management Studies, 1(2), 41-50.

Downloads

Published

2021-12-30

Issue

Section

Articles

How to Cite

1.
Thalary S, Katipelly A. CI/CD for Distributed Software Systems: Why Software Architecture Determines Pipeline Complexity. IJERET [Internet]. 2021 Dec. 30 [cited 2026 Apr. 27];2(4):100-11. Available from: https://ijeret.org/index.php/ijeret/article/view/513