TY - GEN
T1 - An Empirical Study of Utilization of Imperative Modules in Ansible
AU - Kokuryo, Shoma
AU - Kondo, Masanari
AU - Mizuno, Osamu
N1 - Funding Information:
This work has been supported by JSPS KAKENHI Japan (Grant Numbers: JP19J23477).
Publisher Copyright:
© 2020 IEEE.
PY - 2020/12
Y1 - 2020/12
N2 - In recent years, a configuration management tool is adopted to manage complicated and huge systems such as bare-metal servers, cloud computing resources and our personal computers. Such a tool makes the operations to deploy services more ecient and eliminates dependencies on the specific system operators. The operations are required to be idempotent for reproducible deployment. However, the imperative modules whose operations may not be idempotent are used frequently to execute user-defined scripts on the target system; it is unclear why and how they are used, though using them frequently is believed to be a bad practice.In this paper, we studied why and how imperative modules are used in a configuration management tool, Ansible. We found that imperative modules are mainly used to perform operations that are not supported by Ansible, and about 45% of imperative modules are replaceable by other modules; the replaceable modules might be idempotent. We, therefore, recommend developers to look at replaceable modules before using imperative modules since replaceable modules might make their operations idempotent.
AB - In recent years, a configuration management tool is adopted to manage complicated and huge systems such as bare-metal servers, cloud computing resources and our personal computers. Such a tool makes the operations to deploy services more ecient and eliminates dependencies on the specific system operators. The operations are required to be idempotent for reproducible deployment. However, the imperative modules whose operations may not be idempotent are used frequently to execute user-defined scripts on the target system; it is unclear why and how they are used, though using them frequently is believed to be a bad practice.In this paper, we studied why and how imperative modules are used in a configuration management tool, Ansible. We found that imperative modules are mainly used to perform operations that are not supported by Ansible, and about 45% of imperative modules are replaceable by other modules; the replaceable modules might be idempotent. We, therefore, recommend developers to look at replaceable modules before using imperative modules since replaceable modules might make their operations idempotent.
UR - http://www.scopus.com/inward/record.url?scp=85099273810&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85099273810&partnerID=8YFLogxK
U2 - 10.1109/QRS51102.2020.00063
DO - 10.1109/QRS51102.2020.00063
M3 - Conference contribution
AN - SCOPUS:85099273810
T3 - Proceedings - 2020 IEEE 20th International Conference on Software Quality, Reliability, and Security, QRS 2020
SP - 442
EP - 449
BT - Proceedings - 2020 IEEE 20th International Conference on Software Quality, Reliability, and Security, QRS 2020
PB - Institute of Electrical and Electronics Engineers Inc.
T2 - 20th IEEE International Conference on Software Quality, Reliability, and Security, QRS 2020
Y2 - 11 December 2020 through 14 December 2020
ER -