The Odin system: an object manager for extensible software environments
The Odin system: an object manager for extensible software environments
An Architecture for Post-Development Configuration Management in a Wide-Area Network
ICDCS '97 Proceedings of the 17th International Conference on Distributed Computing Systems (ICDCS '97)
Version Control With Subversion
Version Control With Subversion
Imposing a Memory Management Discipline on Software Deployment
Proceedings of the 26th International Conference on Software Engineering
Nix: A Safe and Policy-Free System for Software Deployment
LISA '04 Proceedings of the 18th USENIX conference on System administration
Integrating software construction and software deployment
SCM'01/SCM'03 Proceedings of the 2001 ICSE Workshops on SCM 2001, and SCM 2003 conference on Software configuration management
Purely functional system configuration management
HOTOS'07 Proceedings of the 11th USENIX workshop on Hot topics in operating systems
WebDSL: A Case Study in Domain-Specific Language Engineering
Generative and Transformational Techniques in Software Engineering II
Software deployment in a dynamic cloud: From device to service orientation in a hospital environment
CLOUD '09 Proceedings of the 2009 ICSE Workshop on Software Engineering Challenges of Cloud Computing
Hi-index | 0.00 |
The deployment of services --- sets of running programs that provide some useful facility on a system or network --- is typically implemented through a manual, time-consuming and error-prone process. For instance, system administrators must deploy the necessary software components, edit configuration files, start or stop processes, and so on. This is often done in an ad hoc style with no reproducibility, violating proper configuration management practices. In this paper we show that build management, software deployment and service deployment can be integrated into a single formalism. We do this in the context of the Nix software deployment system, and show that its advantages --- co-existence of versions and variants, atomic upgrades and rollbacks, and component closure --- extend naturally to service deployment. The approach also elegantly extends to distributed services. In addition, we show that the Nix expression language can simplify the implementation of crosscutting variation points in services.