SlideShare uma empresa Scribd logo
1 de 17
Baixar para ler offline
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

Mais conteúdo relacionado

Mais procurados

Changing the world with ZeroVM and Swift
Changing the world with ZeroVM and SwiftChanging the world with ZeroVM and Swift
Changing the world with ZeroVM and SwiftJakub Krajcovic
 
Deploying OpenStack Object Storage (Swift)
Deploying OpenStack Object Storage (Swift)Deploying OpenStack Object Storage (Swift)
Deploying OpenStack Object Storage (Swift)Juan José Martínez
 
Openstack platform -Red Hat Pizza and technology event - Israel
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
 
Hybrid cloud federation
Hybrid cloud federationHybrid cloud federation
Hybrid cloud federationopenstackindia
 
OpenStack Swift In the Enterprise
OpenStack Swift In the EnterpriseOpenStack Swift In the Enterprise
OpenStack Swift In the EnterpriseHostway|HOSTING
 
Magnum Networking Update
Magnum Networking UpdateMagnum Networking Update
Magnum Networking UpdateDaneyon Hansen
 
OpenStack Swift的性能调优
OpenStack Swift的性能调优OpenStack Swift的性能调优
OpenStack Swift的性能调优Hardway Hou
 
CloudStack - LinuxFest NorthWest
CloudStack - LinuxFest NorthWestCloudStack - LinuxFest NorthWest
CloudStack - LinuxFest NorthWestke4qqq
 
OpenStack Introduction
OpenStack IntroductionOpenStack Introduction
OpenStack Introductionopenstackindia
 
Tokyo azure meetup #9 azure update, october
Tokyo azure meetup #9   azure update, octoberTokyo azure meetup #9   azure update, october
Tokyo azure meetup #9 azure update, octoberTokyo Azure Meetup
 
Linux kit meetup_v1.0.0
Linux kit meetup_v1.0.0Linux kit meetup_v1.0.0
Linux kit meetup_v1.0.0Anshul Patel
 
Openstack Cactus Survey
Openstack Cactus SurveyOpenstack Cactus Survey
Openstack Cactus SurveyPjack Chen
 
Mastering OpenStack - Episode 10 - Storage Decisions
Mastering OpenStack - Episode 10 - Storage DecisionsMastering OpenStack - Episode 10 - Storage Decisions
Mastering OpenStack - Episode 10 - Storage DecisionsRoozbeh Shafiee
 
Deploying swift on a scale out file system
Deploying swift on a scale out file systemDeploying swift on a scale out file system
Deploying swift on a scale out file systemDean Hildebrand
 
Hadoop on Dockers
Hadoop on DockersHadoop on Dockers
Hadoop on DockersRajiv Kumar
 
Dell openstack cloud with inktank ceph – large scale customer deployment
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 deploymentKamesh Pemmaraju
 
Demystifying Kubernetes for Enterprise DevOps
Demystifying Kubernetes for Enterprise DevOpsDemystifying Kubernetes for Enterprise DevOps
Demystifying Kubernetes for Enterprise DevOpsJim Bugwadia
 
Turning OpenStack Swift into a VM storage platform
Turning OpenStack Swift into a VM storage platformTurning OpenStack Swift into a VM storage platform
Turning OpenStack Swift into a VM storage platformOpenStack_Online
 

Mais procurados (20)

OpenStack Swift
OpenStack SwiftOpenStack Swift
OpenStack Swift
 
Changing the world with ZeroVM and Swift
Changing the world with ZeroVM and SwiftChanging the world with ZeroVM and Swift
Changing the world with ZeroVM and Swift
 
Deploying OpenStack Object Storage (Swift)
Deploying OpenStack Object Storage (Swift)Deploying OpenStack Object Storage (Swift)
Deploying OpenStack Object Storage (Swift)
 
Openstack platform -Red Hat Pizza and technology event - Israel
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
 
Hybrid cloud federation
Hybrid cloud federationHybrid cloud federation
Hybrid cloud federation
 
OpenStack Swift In the Enterprise
OpenStack Swift In the EnterpriseOpenStack Swift In the Enterprise
OpenStack Swift In the Enterprise
 
Openstack swift - VietOpenStack 6thmeeetup
Openstack swift - VietOpenStack 6thmeeetupOpenstack swift - VietOpenStack 6thmeeetup
Openstack swift - VietOpenStack 6thmeeetup
 
Magnum Networking Update
Magnum Networking UpdateMagnum Networking Update
Magnum Networking Update
 
OpenStack Swift的性能调优
OpenStack Swift的性能调优OpenStack Swift的性能调优
OpenStack Swift的性能调优
 
CloudStack - LinuxFest NorthWest
CloudStack - LinuxFest NorthWestCloudStack - LinuxFest NorthWest
CloudStack - LinuxFest NorthWest
 
OpenStack Introduction
OpenStack IntroductionOpenStack Introduction
OpenStack Introduction
 
Tokyo azure meetup #9 azure update, october
Tokyo azure meetup #9   azure update, octoberTokyo azure meetup #9   azure update, october
Tokyo azure meetup #9 azure update, october
 
Linux kit meetup_v1.0.0
Linux kit meetup_v1.0.0Linux kit meetup_v1.0.0
Linux kit meetup_v1.0.0
 
Openstack Cactus Survey
Openstack Cactus SurveyOpenstack Cactus Survey
Openstack Cactus Survey
 
Mastering OpenStack - Episode 10 - Storage Decisions
Mastering OpenStack - Episode 10 - Storage DecisionsMastering OpenStack - Episode 10 - Storage Decisions
Mastering OpenStack - Episode 10 - Storage Decisions
 
Deploying swift on a scale out file system
Deploying swift on a scale out file systemDeploying swift on a scale out file system
Deploying swift on a scale out file system
 
Hadoop on Dockers
Hadoop on DockersHadoop on Dockers
Hadoop on Dockers
 
Dell openstack cloud with inktank ceph – large scale customer deployment
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
 
Demystifying Kubernetes for Enterprise DevOps
Demystifying Kubernetes for Enterprise DevOpsDemystifying Kubernetes for Enterprise DevOps
Demystifying Kubernetes for Enterprise DevOps
 
Turning OpenStack Swift into a VM storage platform
Turning OpenStack Swift into a VM storage platformTurning OpenStack Swift into a VM storage platform
Turning OpenStack Swift into a VM storage platform
 

Destaque

La pizarra digital interactiva (pdi)
La pizarra digital interactiva (pdi)La pizarra digital interactiva (pdi)
La pizarra digital interactiva (pdi)jgrisalvo
 
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
Mobility Broker Platform: the role of M2M in the pilot of Leuven - IBMMobile Monday Brussels
 
Hadoop Hands-On by @techmilind
Hadoop Hands-On by @techmilindHadoop Hands-On by @techmilind
Hadoop Hands-On by @techmilindEMC
 
Cto. aragon absoluto 2010
Cto. aragon absoluto 2010Cto. aragon absoluto 2010
Cto. aragon absoluto 2010elarcoestandar
 
Siglibre10 Taller UDig V97
Siglibre10 Taller UDig V97Siglibre10 Taller UDig V97
Siglibre10 Taller UDig V97Javier Sánchez
 
Imagebroschüre LOKHALLE Göttingen
Imagebroschüre LOKHALLE GöttingenImagebroschüre LOKHALLE Göttingen
Imagebroschüre LOKHALLE GöttingenLOKHALLE
 
Die Suche nach dem dezentralisierten Lernen
Die Suche nach dem dezentralisierten LernenDie Suche nach dem dezentralisierten Lernen
Die Suche nach dem dezentralisierten LernenCarlos G. Casares
 
Prochainesvacances09
Prochainesvacances09Prochainesvacances09
Prochainesvacances09guestb4bc4ef
 
Michigan Oracle User Summit Keynote
Michigan Oracle User Summit KeynoteMichigan Oracle User Summit Keynote
Michigan Oracle User Summit Keynotefactotem
 
Impressie workshop 'jouw mvo carrière' 10 september 2010
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 2010Caroline Ligtenberg
 
Study guides 3rd. period 2010 2011
Study guides 3rd. period 2010 2011Study guides 3rd. period 2010 2011
Study guides 3rd. period 2010 2011anaisabelth
 

Destaque (20)

La pizarra digital interactiva (pdi)
La pizarra digital interactiva (pdi)La pizarra digital interactiva (pdi)
La pizarra digital interactiva (pdi)
 
Tasca 1.4.sistema solar
Tasca 1.4.sistema solarTasca 1.4.sistema solar
Tasca 1.4.sistema solar
 
Wiki
WikiWiki
Wiki
 
Breakdance y diversión
Breakdance y diversiónBreakdance y diversión
Breakdance y diversión
 
In memory of silvia r diaz
In memory of silvia r diazIn memory of silvia r diaz
In memory of silvia r diaz
 
Trabajo 2
Trabajo 2Trabajo 2
Trabajo 2
 
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
Mobility Broker Platform: the role of M2M in the pilot of Leuven - IBM
 
Novedades
NovedadesNovedades
Novedades
 
Hadoop Hands-On by @techmilind
Hadoop Hands-On by @techmilindHadoop Hands-On by @techmilind
Hadoop Hands-On by @techmilind
 
Tasca 5.1.l'excreció
Tasca 5.1.l'excrecióTasca 5.1.l'excreció
Tasca 5.1.l'excreció
 
Traim lima 2
Traim lima 2Traim lima 2
Traim lima 2
 
Cto. aragon absoluto 2010
Cto. aragon absoluto 2010Cto. aragon absoluto 2010
Cto. aragon absoluto 2010
 
Siglibre10 Taller UDig V97
Siglibre10 Taller UDig V97Siglibre10 Taller UDig V97
Siglibre10 Taller UDig V97
 
Imagebroschüre LOKHALLE Göttingen
Imagebroschüre LOKHALLE GöttingenImagebroschüre LOKHALLE Göttingen
Imagebroschüre LOKHALLE Göttingen
 
Die Suche nach dem dezentralisierten Lernen
Die Suche nach dem dezentralisierten LernenDie Suche nach dem dezentralisierten Lernen
Die Suche nach dem dezentralisierten Lernen
 
Prochainesvacances09
Prochainesvacances09Prochainesvacances09
Prochainesvacances09
 
Michigan Oracle User Summit Keynote
Michigan Oracle User Summit KeynoteMichigan Oracle User Summit Keynote
Michigan Oracle User Summit Keynote
 
Made By Hands Hecho A Mano
Made By Hands Hecho A ManoMade By Hands Hecho A Mano
Made By Hands Hecho A Mano
 
Impressie workshop 'jouw mvo carrière' 10 september 2010
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
Study guides 3rd. period 2010 2011Study guides 3rd. period 2010 2011
Study guides 3rd. period 2010 2011
 

Semelhante a Atomic Upgrading of Distributed Systems

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 ...
Designing and Implementing a cloud-hosted SaaS for data movement and Sharing ...Haripds Shrestha
 
Automating Mendix application deployments with Nix
Automating Mendix application deployments with NixAutomating Mendix application deployments with Nix
Automating Mendix application deployments with NixSander van der Burg
 
VTU Open Elective 6th Sem CSE - Module 2 - Cloud Computing
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
 
Blockchain, 
Hyperledger fabric & Hyperledger cello
Blockchain, 
Hyperledger fabric & Hyperledger celloBlockchain, 
Hyperledger fabric & Hyperledger cello
Blockchain, 
Hyperledger fabric & Hyperledger celloSahdev Zala
 
virtualization-vs-containerization-paas
virtualization-vs-containerization-paasvirtualization-vs-containerization-paas
virtualization-vs-containerization-paasrajdeep
 
Serena Release Management approach and solutions
Serena Release Management approach and solutionsSerena Release Management approach and solutions
Serena Release Management approach and solutionsSoftmart
 
Azure meetup cloud native concepts - may 28th 2018
Azure meetup   cloud native concepts - may 28th 2018Azure meetup   cloud native concepts - may 28th 2018
Azure meetup cloud native concepts - may 28th 2018Jim Bugwadia
 
Service fabric and azure service fabric mesh
Service fabric and azure service fabric meshService fabric and azure service fabric mesh
Service fabric and azure service fabric meshMikkel Mørk Hegnhøj
 
Sanger, upcoming Openstack for Bio-informaticians
Sanger, upcoming Openstack for Bio-informaticiansSanger, upcoming Openstack for Bio-informaticians
Sanger, upcoming Openstack for Bio-informaticiansPeter Clapham
 
CCS335 – CLOUD COMPUTING.pptx
CCS335 – CLOUD COMPUTING.pptxCCS335 – CLOUD COMPUTING.pptx
CCS335 – CLOUD COMPUTING.pptxNiviV4
 
CCS335 - Cloud architecture model and infrastructure
CCS335 - Cloud architecture model and infrastructureCCS335 - Cloud architecture model and infrastructure
CCS335 - Cloud architecture model and infrastructureNiviV4
 
Cloudstack for beginners
Cloudstack for beginnersCloudstack for beginners
Cloudstack for beginnersJoseph Amirani
 
Server-side JS with NodeJS
Server-side JS with NodeJSServer-side JS with NodeJS
Server-side JS with NodeJSLilia Sfaxi
 
HPC and cloud distributed computing, as a journey
HPC and cloud distributed computing, as a journeyHPC and cloud distributed computing, as a journey
HPC and cloud distributed computing, as a journeyPeter Clapham
 

Semelhante a Atomic Upgrading of Distributed Systems (20)

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 ...
Designing and Implementing a cloud-hosted SaaS for data movement and Sharing ...
 
Automating Mendix application deployments with Nix
Automating Mendix application deployments with NixAutomating Mendix application deployments with Nix
Automating Mendix application deployments with Nix
 
cloudcomputing.pptx
cloudcomputing.pptxcloudcomputing.pptx
cloudcomputing.pptx
 
VTU Open Elective 6th Sem CSE - Module 2 - Cloud Computing
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
 
Blockchain, 
Hyperledger fabric & Hyperledger cello
Blockchain, 
Hyperledger fabric & Hyperledger celloBlockchain, 
Hyperledger fabric & Hyperledger cello
Blockchain, 
Hyperledger fabric & Hyperledger cello
 
virtualization-vs-containerization-paas
virtualization-vs-containerization-paasvirtualization-vs-containerization-paas
virtualization-vs-containerization-paas
 
Serena Release Management approach and solutions
Serena Release Management approach and solutionsSerena Release Management approach and solutions
Serena Release Management approach and solutions
 
Hosting Ruby Web Apps
Hosting Ruby Web AppsHosting Ruby Web Apps
Hosting Ruby Web Apps
 
Azure meetup cloud native concepts - may 28th 2018
Azure meetup   cloud native concepts - may 28th 2018Azure meetup   cloud native concepts - may 28th 2018
Azure meetup cloud native concepts - may 28th 2018
 
Cloud computing
Cloud computing Cloud computing
Cloud computing
 
The Nix project
The Nix projectThe Nix project
The Nix project
 
Service fabric and azure service fabric mesh
Service fabric and azure service fabric meshService fabric and azure service fabric mesh
Service fabric and azure service fabric mesh
 
Sanger, upcoming Openstack for Bio-informaticians
Sanger, upcoming Openstack for Bio-informaticiansSanger, upcoming Openstack for Bio-informaticians
Sanger, upcoming Openstack for Bio-informaticians
 
Flexible compute
Flexible computeFlexible compute
Flexible compute
 
CCS335 – CLOUD COMPUTING.pptx
CCS335 – CLOUD COMPUTING.pptxCCS335 – CLOUD COMPUTING.pptx
CCS335 – CLOUD COMPUTING.pptx
 
CCS335 - Cloud architecture model and infrastructure
CCS335 - Cloud architecture model and infrastructureCCS335 - Cloud architecture model and infrastructure
CCS335 - Cloud architecture model and infrastructure
 
Cloud computing_Final
Cloud computing_FinalCloud computing_Final
Cloud computing_Final
 
Cloudstack for beginners
Cloudstack for beginnersCloudstack for beginners
Cloudstack for beginners
 
Server-side JS with NodeJS
Server-side JS with NodeJSServer-side JS with NodeJS
Server-side JS with NodeJS
 
HPC and cloud distributed computing, as a journey
HPC and cloud distributed computing, as a journeyHPC and cloud distributed computing, as a journey
HPC and cloud distributed computing, as a journey
 

Mais de Sander van der Burg

nix-processmgmt: An experimental Nix-based process manager-agnostic framework
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
 
Using Nix and Docker as automated deployment solutions
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
 
Dysnomia: complementing Nix deployments with state deployment
Dysnomia: complementing Nix deployments with state deploymentDysnomia: complementing Nix deployments with state deployment
Dysnomia: complementing Nix deployments with state deploymentSander van der Burg
 
Deploying NPM packages with the Nix package manager
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
 
The NixOS project and deploying systems declaratively
The NixOS project and deploying systems declarativelyThe NixOS project and deploying systems declaratively
The NixOS project and deploying systems declarativelySander van der Burg
 
Deploying (micro)services with Disnix
Deploying (micro)services with DisnixDeploying (micro)services with Disnix
Deploying (micro)services with DisnixSander van der Burg
 
Hydra: Continuous Integration and Testing for Demanding People: The Details
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 DetailsSander van der Burg
 
Hydra: Continuous Integration and Testing for Demanding People: The Basics
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 BasicsSander van der Burg
 
A Reference Architecture for Distributed Software Deployment
A Reference Architecture for Distributed Software DeploymentA Reference Architecture for Distributed Software Deployment
A Reference Architecture for Distributed Software DeploymentSander van der Burg
 
A Reference Architecture for Distributed Software Deployment
A Reference Architecture for Distributed Software DeploymentA Reference Architecture for Distributed Software Deployment
A Reference Architecture for Distributed Software DeploymentSander van der Burg
 
Techniques and lessons for improvement of deployment processes
Techniques and lessons for improvement of deployment processesTechniques and lessons for improvement of deployment processes
Techniques and lessons for improvement of deployment processesSander van der Burg
 
A Generic Approach for Deploying and Upgrading Mutable Software Components
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 ComponentsSander van der Burg
 
Deploying .NET services with Disnix
Deploying .NET services with DisnixDeploying .NET services with Disnix
Deploying .NET services with DisnixSander van der Burg
 
A Self-Adaptive Deployment Framework for Service-Oriented Systems
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 SystemsSander van der Burg
 
Using NixOS for declarative deployment and testing
Using NixOS for declarative deployment and testingUsing NixOS for declarative deployment and testing
Using NixOS for declarative deployment and testingSander van der Burg
 
Disnix: A toolset for distributed deployment
Disnix: A toolset for distributed deploymentDisnix: A toolset for distributed deployment
Disnix: A toolset for distributed deploymentSander van der Burg
 
Automated Deployment of Hetergeneous Service-Oriented System
Automated Deployment of Hetergeneous Service-Oriented SystemAutomated Deployment of Hetergeneous Service-Oriented System
Automated Deployment of Hetergeneous Service-Oriented SystemSander van der Burg
 

Mais de Sander van der Burg (20)

The Monitoring Playground
The Monitoring PlaygroundThe Monitoring Playground
The Monitoring Playground
 
nix-processmgmt: An experimental Nix-based process manager-agnostic framework
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
 
Using Nix and Docker as automated deployment solutions
Using Nix and Docker as automated deployment solutionsUsing Nix and Docker as automated deployment solutions
Using Nix and Docker as automated deployment solutions
 
Dysnomia: complementing Nix deployments with state deployment
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
Deploying NPM packages with the Nix package managerDeploying NPM packages with the Nix package manager
Deploying NPM packages with the Nix package manager
 
The NixOS project and deploying systems declaratively
The NixOS project and deploying systems declarativelyThe NixOS project and deploying systems declaratively
The NixOS project and deploying systems declaratively
 
Deploying (micro)services with Disnix
Deploying (micro)services with DisnixDeploying (micro)services with Disnix
Deploying (micro)services with Disnix
 
Hydra: Continuous Integration and Testing for Demanding People: The Details
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
 
Hydra: Continuous Integration and Testing for Demanding People: The Basics
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
A Reference Architecture for Distributed Software DeploymentA Reference Architecture for Distributed Software Deployment
A Reference Architecture for Distributed Software Deployment
 
The Nix project
The Nix projectThe Nix project
The Nix project
 
A Reference Architecture for Distributed Software Deployment
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
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
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
 
Deploying .NET services with Disnix
Deploying .NET services with DisnixDeploying .NET services with Disnix
Deploying .NET services with Disnix
 
A Self-Adaptive Deployment Framework for Service-Oriented Systems
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
Using NixOS for declarative deployment and testingUsing NixOS for declarative deployment and testing
Using NixOS for declarative deployment and testing
 
Pull Deployment of Services
Pull Deployment of ServicesPull Deployment of Services
Pull Deployment of Services
 
Disnix: A toolset for distributed deployment
Disnix: A toolset for distributed deploymentDisnix: A toolset for distributed deployment
Disnix: A toolset for distributed deployment
 
Automated Deployment of Hetergeneous Service-Oriented System
Automated Deployment of Hetergeneous Service-Oriented SystemAutomated Deployment of Hetergeneous Service-Oriented System
Automated Deployment of Hetergeneous Service-Oriented System
 

Último

Introduction of DNA analysis in Forensic's .pptx
Introduction of DNA analysis in Forensic's .pptxIntroduction of DNA analysis in Forensic's .pptx
Introduction of DNA analysis in Forensic's .pptxrohankumarsinghrore1
 
Chemistry 5th semester paper 1st Notes.pdf
Chemistry 5th semester paper 1st Notes.pdfChemistry 5th semester paper 1st Notes.pdf
Chemistry 5th semester paper 1st Notes.pdfSumit Kumar yadav
 
Exploring Criminology and Criminal Behaviour.pdf
Exploring Criminology and Criminal Behaviour.pdfExploring Criminology and Criminal Behaviour.pdf
Exploring Criminology and Criminal Behaviour.pdfrohankumarsinghrore1
 
Factory Acceptance Test( FAT).pptx .
Factory Acceptance Test( FAT).pptx       .Factory Acceptance Test( FAT).pptx       .
Factory Acceptance Test( FAT).pptx .Poonam Aher Patil
 
Biogenic Sulfur Gases as Biosignatures on Temperate Sub-Neptune Waterworlds
Biogenic Sulfur Gases as Biosignatures on Temperate Sub-Neptune WaterworldsBiogenic Sulfur Gases as Biosignatures on Temperate Sub-Neptune Waterworlds
Biogenic Sulfur Gases as Biosignatures on Temperate Sub-Neptune WaterworldsSérgio Sacani
 
FAIRSpectra - Enabling the FAIRification of Analytical Science
FAIRSpectra - Enabling the FAIRification of Analytical ScienceFAIRSpectra - Enabling the FAIRification of Analytical Science
FAIRSpectra - Enabling the FAIRification of Analytical ScienceAlex Henderson
 
biology HL practice questions IB BIOLOGY
biology HL practice questions IB BIOLOGYbiology HL practice questions IB BIOLOGY
biology HL practice questions IB BIOLOGY1301aanya
 
GBSN - Microbiology (Unit 2)
GBSN - Microbiology (Unit 2)GBSN - Microbiology (Unit 2)
GBSN - Microbiology (Unit 2)Areesha Ahmad
 
Velocity and Acceleration PowerPoint.ppt
Velocity and Acceleration PowerPoint.pptVelocity and Acceleration PowerPoint.ppt
Velocity and Acceleration PowerPoint.pptRakeshMohan42
 
module for grade 9 for distance learning
module for grade 9 for distance learningmodule for grade 9 for distance learning
module for grade 9 for distance learninglevieagacer
 
pumpkin fruit fly, water melon fruit fly, cucumber fruit fly
pumpkin fruit fly, water melon fruit fly, cucumber fruit flypumpkin fruit fly, water melon fruit fly, cucumber fruit fly
pumpkin fruit fly, water melon fruit fly, cucumber fruit flyPRADYUMMAURYA1
 
The Mariana Trench remarkable geological features on Earth.pptx
The Mariana Trench remarkable geological features on Earth.pptxThe Mariana Trench remarkable geological features on Earth.pptx
The Mariana Trench remarkable geological features on Earth.pptxseri bangash
 
(May 9, 2024) Enhanced Ultrafast Vector Flow Imaging (VFI) Using Multi-Angle ...
(May 9, 2024) Enhanced Ultrafast Vector Flow Imaging (VFI) Using Multi-Angle ...(May 9, 2024) Enhanced Ultrafast Vector Flow Imaging (VFI) Using Multi-Angle ...
(May 9, 2024) Enhanced Ultrafast Vector Flow Imaging (VFI) Using Multi-Angle ...Scintica Instrumentation
 
300003-World Science Day For Peace And Development.pptx
300003-World Science Day For Peace And Development.pptx300003-World Science Day For Peace And Development.pptx
300003-World Science Day For Peace And Development.pptxryanrooker
 
CURRENT SCENARIO OF POULTRY PRODUCTION IN INDIA
CURRENT SCENARIO OF POULTRY PRODUCTION IN INDIACURRENT SCENARIO OF POULTRY PRODUCTION IN INDIA
CURRENT SCENARIO OF POULTRY PRODUCTION IN INDIADr. TATHAGAT KHOBRAGADE
 
FAIRSpectra - Enabling the FAIRification of Spectroscopy and Spectrometry
FAIRSpectra - Enabling the FAIRification of Spectroscopy and SpectrometryFAIRSpectra - Enabling the FAIRification of Spectroscopy and Spectrometry
FAIRSpectra - Enabling the FAIRification of Spectroscopy and SpectrometryAlex Henderson
 
Climate Change Impacts on Terrestrial and Aquatic Ecosystems.pptx
Climate Change Impacts on Terrestrial and Aquatic Ecosystems.pptxClimate Change Impacts on Terrestrial and Aquatic Ecosystems.pptx
Climate Change Impacts on Terrestrial and Aquatic Ecosystems.pptxDiariAli
 
An introduction on sequence tagged site mapping
An introduction on sequence tagged site mappingAn introduction on sequence tagged site mapping
An introduction on sequence tagged site mappingadibshanto115
 
Porella : features, morphology, anatomy, reproduction etc.
Porella : features, morphology, anatomy, reproduction etc.Porella : features, morphology, anatomy, reproduction etc.
Porella : features, morphology, anatomy, reproduction etc.Silpa
 

Último (20)

Introduction of DNA analysis in Forensic's .pptx
Introduction of DNA analysis in Forensic's .pptxIntroduction of DNA analysis in Forensic's .pptx
Introduction of DNA analysis in Forensic's .pptx
 
Chemistry 5th semester paper 1st Notes.pdf
Chemistry 5th semester paper 1st Notes.pdfChemistry 5th semester paper 1st Notes.pdf
Chemistry 5th semester paper 1st Notes.pdf
 
Exploring Criminology and Criminal Behaviour.pdf
Exploring Criminology and Criminal Behaviour.pdfExploring Criminology and Criminal Behaviour.pdf
Exploring Criminology and Criminal Behaviour.pdf
 
Factory Acceptance Test( FAT).pptx .
Factory Acceptance Test( FAT).pptx       .Factory Acceptance Test( FAT).pptx       .
Factory Acceptance Test( FAT).pptx .
 
Biogenic Sulfur Gases as Biosignatures on Temperate Sub-Neptune Waterworlds
Biogenic Sulfur Gases as Biosignatures on Temperate Sub-Neptune WaterworldsBiogenic Sulfur Gases as Biosignatures on Temperate Sub-Neptune Waterworlds
Biogenic Sulfur Gases as Biosignatures on Temperate Sub-Neptune Waterworlds
 
FAIRSpectra - Enabling the FAIRification of Analytical Science
FAIRSpectra - Enabling the FAIRification of Analytical ScienceFAIRSpectra - Enabling the FAIRification of Analytical Science
FAIRSpectra - Enabling the FAIRification of Analytical Science
 
biology HL practice questions IB BIOLOGY
biology HL practice questions IB BIOLOGYbiology HL practice questions IB BIOLOGY
biology HL practice questions IB BIOLOGY
 
GBSN - Microbiology (Unit 2)
GBSN - Microbiology (Unit 2)GBSN - Microbiology (Unit 2)
GBSN - Microbiology (Unit 2)
 
Velocity and Acceleration PowerPoint.ppt
Velocity and Acceleration PowerPoint.pptVelocity and Acceleration PowerPoint.ppt
Velocity and Acceleration PowerPoint.ppt
 
module for grade 9 for distance learning
module for grade 9 for distance learningmodule for grade 9 for distance learning
module for grade 9 for distance learning
 
pumpkin fruit fly, water melon fruit fly, cucumber fruit fly
pumpkin fruit fly, water melon fruit fly, cucumber fruit flypumpkin fruit fly, water melon fruit fly, cucumber fruit fly
pumpkin fruit fly, water melon fruit fly, cucumber fruit fly
 
The Mariana Trench remarkable geological features on Earth.pptx
The Mariana Trench remarkable geological features on Earth.pptxThe Mariana Trench remarkable geological features on Earth.pptx
The Mariana Trench remarkable geological features on Earth.pptx
 
(May 9, 2024) Enhanced Ultrafast Vector Flow Imaging (VFI) Using Multi-Angle ...
(May 9, 2024) Enhanced Ultrafast Vector Flow Imaging (VFI) Using Multi-Angle ...(May 9, 2024) Enhanced Ultrafast Vector Flow Imaging (VFI) Using Multi-Angle ...
(May 9, 2024) Enhanced Ultrafast Vector Flow Imaging (VFI) Using Multi-Angle ...
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
300003-World Science Day For Peace And Development.pptx
300003-World Science Day For Peace And Development.pptx300003-World Science Day For Peace And Development.pptx
300003-World Science Day For Peace And Development.pptx
 
CURRENT SCENARIO OF POULTRY PRODUCTION IN INDIA
CURRENT SCENARIO OF POULTRY PRODUCTION IN INDIACURRENT SCENARIO OF POULTRY PRODUCTION IN INDIA
CURRENT SCENARIO OF POULTRY PRODUCTION IN INDIA
 
FAIRSpectra - Enabling the FAIRification of Spectroscopy and Spectrometry
FAIRSpectra - Enabling the FAIRification of Spectroscopy and SpectrometryFAIRSpectra - Enabling the FAIRification of Spectroscopy and Spectrometry
FAIRSpectra - Enabling the FAIRification of Spectroscopy and Spectrometry
 
Climate Change Impacts on Terrestrial and Aquatic Ecosystems.pptx
Climate Change Impacts on Terrestrial and Aquatic Ecosystems.pptxClimate Change Impacts on Terrestrial and Aquatic Ecosystems.pptx
Climate Change Impacts on Terrestrial and Aquatic Ecosystems.pptx
 
An introduction on sequence tagged site mapping
An introduction on sequence tagged site mappingAn introduction on sequence tagged site mapping
An introduction on sequence tagged site mapping
 
Porella : features, morphology, anatomy, reproduction etc.
Porella : features, morphology, anatomy, reproduction etc.Porella : features, morphology, anatomy, reproduction etc.
Porella : features, morphology, anatomy, reproduction etc.
 

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