TY - GEN
T1 - Cimplifier
T2 - 11th Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering, ESEC/FSE 2017
AU - Rastogi, Vaibhav
AU - Davidson, Drew
AU - De Carli, Lorenzo
AU - Jha, Somesh
AU - McDaniel, Patrick
N1 - Funding Information:
We are grateful to Alisa Maas for her feedback on the paper draft as well as to the anonymous reviewers for their valuable comments and suggestions. This material is based upon work supported by the National Science Foundation Grants No. CNS-1564105, CNS-1228700, CNS-1565321, and CNS-1228620 and the Defense Advanced Research Agency Contract No. FA8650-15-C-756. Any opinions, findings, conclusions and recommendations expressed in this material are those of the authors and do not necessarily reflect the views of the funding agencies.
Publisher Copyright:
© 2017 Association for Computing Machinery.
PY - 2017/8/21
Y1 - 2017/8/21
N2 - Application containers, such as those provided by Docker, have recently gained popularity as a solution for agile and seamless software deployment. These light-weight virtualization environments run applications that are packed together with their resources and configuration information, and thus can be deployed across various software platforms. Unfortunately, the ease with which containers can be created is oftentimes a double-edged sword, encouraging the packaging of logically distinct applications, and the inclusion of significant amount of unnecessary components, within a single container. These practices needlessly increase the container size-sometimes by orders of magnitude. They also decrease the overall security, as each included component-necessary or not- may bring in security issues of its own, and there is no isolation between multiple applications packaged within the same container image. We propose algorithms and a tool called Cimplifier, which address these concerns: given a container and simple user-defined constraints, our tool partitions it into simpler containers, which (i) are isolated from each other, only communicating as necessary, and (ii) only include enough resources to perform their functionality. Our evaluation on real-world containers demonstrates that Cimplifier preserves the original functionality, leads to reduction in image size of up to 95%, and processes even large containers in under thirty seconds.
AB - Application containers, such as those provided by Docker, have recently gained popularity as a solution for agile and seamless software deployment. These light-weight virtualization environments run applications that are packed together with their resources and configuration information, and thus can be deployed across various software platforms. Unfortunately, the ease with which containers can be created is oftentimes a double-edged sword, encouraging the packaging of logically distinct applications, and the inclusion of significant amount of unnecessary components, within a single container. These practices needlessly increase the container size-sometimes by orders of magnitude. They also decrease the overall security, as each included component-necessary or not- may bring in security issues of its own, and there is no isolation between multiple applications packaged within the same container image. We propose algorithms and a tool called Cimplifier, which address these concerns: given a container and simple user-defined constraints, our tool partitions it into simpler containers, which (i) are isolated from each other, only communicating as necessary, and (ii) only include enough resources to perform their functionality. Our evaluation on real-world containers demonstrates that Cimplifier preserves the original functionality, leads to reduction in image size of up to 95%, and processes even large containers in under thirty seconds.
UR - http://www.scopus.com/inward/record.url?scp=85030754519&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85030754519&partnerID=8YFLogxK
U2 - 10.1145/3106237.3106271
DO - 10.1145/3106237.3106271
M3 - Conference contribution
AN - SCOPUS:85030754519
T3 - Proceedings of the ACM SIGSOFT Symposium on the Foundations of Software Engineering
SP - 476
EP - 486
BT - ESEC/FSE 2017 - Proceedings of the 2017 11th Joint Meeting on Foundations of Software Engineering
A2 - Zisman, Andrea
A2 - Bodden, Eric
A2 - Schafer, Wilhelm
A2 - van Deursen, Arie
PB - Association for Computing Machinery
Y2 - 4 September 2017 through 8 September 2017
ER -