Abstract
Continuous Delivery refers to a software development practice where members of a team frequently integrate their work, so that the process of delivery can be easily conducted. However, this continuous integration and delivery requires a reliable collaboration between development and IT operation teams. The DevOps practices support this collaboration since they enable that the operation staff making use of the same infrastructure as developers for their systems work. Our study aims at presenting a practical DevOps implementation and analyzing how the process of software delivery and infrastructure changes was automated. Our approach follows the principles of infrastructure as code, where a configuration platform – PowerShell DSC – was used to automatically define reliable environments for continuous software delivery. In this context, we defined the concept of “stage for dev”, also using the Docker technology, which involves all the elements that enable members of a team to have the same production environment, locally configured in their personal machines and thus empowering the continuous integration and delivery of system releases.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
References
Humble, J., Farley, D.: Continuous delivery: reliable software releases through build, test, and deployment automation. Addison-Wesley Professional, Boston (2010)
Claps, G.G., Svensson, R.B., Aurum, A.: On the journey to continuous deployment: technical and social challenges along the way. Inf. Softw. Technol. 57(1), 21–31 (2015)
Loukides, M.: What is DevOps? Infrastructure as Code. O’Reilly Media, Sebastopol (2012)
Lwakatare, L.E., Kuvaja, P., Oivo, M.: Dimensions of DevOps. In: Lassenius, C., Dingsøyr, T., Paasivaara, M. (eds.) XP 2015. LNBIP, vol. 212, pp. 212–217. Springer, Cham (2015). https://doi.org/10.1007/978-3-319-18612-2_19
Hosono, S.: A DevOps framework to shorten delivery time for cloud applications. Int. J. Comput. Sci. Eng. 7(4), 329–344 (2012)
Erich, F., Amrit, C., Daneva, M.: Report: Devops literature review. University of Twente, Technical report (2014)
Dyck, A., Penners, R., Lichter, H.: Towards definitions for release engineering and DevOps. In: Proceedings of the IEEE/ACM 3rd International Workshop on Release Engineering (2015)
Siebra, C. et al.: From theory to practice: the challenges of a DevOps infrastructure as code implementation. In: Proceedings of the 13th International Conference on Software Technologies (ICSOFT) (2018)
Punjabi, R., Bajaj, R.: User stories to user reality: a DevOps approach for the cloud. In: IEEE International Conference on Recent Trends in Electronics, Information & Communication Technology (RTEICT), Bangalore, pp. 658–662 (2016)
Miell, I., Sayers, A.H.: Docker in Practice. Manning Publications Co., New York (2016)
Bang, S.K., Chung, S., Choh, Y., Dupuis, M.: A grounded theory analysis of modern Web applications: knowledge, skills, and abilities for DevOps. In: Proceedings of the 2nd Annual Conference on Research in Information Technology (RIIT 2013), pp. 61–62. ACM, New York (2013)
DeGrandis, D.: Devops: so you say you want a revolution? Cutter Bus. Technol. J. 24(8), 34–39 (2011)
Wettinger, J., Breitenbücher, U., Leymann, F.: Devopslang – bridging the gap between development and operations. In: Villari, M., Zimmermann, W., Lau, K.-K. (eds.) ESOCC 2014. LNCS, vol. 8745, pp. 108–122. Springer, Heidelberg (2014). https://doi.org/10.1007/978-3-662-44879-3_8
Tessem, B., Iden, J.: Cooperation between developers and operations in software engineering projects. In: Proceedings of the 2008 International Workshop on Cooperative and Human Aspects of Software Engineering, pp. 105–108 (2008)
Walls, M.: Building a DevOps Culture. O’Reilly Media, Sebastopol (2013)
Liu, Y., Li, C., Liu, W.: Integrated solution for timely delivery of customer change requests: a case study of using devops approach. Int. J. U- E-Serv. Sci. Technol. 7, 41–50 (2014)
Shang, W.: Bridging the divide between software developers and operators using logs. In: Proceedings of the 34th International Conference on Software Engineering, pp. 1583–1586. IEEE Press, New York (2012)
Bruneo, D., et al.: Cloudwave: where adaptive cloud management meets DevOps. In: Proceedings of the IEEE Symposium on Computers and Communications, pp. 1–6. IEEE Press, New York (2014)
Ebert, C., Gallardo, G., Hernantes, J., Serrano, N.: DevOps. IEEE Softw. 33(3), 94–100 (2016)
Duvall, M.P.: Continuous Delivery Patterns and AntiPatterns in the Software LifeCycle (2011)
Younge, A.J., et al.: Analysis of virtualization technologies for high performance computing environments. In: IEEE International Conference on Cloud Computing, pp. 9–16 (2011)
O’Connor, R., Elger, P., Clarke, P.: Continuous software engineering – a microservices architecture perspective. J. Softw. Evol. Process 29(11), e1866 (2017)
Scheepers, M.J.: Virtualization and containerization of application infrastructure: a comparison. In: Proceedings of the 21st Twente Student Conference on IT, pp. 1–7 (2014)
Peacock, M.: Creating Development Environments with Vagrant. Packt Publishing Ltd., Birmingham (2015)
Hüttermann, M.: Infrastructure as Code. In: DevOps for Developers. Apress, Berkeley (2012)
Hummer, W., Rosenberg, F., Oliveira, F., Eilam, T.: Testing idempotence for infrastructure as code. In: Eyers, D., Schwan, K. (eds.) Middleware 2013. LNCS, vol. 8275, pp. 368–388. Springer, Heidelberg (2013). https://doi.org/10.1007/978-3-642-45065-5_19
Artac, M., Borovssak, T., Di Nitto, E., Guerriero, M., Tamburri, D.: Devops: introducing infrastructure-as-code. In: Proceedings of the 39th IEEE International Conference on Software Engineering Companion, pp. 497–498 (2017)
Zhu, L., Xu, D., Xu, X., Tran, A.B., Weber, I., Bass, L.: Challenges in practicing high frequency releases in cloud environments. In: Proceedings of the 2nd International Workshop on Release Engineering, Mountain View, USA, pp. 21–24 (2014)
Scheuner, J., Leitner, P., Cito, J., Gall, H.: Cloud work bench–infrastructure-as-code based cloud benchmarking. In: Proceedings of the IEEE 6th International Conference on Cloud Computing Technology and Science (CloudCom), pp. 246–253 (2014)
Spinellis, D.: Don’t install software by hand. IEEE Softw. 29(4), 86–87 (2012)
Tomasevicius Filho, E.: Marco Civil da Internet: uma lei sem conteúdo normativo. Estudos Avançados 30(86), 269–285 (2016). (in Portuguese)
Juneja, V.: The Bakery Model for Building Container Images and Microservices. TheNewStack (2016). https://thenewstack.io/bakery-foundation-container-images-microservices. Accessed 20 Oct 2018
Eagles, H.: DevOps Technology in a Windows World (2016). https://blogs.technet.microsoft.com/uktechnet/2016/05/24/devops-technology-in-a-windows-world/. Accessed 28 Sept 2018
Dille, N.: Build, Ship, Run Containers on Windows Server 2016 TP5 with Docker. Automation, DevOps and Containerization (2016). https://dille.name/blog/2016/06/08/build-ship-run-containers-with-windows-server-2016-tp5/. Accessed 22 Oct 2018
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2019 Springer Nature Switzerland AG
About this paper
Cite this paper
Siebra, C. et al. (2019). Empowering Continuous Delivery in Software Development: The DevOps Strategy. In: van Sinderen, M., Maciaszek, L. (eds) Software Technologies. ICSOFT 2018. Communications in Computer and Information Science, vol 1077. Springer, Cham. https://doi.org/10.1007/978-3-030-29157-0_11
Download citation
DOI: https://doi.org/10.1007/978-3-030-29157-0_11
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-29156-3
Online ISBN: 978-3-030-29157-0
eBook Packages: Computer ScienceComputer Science (R0)