Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Disnix: A toolset for distributed deployment
Sander van der Burg Eelco Dolstra
Delft University of Technology, EEMCS,
Depa...
Disnix
Disnix is a tool to automatically deploy a distributed system in a
network of machines
Sander van der Burg, Eelco D...
Research issues
General issues:
Automatic deployment
Reliable deployment
Efficient deployment
Atomic upgrades/rollbacks
Doma...
Research issues
It is complex to implement and maintain a toolset dealing with
these issues!
Sander van der Burg, Eelco Do...
Challenges
How to develop this toolset in a convenient way?
Some non-functional requirements of the domain cannot be
solve...
Architecture
Sander van der Burg, Eelco Dolstra Disnix: A toolset for distributed deployment
Architecture
Sander van der Burg, Eelco Dolstra Disnix: A toolset for distributed deployment
Architecture
Architecture is ...
Architecture
Sander van der Burg, Eelco Dolstra Disnix: A toolset for distributed deployment
Architecture
A user can easil...
Architecture
Extensions with custom modules are implemented by composing
processes:
Virtualization extension
Dynamic deplo...
Testing
Generate cheap virtual networks from declarative specifications
Automatically performs testcases on them
Completely...
Community
Sander van der Burg, Eelco Dolstra Disnix: A toolset for distributed deployment
Community
Disnix is part of the ...
Lessons learned
Architecture works well for supporting development
Easy prototyping, debugging, testing, extendable
Our te...
Website
Disnix, and other related Nix tooling: Hydra, NixOS can be freely
downloaded from: http://nixos.org
Sander van der...
Questions
Sander van der Burg, Eelco Dolstra Disnix: A toolset for distributed deployment
Upcoming SlideShare
Loading in …5
×

Disnix: A toolset for distributed deployment

284 views

Published on

Presentation given at the WaSDeTT workshop (colocated with ASE 2010) in Antwerp, Belgium.

Published in: Science
  • Be the first to comment

  • Be the first to like this

Disnix: A toolset for distributed deployment

  1. 1. Disnix: A toolset for distributed deployment Sander van der Burg Eelco Dolstra Delft University of Technology, EEMCS, Department of Software Technology September 20, 2010 Sander van der Burg, Eelco Dolstra Disnix: A toolset for distributed deployment
  2. 2. Disnix Disnix is a tool to automatically deploy a distributed system in a network of machines Sander van der Burg, Eelco Dolstra Disnix: A toolset for distributed deployment
  3. 3. Research issues General issues: Automatic deployment Reliable deployment Efficient deployment Atomic upgrades/rollbacks Domain specific issues: Security Privacy Performance Sander van der Burg, Eelco Dolstra Disnix: A toolset for distributed deployment
  4. 4. Research issues It is complex to implement and maintain a toolset dealing with these issues! Sander van der Burg, Eelco Dolstra Disnix: A toolset for distributed deployment
  5. 5. Challenges How to develop this toolset in a convenient way? Some non-functional requirements of the domain cannot be solved generically Maintaining everything ourselves is a lot of effort: Programming language compilers/interpreters: C, Java, Python, PHP, ... Libraries: Apache Axis2, libxml2, ... Infrastructure components: Apache Tomcat, MySQL, ... The tool is used in a distributed setting. How to test? Sander van der Burg, Eelco Dolstra Disnix: A toolset for distributed deployment
  6. 6. Architecture Sander van der Burg, Eelco Dolstra Disnix: A toolset for distributed deployment
  7. 7. Architecture Sander van der Burg, Eelco Dolstra Disnix: A toolset for distributed deployment Architecture Architecture is mainly composition of processes (command-line tools) Each tool performs a separate deployment task in the deployment process: Building Transferring Activating Inspired by Art of UNIX programming book
  8. 8. Architecture Sander van der Burg, Eelco Dolstra Disnix: A toolset for distributed deployment Architecture A user can easily perform steps seperately Testing and debugging is relatively easy; things can be easily scripted Components can be implemented using various programming languages: Nix, C, shell scripts Prototyping is relatively easy. First use a high-level language, implement later in a low-level language
  9. 9. Architecture Extensions with custom modules are implemented by composing processes: Virtualization extension Dynamic deployment Service abstraction layer Sander van der Burg, Eelco Dolstra Disnix: A toolset for distributed deployment
  10. 10. Testing Generate cheap virtual networks from declarative specifications Automatically performs testcases on them Completely scripted Disnix is continuously integrated and tested by Hydra Sander van der Burg, Eelco Dolstra Disnix: A toolset for distributed deployment
  11. 11. Community Sander van der Burg, Eelco Dolstra Disnix: A toolset for distributed deployment Community Disnix is part of the Nix project Tools are released under free and open-source licenses About 25 contributors Cross compiling Nixpkgs: contains compilers, libraries, tools which can be used by Disnix
  12. 12. Lessons learned Architecture works well for supporting development Easy prototyping, debugging, testing, extendable Our test approach works well; we can automatically perform distributed testcases Community is crucial; too much effort to maintain everything ourselves Sander van der Burg, Eelco Dolstra Disnix: A toolset for distributed deployment
  13. 13. Website Disnix, and other related Nix tooling: Hydra, NixOS can be freely downloaded from: http://nixos.org Sander van der Burg, Eelco Dolstra Disnix: A toolset for distributed deployment
  14. 14. Questions Sander van der Burg, Eelco Dolstra Disnix: A toolset for distributed deployment

×