Atomic Upgrading of Distributed Systems

Sander van der Burg
Sander van der BurgSoftware Engineer and Researcher at Mendix
November 3, 2009
Atomic Upgrading of
Distributed Systems
HotSWUp'08
Sander van der Burg, Eelco Dolstra, Merijn de Jonge
SERG
Introduction
• Nix deployment system
• Disnix deployment system
• Atomic upgrading
Distributed systems
• Distributed systems
– Consists of multiple autonomous computers
– Components work together to reach a common goal
– Appear to a user as one logical system
– Components have intra-dependencies and inter-
dependencies
Dependency relationships
Upgrading distributed systems
• Upgrading distributed systems is complex:
• Usually a semi automatic process
• Requires up-to-date documentation
• Requires people with skills
• Tedious and error prone
• Is not an atomic operation
Upgrading distributed systems
• Upgrading distributed systems should be a simple
process
• Automatic process
• Configurations should be captured in models
• Upgrading should be an atomic operation
Nix Deployment System
• Is a package manager, like RPM
• Builds packages from Nix expressions
• Stores components in isolation in a Nix store
• Nix profiles which abstracts over store components
• Upgrading is atomic
• Deals with single systems
Nix store and Nix profile
Nix expression
rec {
HelloService = derivation {
name = "HelloService-1.0";
src = fetchurl {
url = http://nixos.org/.../HelloService.tar.gz;
md5 = "de3187eac06baf5f0506c06935a1fd29";
};
buildInputs = [ant jdk axis2];
builder = ./builder.sh;
};
HelloWorldService = derivation { ... };
stdenv = ...
firefox = import ...
... # other package definitions
}
Disnix Deployment System
• Extends the Nix deployment system with support for
distributed systems
• Provides remote access to the Nix stores and Nix
profiles trough a webservice interface
• Introduces three model types to model a distributed
system
• Uses a variant of the two-phase commit algorithm to
allow distributed atomic commits
Disnix overview
Services model
rec {
pkgs = import ./pkgs.nix;
HelloService = {
pkg = pkgs.HelloService;
dependsOn = [];
};
HelloWorldService = {
pkg = pkgs.HelloWorldService;
dependsOn = [ HelloService ];
};
}
Infrastructure model
{
itchy = {
hostname = "itchy";
targetEPR = http://itchy/.../DisnixService;
};
scratchy = {
hostname = "scratchy";
targetEPR = http://scratchy/.../DisnixService;
};
}
Distribution model
{services, infrastructure}:
[
{ service = services.HelloService;
target = infrastructure.itchy; }
{ service = services.HelloWorldService;
target = infrastructure.scratchy; }
]
Distribution export
<?xml version="1.0" encoding="utf-8"?>
<expr>
<list>
<attrs>
<attr name="service">
<string value="/nix/store/bw7dnw...-HelloService-0.1"/>
</attr>
<attr name="target">
<string value="http://itchy:8080/axis2/services/DisnixService"/>
</attr>
</attrs>
<attrs>
<attr name="service">
<string value="/nix/store/2490znhi8...-HelloWorldService-0.1"/>
</attr>
<attr name="target">
<string value="http://scratchy:8080/axis2/services/DisnixService"/>
</attr>
</attrs>
</list>
</expr>
Atomic commits
• Commit-request phase:
– Build all services on the coordinator machine
– Transfer the services and intra-dependencies to the
cohort machines through the webservice interface
• Request phase, on each cohort:
– Deactivate the old components
– Uninstall old components in profile
– Install new component in profile
– Activate new the components
– All connections to the services are blocked
Concluding remarks
• We have demonstrated that we can extend the Nix
approach of upgrading single systems to distributed
systems
• Upgrading can be done from a declarative
specification
• Upgrading is an atomic operation
• Distribution of services is still a static process
• We are developing a dynamic approach based on
quality of service models
• http://www.nixos.org
1 of 17

Recommended

OpenNebulaconf2017EU: OpenNebula 5.4 and Beyond by Tino Vázquez and Ruben S. ... by
OpenNebulaconf2017EU: OpenNebula 5.4 and Beyond by Tino Vázquez and Ruben S. ...OpenNebulaconf2017EU: OpenNebula 5.4 and Beyond by Tino Vázquez and Ruben S. ...
OpenNebulaconf2017EU: OpenNebula 5.4 and Beyond by Tino Vázquez and Ruben S. ...OpenNebula Project
226 views18 slides
Txlf2012 by
Txlf2012Txlf2012
Txlf2012Joe Brockmeier
1.1K views26 slides
OpenNebulaConf2017EU: Providing cloud and Managed Hosting Environment by Mich... by
OpenNebulaConf2017EU: Providing cloud and Managed Hosting Environment by Mich...OpenNebulaConf2017EU: Providing cloud and Managed Hosting Environment by Mich...
OpenNebulaConf2017EU: Providing cloud and Managed Hosting Environment by Mich...OpenNebula Project
438 views7 slides
Taking the open cloud to 11 by
Taking the open cloud to 11Taking the open cloud to 11
Taking the open cloud to 11Joe Brockmeier
872 views21 slides
Building Digital Transaction Systems in the new Banking World by
Building Digital Transaction Systems in the new Banking WorldBuilding Digital Transaction Systems in the new Banking World
Building Digital Transaction Systems in the new Banking WorldRamit Surana
1.2K views30 slides
Mastering OpenStack - Episode 02 - Simple Architectures by
Mastering OpenStack - Episode 02 - Simple ArchitecturesMastering OpenStack - Episode 02 - Simple Architectures
Mastering OpenStack - Episode 02 - Simple ArchitecturesRoozbeh Shafiee
1.8K views32 slides

More Related Content

What's hot

OpenStack Swift by
OpenStack SwiftOpenStack Swift
OpenStack Swiftopenstackstl
1.9K views25 slides
Changing the world with ZeroVM and Swift by
Changing the world with ZeroVM and SwiftChanging the world with ZeroVM and Swift
Changing the world with ZeroVM and SwiftJakub Krajcovic
1K views24 slides
Deploying OpenStack Object Storage (Swift) by
Deploying OpenStack Object Storage (Swift)Deploying OpenStack Object Storage (Swift)
Deploying OpenStack Object Storage (Swift)Juan José Martínez
3.2K views9 slides
Openstack platform -Red Hat Pizza and technology event - Israel by
Openstack platform -Red Hat Pizza and technology event - IsraelOpenstack platform -Red Hat Pizza and technology event - Israel
Openstack platform -Red Hat Pizza and technology event - IsraelArthur Berezin
1.2K views26 slides
Hybrid cloud federation by
Hybrid cloud federationHybrid cloud federation
Hybrid cloud federationopenstackindia
2.6K views16 slides
OpenStack Swift In the Enterprise by
OpenStack Swift In the EnterpriseOpenStack Swift In the Enterprise
OpenStack Swift In the EnterpriseHostway|HOSTING
2.2K views19 slides

What's hot(20)

Changing the world with ZeroVM and Swift by Jakub Krajcovic
Changing the world with ZeroVM and SwiftChanging the world with ZeroVM and Swift
Changing the world with ZeroVM and Swift
Jakub Krajcovic1K views
Openstack platform -Red Hat Pizza and technology event - Israel by Arthur Berezin
Openstack platform -Red Hat Pizza and technology event - IsraelOpenstack platform -Red Hat Pizza and technology event - Israel
Openstack platform -Red Hat Pizza and technology event - Israel
Arthur Berezin1.2K views
OpenStack Swift In the Enterprise by Hostway|HOSTING
OpenStack Swift In the EnterpriseOpenStack Swift In the Enterprise
OpenStack Swift In the Enterprise
Hostway|HOSTING2.2K views
OpenStack Swift的性能调优 by Hardway Hou
OpenStack Swift的性能调优OpenStack Swift的性能调优
OpenStack Swift的性能调优
Hardway Hou428 views
CloudStack - LinuxFest NorthWest by ke4qqq
CloudStack - LinuxFest NorthWestCloudStack - LinuxFest NorthWest
CloudStack - LinuxFest NorthWest
ke4qqq1K views
OpenStack Introduction by openstackindia
OpenStack IntroductionOpenStack Introduction
OpenStack Introduction
openstackindia49.5K views
Linux kit meetup_v1.0.0 by Anshul Patel
Linux kit meetup_v1.0.0Linux kit meetup_v1.0.0
Linux kit meetup_v1.0.0
Anshul Patel767 views
Openstack Cactus Survey by Pjack Chen
Openstack Cactus SurveyOpenstack Cactus Survey
Openstack Cactus Survey
Pjack Chen588 views
Mastering OpenStack - Episode 10 - Storage Decisions by Roozbeh Shafiee
Mastering OpenStack - Episode 10 - Storage DecisionsMastering OpenStack - Episode 10 - Storage Decisions
Mastering OpenStack - Episode 10 - Storage Decisions
Roozbeh Shafiee686 views
Deploying swift on a scale out file system by Dean Hildebrand
Deploying swift on a scale out file systemDeploying swift on a scale out file system
Deploying swift on a scale out file system
Dean Hildebrand1.6K views
Hadoop on Dockers by Rajiv Kumar
Hadoop on DockersHadoop on Dockers
Hadoop on Dockers
Rajiv Kumar139 views
Dell openstack cloud with inktank ceph – large scale customer deployment by Kamesh Pemmaraju
Dell openstack cloud with inktank ceph – large scale customer deploymentDell openstack cloud with inktank ceph – large scale customer deployment
Dell openstack cloud with inktank ceph – large scale customer deployment
Kamesh Pemmaraju2.6K views
Demystifying Kubernetes for Enterprise DevOps by Jim Bugwadia
Demystifying Kubernetes for Enterprise DevOpsDemystifying Kubernetes for Enterprise DevOps
Demystifying Kubernetes for Enterprise DevOps
Jim Bugwadia588 views
Turning OpenStack Swift into a VM storage platform by OpenStack_Online
Turning OpenStack Swift into a VM storage platformTurning OpenStack Swift into a VM storage platform
Turning OpenStack Swift into a VM storage platform
OpenStack_Online4.4K views

Viewers also liked

La pizarra digital interactiva (pdi) by
La pizarra digital interactiva (pdi)La pizarra digital interactiva (pdi)
La pizarra digital interactiva (pdi)jgrisalvo
647 views11 slides
Tasca 1.4.sistema solar by
Tasca 1.4.sistema solarTasca 1.4.sistema solar
Tasca 1.4.sistema solarRafael Alvarez Alonso
759 views1 slide
Wiki by
WikiWiki
WikiShannon Chioffe
223 views6 slides
Breakdance y diversión by
Breakdance y diversiónBreakdance y diversión
Breakdance y diversiónRafael Alvarez Alonso
442 views1 slide
In memory of silvia r diaz by
In memory of silvia r diazIn memory of silvia r diaz
In memory of silvia r diazChristina Rodriguez
386 views66 slides
Trabajo 2 by
Trabajo 2Trabajo 2
Trabajo 203030303
109 views11 slides

Viewers also liked(20)

La pizarra digital interactiva (pdi) by jgrisalvo
La pizarra digital interactiva (pdi)La pizarra digital interactiva (pdi)
La pizarra digital interactiva (pdi)
jgrisalvo647 views
Trabajo 2 by 03030303
Trabajo 2Trabajo 2
Trabajo 2
03030303109 views
Mobility Broker Platform: the role of M2M in the pilot of Leuven - IBM by Mobile Monday Brussels
 Mobility Broker Platform: the role of M2M in the pilot of Leuven - IBM Mobility Broker Platform: the role of M2M in the pilot of Leuven - IBM
Mobility Broker Platform: the role of M2M in the pilot of Leuven - IBM
Hadoop Hands-On by @techmilind by EMC
Hadoop Hands-On by @techmilindHadoop Hands-On by @techmilind
Hadoop Hands-On by @techmilind
EMC769 views
Traim lima 2 by aparedes19
Traim lima 2Traim lima 2
Traim lima 2
aparedes19737 views
Imagebroschüre LOKHALLE Göttingen by LOKHALLE
Imagebroschüre LOKHALLE GöttingenImagebroschüre LOKHALLE Göttingen
Imagebroschüre LOKHALLE Göttingen
LOKHALLE871 views
Die Suche nach dem dezentralisierten Lernen by Carlos G. Casares
Die Suche nach dem dezentralisierten LernenDie Suche nach dem dezentralisierten Lernen
Die Suche nach dem dezentralisierten Lernen
Carlos G. Casares565 views
Prochainesvacances09 by guestb4bc4ef
Prochainesvacances09Prochainesvacances09
Prochainesvacances09
guestb4bc4ef240 views
Michigan Oracle User Summit Keynote by factotem
Michigan Oracle User Summit KeynoteMichigan Oracle User Summit Keynote
Michigan Oracle User Summit Keynote
factotem634 views
Impressie workshop 'jouw mvo carrière' 10 september 2010 by Caroline Ligtenberg
Impressie workshop 'jouw mvo carrière' 10 september 2010Impressie workshop 'jouw mvo carrière' 10 september 2010
Impressie workshop 'jouw mvo carrière' 10 september 2010
Study guides 3rd. period 2010 2011 by anaisabelth
Study guides 3rd. period 2010 2011Study guides 3rd. period 2010 2011
Study guides 3rd. period 2010 2011
anaisabelth166 views

Similar to Atomic Upgrading of Distributed Systems

Designing and Implementing a cloud-hosted SaaS for data movement and Sharing ... by
Designing and Implementing a cloud-hosted SaaS for data movement and Sharing ...Designing and Implementing a cloud-hosted SaaS for data movement and Sharing ...
Designing and Implementing a cloud-hosted SaaS for data movement and Sharing ...Haripds Shrestha
555 views31 slides
Automating Mendix application deployments with Nix by
Automating Mendix application deployments with NixAutomating Mendix application deployments with Nix
Automating Mendix application deployments with NixSander van der Burg
2.4K views33 slides
cloudcomputing.pptx by
cloudcomputing.pptxcloudcomputing.pptx
cloudcomputing.pptxahmedsamir339466
12 views66 slides
VTU Open Elective 6th Sem CSE - Module 2 - Cloud Computing by
VTU Open Elective 6th Sem CSE - Module 2 - Cloud ComputingVTU Open Elective 6th Sem CSE - Module 2 - Cloud Computing
VTU Open Elective 6th Sem CSE - Module 2 - Cloud ComputingSachin Gowda
3.1K views90 slides
Blockchain, 
Hyperledger fabric & Hyperledger cello by
Blockchain, 
Hyperledger fabric & Hyperledger celloBlockchain, 
Hyperledger fabric & Hyperledger cello
Blockchain, 
Hyperledger fabric & Hyperledger celloSahdev Zala
938 views13 slides
virtualization-vs-containerization-paas by
virtualization-vs-containerization-paasvirtualization-vs-containerization-paas
virtualization-vs-containerization-paasrajdeep
7.5K views30 slides

Similar to Atomic Upgrading of Distributed Systems(20)

Designing and Implementing a cloud-hosted SaaS for data movement and Sharing ... by Haripds Shrestha
Designing and Implementing a cloud-hosted SaaS for data movement and Sharing ...Designing and Implementing a cloud-hosted SaaS for data movement and Sharing ...
Designing and Implementing a cloud-hosted SaaS for data movement and Sharing ...
Haripds Shrestha555 views
Automating Mendix application deployments with Nix by Sander van der Burg
Automating Mendix application deployments with NixAutomating Mendix application deployments with Nix
Automating Mendix application deployments with Nix
Sander van der Burg2.4K views
VTU Open Elective 6th Sem CSE - Module 2 - Cloud Computing by Sachin Gowda
VTU Open Elective 6th Sem CSE - Module 2 - Cloud ComputingVTU Open Elective 6th Sem CSE - Module 2 - Cloud Computing
VTU Open Elective 6th Sem CSE - Module 2 - Cloud Computing
Sachin Gowda3.1K views
Blockchain, 
Hyperledger fabric & Hyperledger cello by Sahdev Zala
Blockchain, 
Hyperledger fabric & Hyperledger celloBlockchain, 
Hyperledger fabric & Hyperledger cello
Blockchain, 
Hyperledger fabric & Hyperledger cello
Sahdev Zala938 views
virtualization-vs-containerization-paas by rajdeep
virtualization-vs-containerization-paasvirtualization-vs-containerization-paas
virtualization-vs-containerization-paas
rajdeep7.5K views
Serena Release Management approach and solutions by Softmart
Serena Release Management approach and solutionsSerena Release Management approach and solutions
Serena Release Management approach and solutions
Softmart1K views
Azure meetup cloud native concepts - may 28th 2018 by Jim Bugwadia
Azure meetup   cloud native concepts - may 28th 2018Azure meetup   cloud native concepts - may 28th 2018
Azure meetup cloud native concepts - may 28th 2018
Jim Bugwadia289 views
Sanger, upcoming Openstack for Bio-informaticians by Peter Clapham
Sanger, upcoming Openstack for Bio-informaticiansSanger, upcoming Openstack for Bio-informaticians
Sanger, upcoming Openstack for Bio-informaticians
Peter Clapham271 views
CCS335 – CLOUD COMPUTING.pptx by NiviV4
CCS335 – CLOUD COMPUTING.pptxCCS335 – CLOUD COMPUTING.pptx
CCS335 – CLOUD COMPUTING.pptx
NiviV4913 views
Server-side JS with NodeJS by Lilia Sfaxi
Server-side JS with NodeJSServer-side JS with NodeJS
Server-side JS with NodeJS
Lilia Sfaxi3.8K views
HPC and cloud distributed computing, as a journey by Peter Clapham
HPC and cloud distributed computing, as a journeyHPC and cloud distributed computing, as a journey
HPC and cloud distributed computing, as a journey
Peter Clapham871 views

More from Sander van der Burg

The Monitoring Playground by
The Monitoring PlaygroundThe Monitoring Playground
The Monitoring PlaygroundSander van der Burg
1.2K views37 slides
nix-processmgmt: An experimental Nix-based process manager-agnostic framework by
nix-processmgmt: An experimental Nix-based process manager-agnostic frameworknix-processmgmt: An experimental Nix-based process manager-agnostic framework
nix-processmgmt: An experimental Nix-based process manager-agnostic frameworkSander van der Burg
1.8K views30 slides
Using Nix and Docker as automated deployment solutions by
Using Nix and Docker as automated deployment solutionsUsing Nix and Docker as automated deployment solutions
Using Nix and Docker as automated deployment solutionsSander van der Burg
6.3K views52 slides
Dysnomia: complementing Nix deployments with state deployment by
Dysnomia: complementing Nix deployments with state deploymentDysnomia: complementing Nix deployments with state deployment
Dysnomia: complementing Nix deployments with state deploymentSander van der Burg
743 views30 slides
Deploying NPM packages with the Nix package manager by
Deploying NPM packages with the Nix package managerDeploying NPM packages with the Nix package manager
Deploying NPM packages with the Nix package managerSander van der Burg
5.4K views51 slides
The NixOS project and deploying systems declaratively by
The NixOS project and deploying systems declarativelyThe NixOS project and deploying systems declaratively
The NixOS project and deploying systems declarativelySander van der Burg
35.8K views48 slides

More from Sander van der Burg(20)

nix-processmgmt: An experimental Nix-based process manager-agnostic framework by Sander van der Burg
nix-processmgmt: An experimental Nix-based process manager-agnostic frameworknix-processmgmt: An experimental Nix-based process manager-agnostic framework
nix-processmgmt: An experimental Nix-based process manager-agnostic framework
Sander van der Burg1.8K views
Using Nix and Docker as automated deployment solutions by Sander van der Burg
Using Nix and Docker as automated deployment solutionsUsing Nix and Docker as automated deployment solutions
Using Nix and Docker as automated deployment solutions
Sander van der Burg6.3K views
Dysnomia: complementing Nix deployments with state deployment by Sander van der Burg
Dysnomia: complementing Nix deployments with state deploymentDysnomia: complementing Nix deployments with state deployment
Dysnomia: complementing Nix deployments with state deployment
Deploying NPM packages with the Nix package manager by Sander van der Burg
Deploying NPM packages with the Nix package managerDeploying NPM packages with the Nix package manager
Deploying NPM packages with the Nix package manager
Sander van der Burg5.4K views
The NixOS project and deploying systems declaratively by Sander van der Burg
The NixOS project and deploying systems declarativelyThe NixOS project and deploying systems declaratively
The NixOS project and deploying systems declaratively
Sander van der Burg35.8K views
Hydra: Continuous Integration and Testing for Demanding People: The Details by Sander van der Burg
Hydra: Continuous Integration and Testing for Demanding People: The DetailsHydra: Continuous Integration and Testing for Demanding People: The Details
Hydra: Continuous Integration and Testing for Demanding People: The Details
Sander van der Burg3.8K views
Hydra: Continuous Integration and Testing for Demanding People: The Basics by Sander van der Burg
Hydra: Continuous Integration and Testing for Demanding People: The BasicsHydra: Continuous Integration and Testing for Demanding People: The Basics
Hydra: Continuous Integration and Testing for Demanding People: The Basics
A Reference Architecture for Distributed Software Deployment by Sander van der Burg
A Reference Architecture for Distributed Software DeploymentA Reference Architecture for Distributed Software Deployment
A Reference Architecture for Distributed Software Deployment
Sander van der Burg1.6K views
A Reference Architecture for Distributed Software Deployment by Sander van der Burg
A Reference Architecture for Distributed Software DeploymentA Reference Architecture for Distributed Software Deployment
A Reference Architecture for Distributed Software Deployment
Techniques and lessons for improvement of deployment processes by Sander van der Burg
Techniques and lessons for improvement of deployment processesTechniques and lessons for improvement of deployment processes
Techniques and lessons for improvement of deployment processes
A Generic Approach for Deploying and Upgrading Mutable Software Components by Sander van der Burg
A Generic Approach for Deploying and Upgrading Mutable Software ComponentsA Generic Approach for Deploying and Upgrading Mutable Software Components
A Generic Approach for Deploying and Upgrading Mutable Software Components
A Self-Adaptive Deployment Framework for Service-Oriented Systems by Sander van der Burg
A Self-Adaptive Deployment Framework for Service-Oriented SystemsA Self-Adaptive Deployment Framework for Service-Oriented Systems
A Self-Adaptive Deployment Framework for Service-Oriented Systems
Using NixOS for declarative deployment and testing by Sander van der Burg
Using NixOS for declarative deployment and testingUsing NixOS for declarative deployment and testing
Using NixOS for declarative deployment and testing
Sander van der Burg1.4K views
Automated Deployment of Hetergeneous Service-Oriented System by Sander van der Burg
Automated Deployment of Hetergeneous Service-Oriented SystemAutomated Deployment of Hetergeneous Service-Oriented System
Automated Deployment of Hetergeneous Service-Oriented System

Recently uploaded

ENTOMOLOGY PPT ON BOMBYCIDAE AND SATURNIIDAE.pptx by
ENTOMOLOGY PPT ON BOMBYCIDAE AND SATURNIIDAE.pptxENTOMOLOGY PPT ON BOMBYCIDAE AND SATURNIIDAE.pptx
ENTOMOLOGY PPT ON BOMBYCIDAE AND SATURNIIDAE.pptxMN
6 views13 slides
PRINCIPLES-OF ASSESSMENT by
PRINCIPLES-OF ASSESSMENTPRINCIPLES-OF ASSESSMENT
PRINCIPLES-OF ASSESSMENTrbalmagro
11 views12 slides
Matthias Beller ChemAI 231116.pptx by
Matthias Beller ChemAI 231116.pptxMatthias Beller ChemAI 231116.pptx
Matthias Beller ChemAI 231116.pptxMarco Tibaldi
88 views29 slides
1978 NASA News Release Log by
1978 NASA News Release Log1978 NASA News Release Log
1978 NASA News Release Logpurrterminator
7 views146 slides
Max Welling ChemAI 231116.pptx by
Max Welling ChemAI 231116.pptxMax Welling ChemAI 231116.pptx
Max Welling ChemAI 231116.pptxMarco Tibaldi
144 views35 slides
Gold Nanoparticle as novel Agent for Drug targeting (1).pptx by
Gold Nanoparticle as novel Agent for Drug targeting (1).pptxGold Nanoparticle as novel Agent for Drug targeting (1).pptx
Gold Nanoparticle as novel Agent for Drug targeting (1).pptxsakshijadhav9843
18 views13 slides

Recently uploaded(20)

ENTOMOLOGY PPT ON BOMBYCIDAE AND SATURNIIDAE.pptx by MN
ENTOMOLOGY PPT ON BOMBYCIDAE AND SATURNIIDAE.pptxENTOMOLOGY PPT ON BOMBYCIDAE AND SATURNIIDAE.pptx
ENTOMOLOGY PPT ON BOMBYCIDAE AND SATURNIIDAE.pptx
MN6 views
PRINCIPLES-OF ASSESSMENT by rbalmagro
PRINCIPLES-OF ASSESSMENTPRINCIPLES-OF ASSESSMENT
PRINCIPLES-OF ASSESSMENT
rbalmagro11 views
Matthias Beller ChemAI 231116.pptx by Marco Tibaldi
Matthias Beller ChemAI 231116.pptxMatthias Beller ChemAI 231116.pptx
Matthias Beller ChemAI 231116.pptx
Marco Tibaldi88 views
Max Welling ChemAI 231116.pptx by Marco Tibaldi
Max Welling ChemAI 231116.pptxMax Welling ChemAI 231116.pptx
Max Welling ChemAI 231116.pptx
Marco Tibaldi144 views
Gold Nanoparticle as novel Agent for Drug targeting (1).pptx by sakshijadhav9843
Gold Nanoparticle as novel Agent for Drug targeting (1).pptxGold Nanoparticle as novel Agent for Drug targeting (1).pptx
Gold Nanoparticle as novel Agent for Drug targeting (1).pptx
sakshijadhav984318 views
RemeOs science and clinical evidence by PetrusViitanen1
RemeOs science and clinical evidenceRemeOs science and clinical evidence
RemeOs science and clinical evidence
PetrusViitanen126 views
Connecting communities to promote FAIR resources: perspectives from an RDA / ... by Allyson Lister
Connecting communities to promote FAIR resources: perspectives from an RDA / ...Connecting communities to promote FAIR resources: perspectives from an RDA / ...
Connecting communities to promote FAIR resources: perspectives from an RDA / ...
Allyson Lister33 views
"How can I develop my learning path in bioinformatics? by Bioinformy
"How can I develop my learning path in bioinformatics?"How can I develop my learning path in bioinformatics?
"How can I develop my learning path in bioinformatics?
Bioinformy18 views
Ethical issues associated with Genetically Modified Crops and Genetically Mod... by PunithKumars6
Ethical issues associated with Genetically Modified Crops and Genetically Mod...Ethical issues associated with Genetically Modified Crops and Genetically Mod...
Ethical issues associated with Genetically Modified Crops and Genetically Mod...
PunithKumars618 views
Workshop LLM Life Sciences ChemAI 231116.pptx by Marco Tibaldi
Workshop LLM Life Sciences ChemAI 231116.pptxWorkshop LLM Life Sciences ChemAI 231116.pptx
Workshop LLM Life Sciences ChemAI 231116.pptx
Marco Tibaldi101 views
CSF -SHEEBA.D presentation.pptx by SheebaD7
CSF -SHEEBA.D presentation.pptxCSF -SHEEBA.D presentation.pptx
CSF -SHEEBA.D presentation.pptx
SheebaD710 views
A training, certification and marketing scheme for informal dairy vendors in ... by ILRI
A training, certification and marketing scheme for informal dairy vendors in ...A training, certification and marketing scheme for informal dairy vendors in ...
A training, certification and marketing scheme for informal dairy vendors in ...
ILRI10 views
MODULE-9-Biotechnology, Genetically Modified Organisms, and Gene Therapy.pdf by KerryNuez1
MODULE-9-Biotechnology, Genetically Modified Organisms, and Gene Therapy.pdfMODULE-9-Biotechnology, Genetically Modified Organisms, and Gene Therapy.pdf
MODULE-9-Biotechnology, Genetically Modified Organisms, and Gene Therapy.pdf
KerryNuez121 views
Light Pollution for LVIS students by CWBarthlmew
Light Pollution for LVIS studentsLight Pollution for LVIS students
Light Pollution for LVIS students
CWBarthlmew5 views

Atomic Upgrading of Distributed Systems

  • 1. November 3, 2009 Atomic Upgrading of Distributed Systems HotSWUp'08 Sander van der Burg, Eelco Dolstra, Merijn de Jonge SERG
  • 2. Introduction • Nix deployment system • Disnix deployment system • Atomic upgrading
  • 3. Distributed systems • Distributed systems – Consists of multiple autonomous computers – Components work together to reach a common goal – Appear to a user as one logical system – Components have intra-dependencies and inter- dependencies
  • 5. Upgrading distributed systems • Upgrading distributed systems is complex: • Usually a semi automatic process • Requires up-to-date documentation • Requires people with skills • Tedious and error prone • Is not an atomic operation
  • 6. Upgrading distributed systems • Upgrading distributed systems should be a simple process • Automatic process • Configurations should be captured in models • Upgrading should be an atomic operation
  • 7. Nix Deployment System • Is a package manager, like RPM • Builds packages from Nix expressions • Stores components in isolation in a Nix store • Nix profiles which abstracts over store components • Upgrading is atomic • Deals with single systems
  • 8. Nix store and Nix profile
  • 9. Nix expression rec { HelloService = derivation { name = "HelloService-1.0"; src = fetchurl { url = http://nixos.org/.../HelloService.tar.gz; md5 = "de3187eac06baf5f0506c06935a1fd29"; }; buildInputs = [ant jdk axis2]; builder = ./builder.sh; }; HelloWorldService = derivation { ... }; stdenv = ... firefox = import ... ... # other package definitions }
  • 10. Disnix Deployment System • Extends the Nix deployment system with support for distributed systems • Provides remote access to the Nix stores and Nix profiles trough a webservice interface • Introduces three model types to model a distributed system • Uses a variant of the two-phase commit algorithm to allow distributed atomic commits
  • 12. Services model rec { pkgs = import ./pkgs.nix; HelloService = { pkg = pkgs.HelloService; dependsOn = []; }; HelloWorldService = { pkg = pkgs.HelloWorldService; dependsOn = [ HelloService ]; }; }
  • 13. Infrastructure model { itchy = { hostname = "itchy"; targetEPR = http://itchy/.../DisnixService; }; scratchy = { hostname = "scratchy"; targetEPR = http://scratchy/.../DisnixService; }; }
  • 14. Distribution model {services, infrastructure}: [ { service = services.HelloService; target = infrastructure.itchy; } { service = services.HelloWorldService; target = infrastructure.scratchy; } ]
  • 15. Distribution export <?xml version="1.0" encoding="utf-8"?> <expr> <list> <attrs> <attr name="service"> <string value="/nix/store/bw7dnw...-HelloService-0.1"/> </attr> <attr name="target"> <string value="http://itchy:8080/axis2/services/DisnixService"/> </attr> </attrs> <attrs> <attr name="service"> <string value="/nix/store/2490znhi8...-HelloWorldService-0.1"/> </attr> <attr name="target"> <string value="http://scratchy:8080/axis2/services/DisnixService"/> </attr> </attrs> </list> </expr>
  • 16. Atomic commits • Commit-request phase: – Build all services on the coordinator machine – Transfer the services and intra-dependencies to the cohort machines through the webservice interface • Request phase, on each cohort: – Deactivate the old components – Uninstall old components in profile – Install new component in profile – Activate new the components – All connections to the services are blocked
  • 17. Concluding remarks • We have demonstrated that we can extend the Nix approach of upgrading single systems to distributed systems • Upgrading can be done from a declarative specification • Upgrading is an atomic operation • Distribution of services is still a static process • We are developing a dynamic approach based on quality of service models • http://www.nixos.org