{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,6,12]],"date-time":"2026-06-12T15:47:26Z","timestamp":1781279246676,"version":"3.54.1"},"reference-count":74,"publisher":"MDPI AG","issue":"12","license":[{"start":{"date-parts":[[2023,12,5]],"date-time":"2023-12-05T00:00:00Z","timestamp":1701734400000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Computers"],"abstract":"<jats:p>DevOps methodology and tools, which provide standardized ways for continuous integration (CI) and continuous deployment (CD), are invaluable for efficient software development. Current DevOps solutions, however, lack a useful functionality: they do not support simultaneous project developments and deployment on the same operating infrastructure (e.g., a cluster of Docker containers). In this paper, we propose a novel approach to address this shortcoming by defining a multi-project, multi-environment (MPME) approach. With this approach, a large company can organize many microservice-based projects operating simultaneously on a common code base, using self-hosted Kubernetes clusters, which helps developers and businesses to better focus on the product they are developing, and to reduce efforts on the management of their DevOps infrastructure.<\/jats:p>","DOI":"10.3390\/computers12120254","type":"journal-article","created":{"date-parts":[[2023,12,5]],"date-time":"2023-12-05T02:55:32Z","timestamp":1701744932000},"page":"254","update-policy":"https:\/\/doi.org\/10.3390\/mdpi_crossmark_policy","source":"Crossref","is-referenced-by-count":8,"title":["Multi-Project Multi-Environment Approach\u2014An Enhancement to Existing DevOps and Continuous Integration and Continuous Deployment Tools"],"prefix":"10.3390","volume":"12","author":[{"ORCID":"https:\/\/orcid.org\/0000-0003-0471-7183","authenticated-orcid":false,"given":"Baasanjargal","family":"Erdenebat","sequence":"first","affiliation":[{"name":"Department of Programming Languages and Compilers, ELTE E\u00f6tv\u00f6s Lor\u00e1nd University, P\u00e1zm\u00e1ny P\u00e9ter stny. 1\/C, 1117 Budapest, Hungary"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Bayarjargal","family":"Bud","sequence":"additional","affiliation":[{"name":"Department of Information and Computer Sciences, National University of Mongolia, Ulaanbaatar 14200, Mongolia"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Temuulen","family":"Batsuren","sequence":"additional","affiliation":[{"name":"Khan Bank, Ulaanbaatar 17010, Mongolia"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-4484-9172","authenticated-orcid":false,"given":"Tam\u00e1s","family":"Kozsik","sequence":"additional","affiliation":[{"name":"Department of Programming Languages and Compilers, ELTE E\u00f6tv\u00f6s Lor\u00e1nd University, P\u00e1zm\u00e1ny P\u00e9ter stny. 1\/C, 1117 Budapest, Hungary"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"1968","published-online":{"date-parts":[[2023,12,5]]},"reference":[{"key":"ref_1","unstructured":"Bass, L., Weber, I., and Zhu, L. (2015). DevOps: A Software Architect\u2019s Perspective, Addison-Wesley Professional. [1st ed.]."},{"key":"ref_2","doi-asserted-by":"crossref","first-page":"32","DOI":"10.1109\/MS.2016.81","article-title":"DevOps and Its Practices","volume":"33","author":"Zhu","year":"2016","journal-title":"IEEE Softw."},{"key":"ref_3","unstructured":"Humble, J., and Farley, D. (2010). Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation, Addison-Wesley Professiona. [1st ed.]."},{"key":"ref_4","unstructured":"Microsoft Azure (2023, May 03). DevOps Definition. Available online: https:\/\/azure.microsoft.com\/en-us\/resources\/cloud-computing-dictionary\/what-is-devops\/."},{"key":"ref_5","unstructured":"Wettinger, J., Andrikopoulos, V., and Leymann, F. (2015). On the Move to Meaningful Internet Systems: OTM 2015 Conferences, Proceedings of the OTM 2015, Rhodes, Greece, 26\u201330 October 2015, Springer. Lecture Notes in Computer Science."},{"key":"ref_6","unstructured":"Yu, Y., Silveira, H., and Sundaram, M. (2016, January 3\u20135). A microservice based reference architecture model in the context of enterprise architecture. Proceedings of the 2016 IEEE Advanced Information Management, Communicates, Electronic and Automation Control Conference (IMCEC), Xi\u2019an, China."},{"key":"ref_7","doi-asserted-by":"crossref","unstructured":"Villamizar, M., Garc\u00e9s, O., Castro, H., Verano, M., Salamanca, L., Casallas, R., and Gil, S. (2015, January 21\u201325). Evaluating the monolithic and the microservice architecture pattern to deploy web applications in the cloud. Proceedings of the 2015 10th Computing Colombian Conference (10CCC), Bogota, Colombia.","DOI":"10.1109\/ColumbianCC.2015.7333476"},{"key":"ref_8","doi-asserted-by":"crossref","unstructured":"Garrig\u00f3s, I., and Wimmer, M. (2018). Current Trends in Web Engineering. ICWE 2017, Springer. Lecture Notes in Computer Science.","DOI":"10.1007\/978-3-319-74433-9"},{"key":"ref_9","doi-asserted-by":"crossref","first-page":"81","DOI":"10.1109\/MCC.2014.51","article-title":"Containers and Cloud: From LXC to Docker to Kubernetes","volume":"1","author":"Bernstein","year":"2014","journal-title":"IEEE Cloud Comput."},{"key":"ref_10","doi-asserted-by":"crossref","first-page":"97","DOI":"10.1016\/j.jnca.2018.07.003","article-title":"Application deployment using Microservice and Docker containers: Framework and optimization","volume":"119","author":"Wan","year":"2018","journal-title":"J. Netw. Comput. Appl."},{"key":"ref_11","unstructured":"RedHat (2023, May 03). Understanding DevOps Automation. Available online: https:\/\/www.redhat.com\/en\/topics\/automation\/what-is-devops-automation."},{"key":"ref_12","doi-asserted-by":"crossref","unstructured":"Armenise, V. (2015, January 19). Continuous Delivery with Jenkins: Jenkins Solutions to Implement Continuous Delivery. Proceedings of the 2015 IEEE\/ACM 3rd International Workshop on Release Engineering, Florence, Italy.","DOI":"10.1109\/RELENG.2015.19"},{"key":"ref_13","unstructured":"Bass, L., Clements, P., and Kazman, R. (2012). Software Architecture in Practice, Addison-Wesley. [3rd ed.]."},{"key":"ref_14","unstructured":"Saito, H., Lee, H.-C., and Wu, C.-Y. (2017). DevOps with Kubernetes, Packt Publishing."},{"key":"ref_15","unstructured":"Jenkins, D., Arnaud, J., Thompson, S., Yau, M., and Wright, J. (April, January 31). Version Control and Patch Management of Protection and Automation Systems. Proceedings of the 12th IET International Conference on Developments in Power System Protection, Copenhagen, Denmark."},{"key":"ref_16","doi-asserted-by":"crossref","first-page":"100","DOI":"10.1109\/MS.2012.61","article-title":"Git","volume":"29","author":"Spinellis","year":"2012","journal-title":"IEEE Softw."},{"key":"ref_17","doi-asserted-by":"crossref","unstructured":"Chandrasekara, C., and Herath, P. (2020). Hands-On Azure Repos, Apress.","DOI":"10.1007\/978-1-4842-5425-7"},{"key":"ref_18","doi-asserted-by":"crossref","unstructured":"Chen, L. (May, January 30). Microservices: Architecting for Continuous Delivery and DevOps. Proceedings of the 2018 IEEE International Conference on Software Architecture (ICSA), Seattle, WA, USA.","DOI":"10.1109\/ICSA.2018.00013"},{"key":"ref_19","doi-asserted-by":"crossref","first-page":"3909","DOI":"10.1109\/ACCESS.2017.2685629","article-title":"Continuous Integration, Delivery and Deployment: A Systematic Review on Approaches, Tools, Challenges and Practices","volume":"5","author":"Shahin","year":"2017","journal-title":"IEEE Access"},{"key":"ref_20","doi-asserted-by":"crossref","first-page":"102-c3","DOI":"10.1109\/MS.2015.62","article-title":"Docker [Software engineering]","volume":"32","author":"Anderson","year":"2015","journal-title":"IEEE Softw."},{"key":"ref_21","first-page":"228","article-title":"An Introduction to Docker and Analysis of its Performance","volume":"17","author":"Rad","year":"2017","journal-title":"IJCSNS Int. J. Comput. Sci. Netw. Secur."},{"key":"ref_22","unstructured":"Sayfan, G. (2018). Mastering Kubernetes, Packt Publishing. [2nd ed.]."},{"key":"ref_23","unstructured":"The Kubernetes Authors (2023, May 05). Kubernetes Offcial Website. Available online: https:\/\/Kubernetes.io\/."},{"key":"ref_24","unstructured":"Burns, B., and Vohra, A. (2016). Kubernetes: Up and Running: Dive into the Future of Infrastructure, O\u2019Reilly Media, Incorporated."},{"key":"ref_25","doi-asserted-by":"crossref","unstructured":"Buchanan, S., Rangama, J., and Bellavance, N. (2020). Introducing Azure Kubernetes Service, Apress.","DOI":"10.1007\/978-1-4842-5519-3"},{"key":"ref_26","unstructured":"Helm (2023, May 03). Charting Our Future\u2014Helm3 Preview. Available online: https:\/\/Helm.sh\/blog\/Helm-3-preview-pt1\/."},{"key":"ref_27","unstructured":"Duffy, M. (2015). DevOps Automation Cookbook, Packt Publishing."},{"key":"ref_28","unstructured":"Been, H., Keiholz, E., and Staal, E. (2022). Azure Infrastructure as Code: With ARM Templates and Bicep, Manning."},{"key":"ref_29","unstructured":"Brikman, Y. (2022). Terraform: Up and Running, O\u2019Reilly Media."},{"key":"ref_30","unstructured":"Jourdan, S., and Pomes, P. (2017). Infrastructure as Code (IAC) Cookbook, Packt Publishing."},{"key":"ref_31","unstructured":"Omofoyewa, Y., Grebe, A., and Leusmann, P. (2023, October 20). IaC reusability for Hybrid Cloud Environment. Available online: https:\/\/www.researchgate.net\/publication\/357281177_IaC_reusability_for_Hybrid_Cloud_Environment."},{"key":"ref_32","unstructured":"Sayfan, G., and Ibryam, B. (2023). Mastering Kubernetes: Dive into Kubernetes and Learn How to Create and Operate World-Class Cloud-Native Systems, Packt Publishing."},{"key":"ref_33","unstructured":"(2023, May 05). Helm Chart Template Guideline. Available online: https:\/\/helm.sh\/docs\/chart_template_guide\/."},{"key":"ref_34","unstructured":"Butcher, M., Farina, M., and Dolitsky, J. (2021). Learning Helm: Managing Apps on Kubernetes, O\u2019Reilly Media, Incorporated."},{"key":"ref_35","unstructured":"(2023, October 20). Authors of Tarka Labs: Handling Multiple Environments with Helm. Available online: https:\/\/blog.tarkalabs.com\/handling-multiple-environments-with-helm-kubernetes-f214192f8f7b."},{"key":"ref_36","unstructured":"(2023, October 20). Performing a Rolling Update. Available online: https:\/\/kubernetes.io\/docs\/tutorials\/kubernetes-basics\/update\/update-intro\/."},{"key":"ref_37","unstructured":"Sayfan, G. (2019). Hands-On Microservices with Kubernetes: Build, Deploy, and Manage Scalable Microservices on Kubernetes, Packt Publishing."},{"key":"ref_38","unstructured":"Qovery (2023, May 03). Basic Concepts and Preview Environments. Available online: https:\/\/www.qovery.com\/docs\/getting-started."},{"key":"ref_39","unstructured":"Octopus (2023, May 03). Overview. Available online: https:\/\/octopus.com\/features."},{"key":"ref_40","doi-asserted-by":"crossref","unstructured":"Machiraju, S., and Gaurav, S. (2018). DevOps for Azure Applications, Apress.","DOI":"10.1007\/978-1-4842-3643-7"},{"key":"ref_41","unstructured":"Humanitec (2023, May 03). Introduction. Available online: https:\/\/developer.humanitec.com\/getting-started\/pe\/introduction\/."},{"key":"ref_42","unstructured":"BunnyShell (2023, May 03). Documents. Available online: https:\/\/documentation.bunnyshell.com\/docs."},{"key":"ref_43","unstructured":"GitLab CI (2023, October 20). Documents. Available online: https:\/\/docs.gitlab.com\/ee\/ci\/environments\/#create-a-dynamic-environment."},{"key":"ref_44","doi-asserted-by":"crossref","unstructured":"Sureshchandra, K., and Shrinivasavadhani, J. (2008, January 4\u20138). Moving from Waterfall to Agile. Proceedings of the Agile 2008 Conference, Toronto, ON, Canada.","DOI":"10.1109\/Agile.2008.49"},{"key":"ref_45","unstructured":"Kim, G., Humble, J., Debois, P., Willis, J., and Forsgren, N. (2021). The DevOps Handbook: How to Create World-Class Agility, Reliability, & Security in Technology Organizations, IT Revolution Press. Available online: https:\/\/books.google.hu\/books?id=8kRDEAAAQBAJ."},{"key":"ref_46","doi-asserted-by":"crossref","unstructured":"Chacon, S., and Straub, B. (2014). Pro Git, Apress.","DOI":"10.1007\/978-1-4842-0076-6"},{"key":"ref_47","doi-asserted-by":"crossref","first-page":"42","DOI":"10.1109\/MS.2016.64","article-title":"Microservices Architecture Enables DevOps: Migration to a Cloud-Native Architecture","volume":"33","author":"Balalaie","year":"2016","journal-title":"IEEE Softw."},{"key":"ref_48","unstructured":"The Kubernetes Authors (2023, May 05). Secrets. Available online: https:\/\/Kubernetes.io\/docs\/concepts\/configuration\/secret\/."},{"key":"ref_49","unstructured":"Jayakantha, I. (2023, May 05). Microservices\u2014Centralized Configuration with Spring Cloud. Available online: https:\/\/medium.com\/@ijayakantha\/f2a1f7b78cc2."},{"key":"ref_50","doi-asserted-by":"crossref","unstructured":"Sharma, R., and Singh, A. (2020). Getting Started with Istio Service Mesh: Manage Microservices in Kubernetes., Apress. [1st ed.].","DOI":"10.1007\/978-1-4842-5458-5"},{"key":"ref_51","unstructured":"The Kubernetes Authors (2023, May 05). Service Accounts. Available online: https:\/\/kubernetes.io\/docs\/concepts\/security\/service-accounts\/."},{"key":"ref_52","unstructured":"The Kubernetes Authors (2023, May 08). RBAC Good Practices. Available online: https:\/\/kubernetes.io\/docs\/concepts\/security\/rbac-good-practices\/."},{"key":"ref_53","unstructured":"The Kubernetes Authors (2023, May 05). Using RBAC Authorization. Available online: https:\/\/Kubernetes.io\/docs\/reference\/access-authn-authz\/rbac\/."},{"key":"ref_54","unstructured":"The Kubernetes Authors (2023, May 05). Services. Available online: https:\/\/kubernetes.io\/docs\/concepts\/services-networking\/service\/."},{"key":"ref_55","doi-asserted-by":"crossref","unstructured":"Brewer, E. (2015, January 27\u201329). Kubernetes and the Path to Cloud Native. Proceedings of the SoCC \u201915: Proceedings of the Sixth ACM Symposium on Cloud Computing, Kohala Coast, HI, USA.","DOI":"10.1145\/2806777.2809955"},{"key":"ref_56","unstructured":"Google Kubernetes Engine (GKE) (2023, May 05). Types of Kubernetes Services. Available online: https:\/\/cloud.google.com\/kubernetes-engine\/docs\/concepts\/service#types-of-services."},{"key":"ref_57","unstructured":"The Kubernetes Authors (2023, May 05). Services-ExternalName. Available online: https:\/\/kubernetes.io\/docs\/concepts\/services-networking\/service\/#externalname."},{"key":"ref_58","unstructured":"The Kubernetes Authors (2023, May 05). Services-ClusterIP. Available online: https:\/\/kubernetes.io\/docs\/concepts\/services-networking\/service\/#type-clusterip."},{"key":"ref_59","doi-asserted-by":"crossref","first-page":"218","DOI":"10.1016\/j.future.2022.11.018","article-title":"Characterizing and optimizing Kernel resource isolation for containers","volume":"141","author":"Wang","year":"2023","journal-title":"Future Gener. Comput. Syst."},{"key":"ref_60","doi-asserted-by":"crossref","unstructured":"Mallett, A. (2021). Red Hat Certified Engineer (RHCE) Study Guide, Apress.","DOI":"10.1007\/978-1-4842-6861-2"},{"key":"ref_61","unstructured":"The Helm Authors (2023, May 05). Using Helm. Available online: https:\/\/helm.sh\/docs\/intro\/using_helm\/."},{"key":"ref_62","unstructured":"Mike Treadway\u2014FAUN Publication (2023, May 05). Helm Charts for More Complex Projects and How to Secure Them. Available online: https:\/\/faun.pub\/a1dfde804226."},{"key":"ref_63","unstructured":"The Helm Authors (2023, May 05). Values Files. Available online: https:\/\/helm.sh\/docs\/chart_template_guide\/values_files\/."},{"key":"ref_64","doi-asserted-by":"crossref","unstructured":"Nocentino, A.E., and Weissman, B. (2021). SQL Server on Kubernetes, Apress.","DOI":"10.1007\/978-1-4842-7192-6"},{"key":"ref_65","unstructured":"The Kubernetes Authors (2023, May 05). Persistent Volumes. Available online: https:\/\/kubernetes.io\/docs\/concepts\/storage\/."},{"key":"ref_66","doi-asserted-by":"crossref","unstructured":"Martin, P. (2021). Kubernetes: Preparing for the CKA and CKAD Certifications, Apress. [1st ed.].","DOI":"10.1007\/978-1-4842-6494-2"},{"key":"ref_67","doi-asserted-by":"crossref","first-page":"1061","DOI":"10.1007\/s10664-018-9651-4","article-title":"An Empirical Study of Architecting for Continuous Delivery and Deployment","volume":"24","author":"Shahin","year":"2019","journal-title":"Empir. Softw. Eng."},{"key":"ref_68","unstructured":"Uphill, T. (2017). DevOps: Puppet, Docker and Kubernetes, Packt Publishing."},{"key":"ref_69","unstructured":"Arundel, J., and Domingus, J. (2019). Cloud Native DevOps with Kubernetes: Building, Deploying, and Scaling Modern Applications in the Cloud, O\u2019Reilly Media."},{"key":"ref_70","doi-asserted-by":"crossref","unstructured":"Arachchi, S., and Perera, I. (June, January 30). Continuous Integration and Continuous Delivery Pipeline Automation for Agile Software Project Management. Proceedings of the 2018 Moratuwa Engineering Research Conference (MERCon), Moratuwa, Sri Lanka.","DOI":"10.1109\/MERCon.2018.8421965"},{"key":"ref_71","unstructured":"Rajput, D., and Rajesh, R.V. (2018). Building Microservices with Spring: Master Design Patterns of the Spring Framework to Build Smart, Efficient Microservices, Packt Publishing."},{"key":"ref_72","doi-asserted-by":"crossref","unstructured":"Nguyen, T.-T., Yeom, Y.-J., Kim, T., Park, D.-H., and Kim, S. (2020). Horizontal Pod Autoscaling in Kubernetes for Elastic Container Orchestration. Sensors, 20.","DOI":"10.3390\/s20164621"},{"key":"ref_73","unstructured":"(2023, October 20). CoreDNS: DNS and Service Discovery. Available online: https:\/\/coredns.io\/."},{"key":"ref_74","doi-asserted-by":"crossref","first-page":"69","DOI":"10.36244\/ICJ.2023.5.11","article-title":"Challenges in service discovery for microservices deployed in a Kubernetes cluster\u2014A case study","volume":"15","author":"Erdenebat","year":"2023","journal-title":"Infocommun. J."}],"container-title":["Computers"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/www.mdpi.com\/2073-431X\/12\/12\/254\/pdf","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,10,10]],"date-time":"2025-10-10T21:38:03Z","timestamp":1760132283000},"score":1,"resource":{"primary":{"URL":"https:\/\/www.mdpi.com\/2073-431X\/12\/12\/254"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2023,12,5]]},"references-count":74,"journal-issue":{"issue":"12","published-online":{"date-parts":[[2023,12]]}},"alternative-id":["computers12120254"],"URL":"https:\/\/doi.org\/10.3390\/computers12120254","relation":{},"ISSN":["2073-431X"],"issn-type":[{"value":"2073-431X","type":"electronic"}],"subject":[],"published":{"date-parts":[[2023,12,5]]}}}