DOI: 10.5281/zenodo.18631743
title: Replication Package for Identifying Confounders in Cloud-Native Technology Adoption: Evidence from Kubernetes

description: This replication package provides all scripts, configuration instructions, and processed data required to reproduce the empirical analyses reported in the paper.

The study investigates Kubernetes adoption scenarios using the publicly available dataset SQuaD and applies regularized regression and survival analysis to identify pre-adoption confounders and analyze adoption timing.

Note: All the hyperlinks referring to the shared files only work in the local version (downloading the relpication package). The only version will not work as the browser does not find the files.

License

All generated data is provided under DATA_LICENSE Creative Commons 4.0 Attribution License.

All scripts are provided under the Script_LICENSE MIT License.

Contents

This repository consists of the following files:





README.md: The README file describes the project and how to run the scripts to get the data and do the analysis




INSTALL.md: Installation and configurations instructions




requirements.txt: Library requirements for the Python environment




k8s_adoption_identification





release_level.csv: Release-level table used for Kubernetes adoption identification (per-project, per-release).




project_level.csv: Project-level summary table derived from release_level.csv






data





RAW_Normalized_RQ1.csv: Project-level baseline dataset used as input for the Elastic Net logistic regression analysis (RQ1).




RAW_RQ2.csv: Release-level dataset used as input for the Cox (time-to-adoption) analysis and the release-level scenario–quality analysis (RQ2).






scripts





k8s_detector.py: Precision-oriented Kubernetes/k3s detection engine (core logic). It can scan a local repository folder or a GitHub repository at a specific commit.




k8s_detect_cli.py: Command-line interface for running the detector locally or on GitHub repositories, producing JSON results.




k8s_identification_analysis.py: Post-processing script for aggregating detection results and producing adoption scenario labels.




rq1_elasticnet_balanced.py: Elastic Net logistic regression with repeated balanced sampling.




rq2_cox_elasticnet.py: Elastic Net–penalized Cox proportional hazards model for adoption timing analysis.




rq2_cox_penalized_only.py: Alternative Cox model implementation (penalized model only).




rq3_from_release_level.py: Release-level scenario–quality association analysis with confounder adjustment and attenuation reporting.






rq1_outputs





RQ1_elasticnet_summary_with_direction.csv: Main summary table of selected traits and their effects.




RQ1_balanced_samples_non_native_selected.csv: Audit table of which non-native projects were sampled in each run.




RQ1_beta_strength_interpretation_table.csv: Interpretation table mapping |beta| to qualitative strength categories.




RQ1_all_runs_coefficients_wide.csv: Wide table of coefficients across all runs.




per_run: Per-run coefficient tables. Each file contains the full coefficient table for one balanced-sampling run.






rq2_outputs





RQ2_cv_lambda_results.csv: Cross-validation results for selecting the penalization strength.




RQ2_design_matrix_info.txt: Information about the final design matrix (dimensions, dropped columns, etc.).




RQ2_dropped_low_variance_features.csv: List of features dropped due to low variance.




RQ2_projects_used_for_cox.csv: List of projects included in the Cox model after filtering.




RQ2_final_penalized_all_predictors.csv: Full coefficient table for all predictors in the final penalized Cox model.




RQ2_final_penalized_selected_nonzero.csv: Subset of predictors with non-zero coefficients.




RQ2_final_penalized_p_lt_0p05.csv: Subset of predictors that are statistically significant (p < 0.05).





Replication of the results

Setting up the environment

Follow the instructions in INSTALL.md to set up the environment.

Running scripts

All scripts are executed from the command line. For example:

python scripts/<script_name>.py


Each script provides its required inputs and optional parameters via command-line arguments.

Each script has an introduction.

Output directories

Running the analysis scripts will generate output folders such as:



rq1_outputs/

rq2_outputs/


All outputs are written as CSV files for transparency and reproducibility.