Skip to main content

Abstract

DevOps engineers follow an iterative and incremental process to develop Deployment and Configuration (D&C) specifications. Such a process likely involves manual bug discovery, inspection, and modifications to the running environment. Failing to update the specifications appropriately leads to technical debt, including configuration drift, snowflake configurations, and erosion across environments. Despite the efforts that DevOps teams put into automating operations work, there is a lack of tools to support the development and maintenance of D&C specifications. In this paper, we propose Tornado, a two-way Continuous Integration (CI) framework (i.e., Dev  Ops and Dev  Ops) that automatically updates D&C specifications when the corresponding system changes, enabling bi-directional traceability of the modifications. Tornado extends the concept of CI, integrating operations work into development by committing code corresponding to manual modifications. We evaluated Tornado by implementing a proof of concept using Terraform templates, OpenStack and CircleCI, demonstrating its feasibility and soundness.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    https://www.terraform.io (accessed Oct, 2018).

  2. 2.

    https://www.openstack.org (accessed Oct, 2018).

  3. 3.

    In the literature often referred to as models@run.time [17].

  4. 4.

    Model synchronisation and RTE are often used interchangeably in the literature [12].

  5. 5.

    https://docs.openstack.org/heat/latest/template_guide (accessed Oct, 2018).

  6. 6.

    https://www.terraform.io/docs/configuration/syntax.html (accessed Oct, 2018).

  7. 7.

    https://github.com/RigiResearch/jachinte-DevOps2018-evaluation.

  8. 8.

    https://wiki.eclipse.org/Xcore (accessed Oct 2018).

  9. 9.

    http://www.eclipse.org/xtend (accessed Oct 2018).

  10. 10.

    http://www.eclipse.org/Xtext (accessed Oct 2018).

  11. 11.

    http://yaml.org (accessed Oct 2018).

References

  1. Sharma, S., Coyne, B.: DevOps for Dummies. Limited IBM Edition (2013)

    Google Scholar 

  2. Zhu, L., Bass, L., Champlin-Scharff, G.: DevOps and its practices. IEEE Softw. 33(3), 32–34 (2016)

    Article  Google Scholar 

  3. Fagerholm, F., Guinea, A.S., Mäenpää, H., Münch, J.: Building blocks for continuous experimentation. In: Proceedings of the 1st International Workshop on Rapid Continuous Software Engineering, RCoSE 2014, pp. 26–35. ACM, New York (2014)

    Google Scholar 

  4. Shahin, M., Babar, M.A., Zhu, L.: The intersection of continuous deployment and architecting process: practitioners’ perspectives. In: Proceedings of the 10th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement, ESEM 2016, pp. 44:1–44:10. ACM, New York (2016)

    Google Scholar 

  5. Fabijan, A., Dmitriev, P., Olsson, H.H., Bosch, J.: The evolution of continuous experimentation in software product development: from data to a data-driven organization at scale. In: 2017 IEEE/ACM 39th International Conference on Software Engineering, ICSE 2017, pp. 770–780 (2017)

    Google Scholar 

  6. Schermann, G., Cito, J., Leitner, P.: Continuous experimentation: challenges, implementation techniques, and current research. IEEE Softw. 35(2), 26–31 (2018)

    Article  Google Scholar 

  7. Morris, K.: Infrastructure as Code: Managing Servers in the Cloud, 1st edn. O’Reilly Media Inc., Sebastopol (2016)

    Google Scholar 

  8. Spanoudakis, G., Zisman, A.: Inconsistency management in software engineering: survey and open research issues, pp. 329–380. World Scientific Publishing Company (2012)

    Google Scholar 

  9. Kruchten, P., Nord, R.L., Ozkaya, I.: Technical debt: from metaphor to theory and practice. IEEE Softw. 29(6), 18–21 (2012)

    Article  Google Scholar 

  10. Henriksson, A., Larsson, H.: A definition of round-trip engineering. Technical report (2003)

    Google Scholar 

  11. Sendall, S., Küster, J.: Taming model round-trip engineering. In: Proceedings of Workshop on Best Practices for Model-Driven Software Development, p. 1 (2004)

    Google Scholar 

  12. Hettel, T., Lawley, M., Raymond, K.: Model synchronisation: definitions for round-trip engineering. In: Vallecillo, A., Gray, J., Pierantonio, A. (eds.) ICMT 2008. LNCS, vol. 5063, pp. 31–45. Springer, Heidelberg (2008). https://doi.org/10.1007/978-3-540-69927-9_3

    Chapter  Google Scholar 

  13. Shahin, M., Babar, M.A., Zhu, L.: Continuous integration, delivery and deployment: a systematic review on approaches, tools, challenges and practices. IEEE Access 5, 3909–3943 (2017)

    Article  Google Scholar 

  14. ISO/IEC/IEEE, International Standard - Systems and software engineering - Vocabulary. ISO/IEC/IEEE 24765:2010(E), pp. 1–418 (2010)

    Google Scholar 

  15. Hüttermann, M.: Infrastructure as Code, pp. 135–156. Apress (2012)

    Google Scholar 

  16. Nelson-Smith, S.: Test-Driven Infrastructure with Chef: Bring Behavior-Driven Development to Infrastructure as Code. O’Reilly Media Inc., Sebastopol (2013)

    Google Scholar 

  17. Blair, G., Bencomo, N., France, R.B.: Models@run.time. Computer 42(10), 22–27 (2009)

    Article  Google Scholar 

  18. Rahm, J., Graube, M., Urbas, L.: A proposal for an interactive roundtrip engineering system. In: 2017 22nd IEEE International Conference on Emerging Technologies and Factory Automation (ETFA), pp. 1–7, September 2017

    Google Scholar 

  19. Tilley, S.R., Wong, K., Storey, M.A.D., Müller, H.A.: Programmable reverse engineering. Int. J. Softw. Eng. Knowl. Eng. 04(04), 501–520 (1994)

    Article  Google Scholar 

  20. Fitzgerald, B., Stol, K.J.: Continuous software engineering: a roadmap and agenda. J. Syst. Softw. 123, 176–189 (2017)

    Article  Google Scholar 

  21. Petre, M.: UML in practice. In: Proceedings 35th International Conference on Software Engineering, ICSE 2013, pp. 722–731. IEEE Press, Piscataway (2013)

    Google Scholar 

  22. Hutchinson, J., Rouncefield, M., Whittle, J.: Model-driven engineering practices in industry. In: Proceedings 33rd International Conference on Software Engineering, ICSE 2011, pp. 633–642. ACM, New York (2011)

    Google Scholar 

  23. Inzinger, C., Nastic, S., Sehic, S., Vögler, M., Li, F., Dustdar, S.: MADCAT: a methodology for architecture and deployment of cloud application topologies. In: Proceedings 8th International Symposium on Service Oriented System Engineering, SOSE 2014, Oxford, UK, pp. 13–22 (2014)

    Google Scholar 

  24. Copil, G., Moldovan, D., Truong, H.L., Dustdar, S.: SYBL: an extensible language for controlling elasticity in cloud applications. In: Proceedings 13th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing, CCGrid 2013, pp. 112–119 (2013)

    Google Scholar 

  25. 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

    Chapter  Google Scholar 

  26. Thiery, A., Cerqueus, T., Thorpe, C., Sunyé, G., Murphy, J.: A DSL for deployment and testing in the cloud. In: Proceedings of the 2014 IEEE International Conference on Software Testing, Verification, and Validation Workshops, ICSTW 2014, pp. 376–382. IEEE Computer Society (2014)

    Google Scholar 

  27. Glaser, F.: Domain model optimized deployment and execution of cloud applications with TOSCA. In: Grabowski, J., Herbold, S. (eds.) SAM 2016. LNCS, vol. 9959, pp. 68–83. Springer, Cham (2016). https://doi.org/10.1007/978-3-319-46613-2_5

    Chapter  Google Scholar 

  28. Holmes, T.: Ming: model- and view-based deployment and adaptation of cloud datacenters. In: Helfert, M., Ferguson, D., Méndez Muñoz, V., Cardoso, J. (eds.) CLOSER 2016. CCIS, vol. 740, pp. 317–338. Springer, Cham (2017). https://doi.org/10.1007/978-3-319-62594-2_16

    Chapter  Google Scholar 

  29. Bencomo, N., Bennaceur, A., Grace, P., Blair, G., Issarny, V.: The role of models@run.time in supporting on-the-fly interoperability. Computing 95(3), 167–190 (2013)

    Article  Google Scholar 

  30. Castaneda, L.: Runtime modelling for user-centric smart applications in cyber-physical-human systems. Ph.D. thesis, Department of Computer Science, University of Victoria (2017)

    Google Scholar 

Download references

Acknowledgments

This work was funded in part by the National Sciences and Engineering Research Council (NSERC) of Canada, IBM Canada Ltd. and IBM Advanced Studies (CAS), the University of Victoria (Canada), and Universidad Icesi (Colombia).

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Miguel Jiménez .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2019 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Jiménez, M., Castaneda, L., Villegas, N.M., Tamura, G., Müller, H.A., Wigglesworth, J. (2019). DevOps Round-Trip Engineering: Traceability from Dev to Ops and Back Again. In: Bruel, JM., Mazzara, M., Meyer, B. (eds) Software Engineering Aspects of Continuous Development and New Paradigms of Software Production and Deployment. DEVOPS 2018. Lecture Notes in Computer Science(), vol 11350. Springer, Cham. https://doi.org/10.1007/978-3-030-06019-0_6

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-06019-0_6

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-06018-3

  • Online ISBN: 978-3-030-06019-0

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics