Advertisement

Empowering Continuous Delivery in Software Development: The DevOps Strategy

  • Clauirton SiebraEmail author
  • Rosberg Lacerda
  • Italo Cerqueira
  • Jonysberg P. Quintino
  • Fabiana Florentin
  • Fabio B. Q. da Silva
  • Andre L. M. Santos
Conference paper
Part of the Communications in Computer and Information Science book series (CCIS, volume 1077)

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.

Keywords

Continuous delivery DevOps Software deployment 

References

  1. 1.
    Humble, J., Farley, D.: Continuous delivery: reliable software releases through build, test, and deployment automation. Addison-Wesley Professional, Boston (2010)Google Scholar
  2. 2.
    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)CrossRefGoogle Scholar
  3. 3.
    Loukides, M.: What is DevOps? Infrastructure as Code. O’Reilly Media, Sebastopol (2012)Google Scholar
  4. 4.
    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_19CrossRefGoogle Scholar
  5. 5.
    Hosono, S.: A DevOps framework to shorten delivery time for cloud applications. Int. J. Comput. Sci. Eng. 7(4), 329–344 (2012)Google Scholar
  6. 6.
    Erich, F., Amrit, C., Daneva, M.: Report: Devops literature review. University of Twente, Technical report (2014)Google Scholar
  7. 7.
    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)Google Scholar
  8. 8.
    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)Google Scholar
  9. 9.
    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)Google Scholar
  10. 10.
    Miell, I., Sayers, A.H.: Docker in Practice. Manning Publications Co., New York (2016)Google Scholar
  11. 11.
    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)Google Scholar
  12. 12.
    DeGrandis, D.: Devops: so you say you want a revolution? Cutter Bus. Technol. J. 24(8), 34–39 (2011)Google Scholar
  13. 13.
    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_8CrossRefGoogle Scholar
  14. 14.
    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)Google Scholar
  15. 15.
    Walls, M.: Building a DevOps Culture. O’Reilly Media, Sebastopol (2013)Google Scholar
  16. 16.
    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)CrossRefGoogle Scholar
  17. 17.
    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)Google Scholar
  18. 18.
    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)Google Scholar
  19. 19.
    Ebert, C., Gallardo, G., Hernantes, J., Serrano, N.: DevOps. IEEE Softw. 33(3), 94–100 (2016)CrossRefGoogle Scholar
  20. 20.
    Duvall, M.P.: Continuous Delivery Patterns and AntiPatterns in the Software LifeCycle (2011)Google Scholar
  21. 21.
    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)Google Scholar
  22. 22.
    O’Connor, R., Elger, P., Clarke, P.: Continuous software engineering – a microservices architecture perspective. J. Softw. Evol. Process 29(11), e1866 (2017)CrossRefGoogle Scholar
  23. 23.
    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)Google Scholar
  24. 24.
    Peacock, M.: Creating Development Environments with Vagrant. Packt Publishing Ltd., Birmingham (2015)Google Scholar
  25. 25.
    Hüttermann, M.: Infrastructure as Code. In: DevOps for Developers. Apress, Berkeley (2012)CrossRefGoogle Scholar
  26. 26.
    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_19CrossRefGoogle Scholar
  27. 27.
    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)Google Scholar
  28. 28.
    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)Google Scholar
  29. 29.
    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)Google Scholar
  30. 30.
    Spinellis, D.: Don’t install software by hand. IEEE Softw. 29(4), 86–87 (2012)CrossRefGoogle Scholar
  31. 31.
    Tomasevicius Filho, E.: Marco Civil da Internet: uma lei sem conteúdo normativo. Estudos Avançados 30(86), 269–285 (2016). (in Portuguese)CrossRefGoogle Scholar
  32. 32.
    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
  33. 33.
    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
  34. 34.
    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

Copyright information

© Springer Nature Switzerland AG 2019

Authors and Affiliations

  • Clauirton Siebra
    • 1
    • 2
    Email author
  • Rosberg Lacerda
    • 2
  • Italo Cerqueira
    • 2
  • Jonysberg P. Quintino
    • 2
  • Fabiana Florentin
    • 3
  • Fabio B. Q. da Silva
    • 4
  • Andre L. M. Santos
    • 4
  1. 1.Informatics CenterFederal University of ParaibaJoao Pessoa PBBrazil
  2. 2.CIn/Samsung Laboratory of Research and DevelopmentUFPERecife PEBrazil
  3. 3.SIDI/SamsungCampinasBrazil
  4. 4.Centro de InformáticaUniversidade Federal de PernambucoRecife PEBrazil

Personalised recommendations