Yazılım Dağıtım Sürecinin Otomatikleştirilmesine İlişkin Uygulamalı Bir Çalışma

Yazılım dağıtımı, geliştirilen bir uygulamanın çalıştırılacak dijital ortamlara yüklenmesidir ve yazılım geliştirme yaşam döngüsünde önemli bir aşamadır. Herhangi bir hataya veya kesintiye yol açmayacak şekilde titizlikle uygulanmalıdır. Küçük organizasyon ve sistemlerde bu sürecin işleyişinin manuel olarak işletilebilmesi mümkündür. Ancak orta ve büyük organizasyonlarda dağıtım yapılacak ortamların çeşitliliği, büyüklüğü, karmaşıklığı buna engeldir. Ayrıca iş sürekliliği, güvenlik ve uyum gibi gereksinimler dikkate alındığında manuel dağıtımdan kaynaklı birçok risk söz konusudur. Bu tür risk ve sorunların aşımında otomatik yazılım dağıtım araçlarına ihtiyaç vardır. Bu çalışmada yazılım yaşam ve dağıtım süreci, manuel dağıtımdan kaynaklı sorunlar, sorunların çözümünde kullanılan otomatik dağıtım araçları incelenmiştir. Yazılım dağıtım sürecinin otomatikleştirilmesi uygulamalı olarak çalışılmıştır. Bu çalışma daha önce yapılan çalışmalardan farklı olarak, konusu ve uygulamalı bir sunum olması sebebiyle ilgili kurum çalışanları, öğrenci ve araştırmacılar için teknik bir rehber niteliğindedir. Yazılım dağıtım süreci ve bu sürecin otomatikleştirilmesine yönelik uygulamalı çalışma literatüre kazandırılmıştır.

A Practical Study on Automatizing the Software Deployment Process

Software deployment is the installation of a developed application on digital media to be run and it is an important stage in the software development life cycle. It should be applied meticulously so as not to cause any errors or interruptions. In small organizations and systems, it is possible to operate this process manually. However, the diversity, size and complexity of the environments to be distributed in medium and large organizations prevents this. In addition, there are many risks arising from manual deployment when considering requirements such as business continuity, security and compliance. Automatic software deployment tools are needed to overcome such risks and problems. In this study, software lifetime and deployment process, problems arising from manual deployment and automatic deployment tools used to solve problems are examined. Automation of the software deployment process has been practiced. This study, unlike previous studies, is a technical guide for the relevant institution staff, students and researchers due to its subject and practical presentation. The software deployment process and practical study on automating this process have been brought to the literature.

___

  • Ali, M., Aftab, A. & Buttt, W.H. (2020). “Automatic Release Notes Generation”. 2020 IEEE 11th International Conference on Software Engineering and Service Science (ICSESS), pp. 76-81, doi: 10.1109/ICSESS49938.2020.9237671.
  • Ali, M. Tarar, M.I.N. & Butt, W.H. (2020). “Automatic Release Notes Generation: A Systematic Literature Review,” 2020 IEEE 23rd International Multitopic Conference (INMIC), pp. 1-5, doi: 10.1109/INMIC50486.2020.9318191.
  • Arcangeli, J-P., Boujbel, R., & Leriche, S. (2015). “Automatic Deployment of Distributed Software Systems: Definitions and State of the Art”. Journal of Systems and Software. Vol.103, pp. 198-218, https://doi.org/10.1016/j.jss.2015.01.040
  • AWS Code Deploy (2022). https://aws.amazon.com/tr/codedeploy/ (14.10.2022).
  • Bamboo (2022). Continuous Delivery, from Code to Deployment, https://www.atlassian.com/software/bamboo (14.10.2022).
  • Borandag, E. & Yücalar, F. (2020). “Artırılmış Gerçeklik ile Scrum Task Board Uygulaması”. Uluslararası Yönetim Bilişim Sistemleri ve Bilgisayar Bilimleri Dergisi, 4 (1) , 1-12. Doi:10.33461/uybisbbd.652366
  • Capistrano (2022). What is Capistrano?, https://capistranorb.com/documentation/overview/what-is-capistrano/ (14.10.2022).
  • CircleCI (2022). Product Overview, https://circleci.com/product/, (14.10.2022).
  • Chen, M., Zhang, S., Deng, H., Chen, B., Xing, C., & Xu, B. (2020). “Automatic deployment and control of network services in NFV environments”. Journal of Network and Computer Applications. https://doi.org/10.1016/j.jnca.2020.102677
  • CloudBees (2022). https://www.cloudbees.com/, (14.10.2022).
  • Codar (2022). Deploy and redeploy packages, https://docs.microfocus.com/Codar/1.80/Content/Concepts/devopsUseCase-DeployRedeploy.htm (14.10.2022).
  • DeployBot (2022). DeployBot Code Deployment Guides, https://deploybot.com/ (14.10.2022).
  • DergiPark (2022). DergiPark Akademik, https://dergipark.org.tr/tr/ (20.03.2023).
  • DevOps (2022). Azure DevOps Services , https://learn.microsoft.com/tr-tr/azure/devops/pipelines/get-started/what-is-azure-pipelines?view=azure-devops, (14.10.2022).
  • Digital (2022). Deploy Description, https://digital.ai/products/deploy/ (18.10.2022).
  • Eloranta, M. (2018). “Continuous development and release automation of web applications”, Master Thesis, School of Electrical Engineering, Aalto University.
  • Farley, D., & Humble, J. (2010). “Continuous Delivery: Reliable Software Releases Through Build, Test, and Deployment Automation”, Addison-Wesley Professional, ISBN: 9780321670250
  • GoCD (2022). GoCD Features, https://www.gocd.org/why-gocd/ (16.11.2022).
  • Gradle (2022). Gradle Build Tool, https://gradle.org/ (16.11.2022).
  • Highsmith, J. & Cockburn, A. (2001). "Agile Software Development: The Business of Innovation", in Computer, vol. 34, no. 9, pp. 120-127, IEEE, doi: 10.1109/2.947100.
  • Hofmann, P., Samp, C., & Urbach, N. (2019). Robotic process automation. Electronic Markets. https://doi.org/10.1007/s12525-019-00365-8.
  • IBM (2022). What is IBM® UrbanCode® Deploy?, https://www.ibm.com/cloud/urbancode/deploy (25.08.2022).
  • IBM_Urbancode (2022). Systems and topology overview, https://www.ibm.com/docs/en/urbancode-deploy/7.0.5?topic=deploy-systems-topology-overview#ov_systems__core (12.08.2022).
  • Jenkins (2022), What is Jenkins?, https://www.jenkins.io/doc/ (16.09.2022).
  • Lascu, T., Mauro, J., & Zavattaro, G. (2015). “Automatic Deployment of Component-Based Applications”. Science of Computer Programming. https://doi.org/10.1016/j.scico.2015.07.006
  • Mohd Nordin, A.A., Latih, R. and Ali, N. M., “Software Development Productivity Model: Validation through Expert Review”. 2021 International Conference on Electrical Engineering and Informatics (ICEEI), Kuala Terengganu, Malaysia, 2021, pp. 1-6, doi: 10.1109/ICEEI52609.2021.9611151
  • Morris, K. (2016). “Infrastructure as Code: Managing Servers in the Cloud”, O'Reilly Media.
  • Octopus (2022), Deployment automation, https://octopus.com/, (16.09.2022).
  • Pai, W. (2002). “A Quality-Enhancing Software Function Deployment Model”. Information Systems Management, 19:3, 20-24, doi: 10.1201/1078/43201.19.3.20020601/37166.3
  • PiriKesif (2022). Piri Keşif Aracı, https://kesifaraci.com/, (20.03.2023)
  • Poppendieck, M., & Poppendieck, T. (2007). “Implementing Lean Software Development: From Concept to Cash”, Addison-Wesley Professional, ISBN: 0321437381.
  • Ruiz-Rube, I., ManuelDodero, J., & Colomo-Palacios, R. (2015). A framework for software process deployment and evaluation. Information and Software Technology. https://doi.org/10.1016/j.infsof.2014.12.001
  • Şahinaslan, E. (1998). Yazlımda Kalite Modellerinin Değerlendirilmesi, Bilgisayar Mühendisliği YL Tezi, Enstitüsü Mühendislik ve Fen Bilimleri Enstitüsü, Gebze Teknik Üniversitesi, İzmit, Türkiye
  • TeamCity, (2022). Powerful continuous integration for DevOps-centric teams, https://www.jetbrains.com/teamcity/ (16.10.2022).
  • Travis (2022). About Us, https://www.travis-ci.com/about-us/ (16.10.2022).
  • UrbanCode(2022). Accelerate Software Delivery with IBM UrbanCode, https://www.royalcyber.com/technologies/urbancode/ (20.10.2022).
  • Zhai, H., & Wang, J. (2021). “Automatic deployment system of computer program application based on cloud computing”. International Journal of System Assurance Engineering and Management. https://doi.org/10.1007/s13198-021-01068-0
  • Zhang, C., Sun, E., Cheng, X., Zang, D., & Chen, Z. (2021). A Scheme and Implementation of Automatic Deployment of Multilingual Industrial Mechanism Model Based on OpenStack. 2021 IEEE International Conference on Advances in Electrical Engineering and Computer Applications (AEECA). https://doi.org/10.1109/aeeca52519.2021.9574124