Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/3387904.3389257acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
research-article

Unified Configuration Setting Access in Configuration Management Systems

Published: 12 September 2020 Publication History

Abstract

The behavior of software is often governed by a large set of configuration settings, distributed over several stacks in the software system. These settings are often manifested as plain text files that exhibit different formats and syntax. Configuration management systems are introduced to manage the complexity of provisioning and distributing configuration in large scale software. Globally patching configuration settings in these systems requires, however, introducing text manipulation or external templating mechanisms, that paradoxically lead to increased complexity and, eventually, to misconfigurations. These issues manifest through crashes or bugs that are often only discovered at runtime. We introduce a framework called Elektra, which integrates a centralized configuration space into configuration management systems to avoid syntax errors and avert the overriding of default values, to increase developer productivity. Elektra enables mounting different configuration files into a common, globally shared data structure to abstract away from the intricate details of file formats and configuration syntax and introduce a unified way to specify and patch configuration settings as key/value pairs. In this work, we integrate Elektra in the configuration management tool Puppet. Additionally, we present a user study with 14 developers showing that Elektra enables significant productivity improvements over existing configuration management concepts. Our study participants performed significantly faster using Elektra in solving three representative scenarios that involve configuration manipulation, compared to other general-purpose configuration manipulation methods.

References

[1]
Mona Attariyan and Jason Flinn. 2010. Automating Configuration Troubleshooting with Dynamic Information Flow Analysis. In Proceedings of the 9th USENIX Conference on Operating Systems Design and Implementation (OSDI'10). USENIX Association, Berkeley, CA, USA, 1--11.
[2]
Aaron Bohannon, J Nathan Foster, Benjamin C Pierce, Alexandre Pilkiewicz, and Alan Schmitt. 2008. Boomerang: resourceful lenses for string data. In ACM SIGPLAN Notices, Vol. 43. ACM, 407--419.
[3]
Mark Burgess. 1995. CFEngine: a site configuration engine. In The USENIX Association, Computing Systems, Vol. 8.
[4]
Mark Burgess. 2003. On the theory of system administration. Science of Computer Programming 49, 1-3 (2003), 1--46. https://doi.org/10.1016/j.scico.2003.08.001
[5]
Jürgen Cito, Vincenzo Ferme, and Harald C Gall. 2016. Using Docker containers to improve reproducibility in software and web engineering research. In International Conference on Web Engineering. Springer, 609--612.
[6]
Jürgen Cito, Philipp Leitner, Martin Rinard, and Harald C. Gall. 2019. Interactive production performance feedback in the IDE. In Proceedings of the 41st International Conference on Software Engineering, ICSE 2019, Montreal, QC, Canada, May 25-31, 2019. 971--981. https://doi.org/10.1109/ICSE.2019.00102
[7]
Giuseppe DeCandia, Deniz Hastorun, Madan Jampani, Gunavardhan Kakulapati, Avinash Lakshman, Alex Pilchin, Swaminathan Sivasubramanian, Peter Vosshall, and Werner Vogels. 2007. Dynamo: amazon's highly available key-value store. In ACM SIGOPS operating systems review, Vol. 41. ACM, 205--220.
[8]
Stefan Endrikat, Stefan Hanenberg, Romain Robbes, and Andreas Stefik. 2014. How Do API Documentation and Static Typing Affect API Usability?. In Proceedings of the 36th International Conference on Software Engineering (ICSE). ACM, 632--642.
[9]
Apache Software Foundation. [n.d.]. https://commons.apache.org/configuration/. Accessed February 2017.
[10]
The R Foundation. 2017. R: The R Project for Statistical Computation. https://www.r-project.org/
[11]
Asghar Ghasemi and Saleh Zahediasl. 2012. Normality Tests for Statistical Analysis: A Guide for Non-Statisticians. International Journal of Endocrinology and Metabolism 10, 2 (2012), 486--489. https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3693611/
[12]
John A Hewson, Paul Anderson, and Andrew D Gordon. 2012. A Declarative Approach to Automated Configuration. In LISA, Vol. 12. 51--66.
[13]
Niklas Hollmann and Stefan Hanenberg. 2017. An Empirical Study on the Readability of Regular Expressions: Textual Versus Graphical. In IEEE Working Conference on Software Visualization, VISSOFT 2017, Shanghai, China, September 18-19, 2017. 74--84. https://doi.org/10.1109/VISSOFT.2017.27
[14]
Lorenzo Keller, Prasang Upadhyaya, and George Candea. 2008. ConfErr: A tool for assessing resilience to human configuration errors. In Dependable Systems and Networks With FTCS and DCC, 2008. IEEE, 157--166.
[15]
Spencer Krum, William Van Hevelingen, Ben Kero, James Turnbull, and Jeffrey McCune. 2013. Pro Puppet (second edition ed.). Apress.
[16]
Puppet Labs. 2016. Puppet 4.8 reference manual ÂĂŤ Documentation âĂŤ Puppet. https://docs.puppet.com/puppet/4.8/reference/index.html
[17]
James Loope. 2011. Managing Infrastructure with Puppet: Configuration Management at Scale. " O'Reilly Media, Inc.".
[18]
David Lutterkort. 2008. AUGEAS - a configuration API. In Proceedings of the Linux Symposium, Vol. 2. 47--56. http://www.landley.net/kdocs/ols/2008/ols2008v2-pages-47-56.pdf
[19]
Clemens Mayer, Stefan Hanenberg, Romain Robbes, Eric Tanter, and Andreas Stefik. 2012. An empirical study of the influence of static type systems on the usability of undocumented software. In Proceedings of the 27th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2012, part of SPLASH 2012, Tucson, AZ, USA, October 21-25, 2012. 683--702. https://doi.org/10.1145/2384616.2384666
[20]
John McDonald. 2015. Paired T-Test, Handbook of Biological Statistics. (7 2015). http://www.biostathandbook.com/pairedttest.html
[21]
John McDonald. 2015. Wilcoxon Signed-Rank Test, Handbook of Biological Statistics. (7 2015). http://www.biostathandbook.com/wilcoxonsignedrank.html
[22]
Kiran Nagaraja, Fábio Oliveira, Ricardo Bianchini, Richard P. Martin, and Thu D. Nguyen. 2004. Understanding and Dealing with Operator Mistakes in Internet Services. In In Proceedings of the USENIX Symposium on Operating Systems Design and Implementation (OSDI'04), Vol. 4. 61--76.
[23]
Stephen Nelson-Smith. 2013. Test-Driven Infrastructure with Chef: Bring Behavior-Driven Development to Infrastructure as Code. " O'Reilly Media, Inc.".
[24]
Milan Nosál and Jaroslav Porubän. 2012. Supporting multiple configuration sources using abstraction. Open Computer Science 2, 3 (2012), 283--299.
[25]
Prechelt, Lutz. 2000. Kontrollierte Experimente in der Softwaretechnik: Potential und Methodik. Springer.
[26]
Markus Raab. 2016. Elektra: universal framework to access configuration parameters. The Journal of Open Source Software 1, 8 (dec 2016). https://doi.org/10.21105/joss.00044
[27]
Markus Raab. 2016. Improving System Integration Using a Modular Configuration Specification Language. In Companion Proceedings of the 15th International Conference on Modularity (MODULARITY Companion 2016). ACM, New York, NY, USA, 152--157. https://doi.org/10.1145/2892664.2892691
[28]
Markus Raab. 2016. Improving System Integration Using a Modular Configuration Specification Language. In Companion Proceedings of the 15th International Conference on Modularity (MODULARITY Companion 2016). ACM, New York, NY, USA, 152--157. https://doi.org/10.1145/2892664.2892691
[29]
Markus Raab and Gergö Barany. 2017. Challenges in Validating FLOSS Configuration. Springer International Publishing, Cham, 101--114. https://doi.org/10.1007/978-3-319-57735-7_11
[30]
Guido Salvaneschi, Sebastian Proksch, Sven Amann, Sarah Nadi, and Mira Mezini. 2017. On the Positive Effect of Reactive Programming on Software Comprehension: An Empirical Study. IEEE Transactions on Software Engineering (TSE) (2017).
[31]
S. S. Shapiro and M. B. Wilk. 1965. An Analysis of Variance Test for Normality (Complete Samples). Biometrika 52, 3/4 (1965), 591--611.
[32]
Samuel Spiza and Stefan Hanenberg. 2014. Type names without static type checking already improve the usability of APIs (as long as the type names are correct): an empirical study. In 13th International Conference on Modularity, MODULARITY '14, Lugano, Switzerland, April 22-26, 2014. 99--108. https://doi.org/10.1145/2577080.2577098
[33]
Ya-Yunn Su, Mona Attariyan, and Jason Flinn. 2007. AutoBash: Improving Configuration Management with Operating System Causality Analysis. (2007), 237--250. https://doi.org/10.1145/1294261.1294284
[34]
Blazej Swikecicki and Leszek Borzemski. 2018. How Is Server Software Configured? Examining the Structure of Configuration Files. Springer International Publishing, 217--229. https://doi.org/10.1007/978-3-319-67220-5_20
[35]
James Turnbull. 2007. Pulling Strings with Puppet. Apress. https://doi.org/10.1007/978-1-4302-0622-4
[36]
Phillip Merlin Uesbeck, Andreas Stefik, Stefan Hanenberg, Jan Pedersen, and Patrick Daleiden. 2016. An empirical study on the impact of C++ lambdas and programmer experience. In Proceedings of the 38th International Conference on Software Engineering, ICSE 2016, Austin, TX, USA, May 14-22, 2016. 760--771. https://doi.org/10.1145/2884781.2884849
[37]
Claes Wohlin, Per Runeson, Martin HÃŭst, Magnus C. Ohlsson, BjÃŭrn Regnell, and Anders WesslÃl'n. 2000. Experimentation in Sortware Engineering: An Introduction. Kluwer Academic Publishers.
[38]
Tianyin Xu, Long Jin, Xuepeng Fan, Yuanyuan Zhou, Shankar Pasupathy, and Rukma Talwadker. 2015. Hey, You Have Given Me Too Many Knobs! Understanding and Dealing with Over-designed Configuration in System Software. In Proceedings of the 2015 10th Joint Meeting on Foundations of Software Engineering (ESEC/FSE 2015). ACM, New York, NY, USA, 307--319. https://doi.org/10.1145/2786805.2786852
[39]
Tianyin Xu, Xinxin Jin, Peng Huang, Yuanyuan Zhou, Shan Lu, Long Jin, and Shankar Pasupathy. 2016. Early Detection of Configuration Errors to Reduce Failure Damage. In Proceedings of the 12th USENIX Symposium on Operating Systems Design and Implementation (OSDI'16). Savannah, GA, USA.
[40]
Tianyin Xu, Jiaqi Zhang, Peng Huang, Jing Zheng, Tianwei Sheng, Ding Yuan, Yuanyuan Zhou, and Shankar Pasupathy. 2013. Do not blame users for misconfigurations. In Proceedings of the Twenty-Fourth ACM Symposium on Operating Systems Principles. ACM, 244--259.
[41]
Tianyin Xu and Yuanyuan Zhou. 2015. Systems Approaches to Tackling Configuration Errors: A Survey. ACM Comput. Surv. 47, 4 (July 2015), 70:1--70:41. https://doi.org/10.1145/2791577
[42]
Sai Zhang and Michael D. Ernst. 2015. Proactive Detection of Inadequate Diagnostic Messages for Software Configuration Errors. In Proceedings of the 2015 International Symposium on Software Testing and Analysis (ISSTA 2015). ACM, New York, NY, USA, 12--23. https://doi.org/10.1145/2771783.2771817

Index Terms

  1. Unified Configuration Setting Access in Configuration Management Systems
              Index terms have been assigned to the content through auto-classification.

              Comments

              Information & Contributors

              Information

              Published In

              cover image ACM Conferences
              ICPC '20: Proceedings of the 28th International Conference on Program Comprehension
              July 2020
              481 pages
              ISBN:9781450379588
              DOI:10.1145/3387904
              Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

              Sponsors

              Publisher

              Association for Computing Machinery

              New York, NY, United States

              Publication History

              Published: 12 September 2020

              Permissions

              Request permissions for this article.

              Check for updates

              Qualifiers

              • Research-article
              • Research
              • Refereed limited

              Conference

              ICPC '20
              Sponsor:

              Upcoming Conference

              ICSE 2025

              Contributors

              Other Metrics

              Bibliometrics & Citations

              Bibliometrics

              Article Metrics

              • 0
                Total Citations
              • 132
                Total Downloads
              • Downloads (Last 12 months)16
              • Downloads (Last 6 weeks)1
              Reflects downloads up to 04 Oct 2024

              Other Metrics

              Citations

              View Options

              Get Access

              Login options

              View options

              PDF

              View or Download as a PDF file.

              PDF

              eReader

              View online with eReader.

              eReader

              Media

              Figures

              Other

              Tables

              Share

              Share

              Share this Publication link

              Share on social media