SlideShare a Scribd company logo
1 of 24
Download to read offline
Software Deployment in a Dynamic Cloud
From Device to Service Orientation in a Hospital Environment
Sander van der Burg Eelco Dolstra Merijn de Jonge
Eelco Visser
Delft University of Technology, EEMCS,
Department of Software Technology
Philips Research, Healthcare Systems Architecture,
Eindhoven
May 23, 2009
Sander van der Burg, Eelco Dolstra, Merijn de Jonge, Eelco Visser Software Deployment in a Dynamic Cloud
Hospital environments
Hospitals are complex organizations:
S. van der Burg, E. Dolstra, M. de Jonge, E. Visser Software Deployment in a Dynamic Cloud
Device orientation
The IT infrastructure of hospitals is mostly device oriented.
Examples:
Dedicated workstations are needed to access patient records
and images
Workstations with powerful graphics cards are needed to
render 3D objects
S. van der Burg, E. Dolstra, M. de Jonge, E. Visser Software Deployment in a Dynamic Cloud
Device orientation
Disadvantages:
Overcapacity due to suboptimal usage of resources
Inflexibility in reacting to events
Requires users to go to a device for a particular task
S. van der Burg, E. Dolstra, M. de Jonge, E. Visser Software Deployment in a Dynamic Cloud
Service orientation
The medical world is changing to a service-oriented environment:
Access to services is decoupled from the physical access to
particular devices
Users should be able to access data and perform
computations from:
Where they are
On any device
Example: Any device could be used to access patient records
and images
S. van der Burg, E. Dolstra, M. de Jonge, E. Visser Software Deployment in a Dynamic Cloud
Service orientation
Hospital environments are heterogeneous:
S. van der Burg, E. Dolstra, M. de Jonge, E. Visser Software Deployment in a Dynamic Cloud
Problem statement
How can we support such services in a heterogeneous environment?
S. van der Burg, E. Dolstra, M. de Jonge, E. Visser Software Deployment in a Dynamic Cloud
Requirements
To support running services in a heterogeneous environment we
have to treat the hospital infrastructure as a cloud.
Components implementing a service are automatically
deployed on machines in the cloud.
To machines with the required capabilities and connectivity.
S. van der Burg, E. Dolstra, M. de Jonge, E. Visser Software Deployment in a Dynamic Cloud
Requirements
Design services in a way that allows them to be distributed
dynamically.
Workstation: fat client
PDA: thin client
Deploy each component to a selected machine in the network:
Usually an ad-hoc process (semi automatic with human
intervention).
Needs to be automatic and reliable.
S. van der Burg, E. Dolstra, M. de Jonge, E. Visser Software Deployment in a Dynamic Cloud
Approach
Existing research:
Nix. Automatic software deployment tool.
Disnix. Extension for Nix that supports distributed systems.
SDS2. Experimental hospital system developed by Philips
Research.
Goal:
Extend the design of services and the Disnix deployment
system
S. van der Burg, E. Dolstra, M. de Jonge, E. Visser Software Deployment in a Dynamic Cloud
Designing services
We want to access every service from every device in a
hospital environment
It is not feasable to perform all computations on a client or all
computations on remote servers.
S. van der Burg, E. Dolstra, M. de Jonge, E. Visser Software Deployment in a Dynamic Cloud
Designing services
S. van der Burg, E. Dolstra, M. de Jonge, E. Visser Software Deployment in a Dynamic Cloud
Designing services
Variants of services introduce several software deployment
scenarios
Software deployment is usually a labour intensive
semi-automatic process
Software deployment should be an automatic process
capturing the deployment in models
S. van der Burg, E. Dolstra, M. de Jonge, E. Visser Software Deployment in a Dynamic Cloud
Deploying services
Nix Deployment System:
Is a package manager, like RPM
Builds packages from Nix expressions
Stores components in isolation in a Nix store
Upgrading is atomic
Deals with single systems
S. van der Burg, E. Dolstra, M. de Jonge, E. Visser Software Deployment in a Dynamic Cloud
The Nix store
/nix/store
l9w6773m1msy...-openssh-4.6p1
bin
ssh
sbin
sshd
smkabrbibqv7...-openssl-0.9.8e
lib
libssl.so.0.9.8
c6jbqm2mc0a7...-zlib-1.2.3
lib
libz.so.1.2.3
im276akmsrhv...-glibc-2.5
lib
libc.so.6
S. van der Burg, E. Dolstra, M. de Jonge, E. Visser Software Deployment in a Dynamic Cloud
Nix expressions
rec {
XMPPLogger = derivation {
name = "XMPPLogger-1.0";
src = fetchurl {
url = http://nixos.org/.../XMPPLogger-1.0.tar.gz;
md5 = "de3187eac06baf5f0506c06935a1fd29";
};
buildInputs = [ant jdk axis2];
builder = ./builder.sh;
};
DemoPortal = derivation { ... };
stdenv = ...
firefox = import ...
... # other package definitions
}
S. van der Burg, E. Dolstra, M. de Jonge, E. Visser Software Deployment in a Dynamic Cloud
Disnix
An extension to Nix to allow distributed software deployment
tasks
A webservice interface which allows remote access to the Nix
store and Nix profiles
Introduces three model types to model a distributed system:
Services model
Infrastructure model
Distribution model
Uses a variant of the two-phase commit algorithm to allow
distributed atomic commits
S. van der Burg, E. Dolstra, M. de Jonge, E. Visser Software Deployment in a Dynamic Cloud
Disnix Overview
S. van der Burg, E. Dolstra, M. de Jonge, E. Visser Software Deployment in a Dynamic Cloud
Services model
let pkgs = ../top-level/pkgs.nix;
in
{
XMPPLogger = {
name = "XMPPLogger";
pkg = pkgs.SDS2.webservices.XMPPLogger;
dependsOn = [ EjabberdService MySQLService ];
};
MULogService = {
name = "MULogService";
pkg = pkgs.SDS2.webservices.MULogService;
dependsOn = [ ME2MSService ];
};
...
}
S. van der Burg, E. Dolstra, M. de Jonge, E. Visser Software Deployment in a Dynamic Cloud
Infrastructure model
{
dtk15 = {
hostname = "dtk15";
targetEPR = http://dtk15:8080/axis2/services/DisnixService;
tomcatPort = 8080;
};
dt2d1 = {
hostname = "dt2d1";
targetEPR = http://dt2d1:8080/axis2/services/DisnixService;
tomcatPort = 8080;
mysqlPort = 3306;
};
}
S. van der Burg, E. Dolstra, M. de Jonge, E. Visser Software Deployment in a Dynamic Cloud
Distribution model
{services, infrastructure}:
[
{ service = services.FloorPlanService;
target = infrastructure.dtk15; }
{ service = services.ME2MSService;
target = infrastructure.dtk15; }
{ service = services.MELogService;
target = infrastructure.dt2d1; }
{ service = services.XMPPLogger;
target = infrastructure.dtk15; }
...
]
S. van der Burg, E. Dolstra, M. de Jonge, E. Visser Software Deployment in a Dynamic Cloud
Conclusions and Future work
We have outlined a possible architecture for distributed
deployment of services in a cloud with some tool support.
Nix/Disnix tools should be extended with new features to
make dynamic distributed software deployment possible.
Service and infrastructure models should take quality of
service attributes into account.
Mapping of components should be done dynamically.
S. van der Burg, E. Dolstra, M. de Jonge, E. Visser Software Deployment in a Dynamic Cloud
Conlusion and Future work
Machines should be auto-discovered instead of specified
manually.
Components implementing a service can be linked together in
various ways, some of them could be sub-optimal.
Thin client: SOAP connection
Fat client: Linking libraries
Privacy of data should be taken into account.
During the upgrade phase, blocking the system should be
avoided
S. van der Burg, E. Dolstra, M. de Jonge, E. Visser Software Deployment in a Dynamic Cloud
Questions
S. van der Burg, E. Dolstra, M. de Jonge, E. Visser Software Deployment in a Dynamic Cloud

More Related Content

What's hot

zenoh -- the ZEro Network OverHead protocol
zenoh -- the ZEro Network OverHead protocolzenoh -- the ZEro Network OverHead protocol
zenoh -- the ZEro Network OverHead protocolAngelo Corsaro
 
The Data Distribution Service Tutorial
The Data Distribution Service TutorialThe Data Distribution Service Tutorial
The Data Distribution Service TutorialAngelo Corsaro
 
High Performance Distributed Computing with DDS and Scala
High Performance Distributed Computing with DDS and ScalaHigh Performance Distributed Computing with DDS and Scala
High Performance Distributed Computing with DDS and ScalaAngelo Corsaro
 
The Data Distribution Service Tutorial
The Data Distribution Service TutorialThe Data Distribution Service Tutorial
The Data Distribution Service TutorialAngelo Corsaro
 
Reactive Data Centric Architectures with Vortex, Spark and ReactiveX
Reactive Data Centric Architectures with Vortex, Spark and ReactiveXReactive Data Centric Architectures with Vortex, Spark and ReactiveX
Reactive Data Centric Architectures with Vortex, Spark and ReactiveXAngelo Corsaro
 
Micro services Architecture with Vortex -- Part I
Micro services Architecture with Vortex -- Part IMicro services Architecture with Vortex -- Part I
Micro services Architecture with Vortex -- Part IAngelo Corsaro
 
Cloud Computing Security From Single To Multicloud
Cloud Computing Security From Single To MulticloudCloud Computing Security From Single To Multicloud
Cloud Computing Security From Single To MulticloudSandip Karale
 
building_private_cloud_with_oss_for_scientific_environments-libre
building_private_cloud_with_oss_for_scientific_environments-librebuilding_private_cloud_with_oss_for_scientific_environments-libre
building_private_cloud_with_oss_for_scientific_environments-libreVijayabalan Open to Explore
 
Data Decentralisation: Efficiency, Privacy and Fair Monetisation
Data Decentralisation: Efficiency, Privacy and Fair MonetisationData Decentralisation: Efficiency, Privacy and Fair Monetisation
Data Decentralisation: Efficiency, Privacy and Fair MonetisationAngelo Corsaro
 
Cloud Forensics
Cloud ForensicsCloud Forensics
Cloud Forensicssdavis532
 
Security in cloud (and grid) computing Overview
Security in cloud  (and grid) computing OverviewSecurity in cloud  (and grid) computing Overview
Security in cloud (and grid) computing OverviewTawanda Douglas Muringani
 
Integrated-Security-Solution-for-the-virtual-data-center-and-cloud
Integrated-Security-Solution-for-the-virtual-data-center-and-cloudIntegrated-Security-Solution-for-the-virtual-data-center-and-cloud
Integrated-Security-Solution-for-the-virtual-data-center-and-cloudJohn Atchison
 
DDS + Android = OpenSplice Mobile
DDS + Android = OpenSplice MobileDDS + Android = OpenSplice Mobile
DDS + Android = OpenSplice MobileAngelo Corsaro
 
378rev2 presentazione-zar technology-eng-20180917
378rev2 presentazione-zar technology-eng-20180917378rev2 presentazione-zar technology-eng-20180917
378rev2 presentazione-zar technology-eng-20180917Benedetta Ruggeri
 
Vortex Tutorial -- Part I
Vortex Tutorial -- Part IVortex Tutorial -- Part I
Vortex Tutorial -- Part IAngelo Corsaro
 

What's hot (20)

zenoh -- the ZEro Network OverHead protocol
zenoh -- the ZEro Network OverHead protocolzenoh -- the ZEro Network OverHead protocol
zenoh -- the ZEro Network OverHead protocol
 
The Data Distribution Service Tutorial
The Data Distribution Service TutorialThe Data Distribution Service Tutorial
The Data Distribution Service Tutorial
 
High Performance Distributed Computing with DDS and Scala
High Performance Distributed Computing with DDS and ScalaHigh Performance Distributed Computing with DDS and Scala
High Performance Distributed Computing with DDS and Scala
 
The Data Distribution Service Tutorial
The Data Distribution Service TutorialThe Data Distribution Service Tutorial
The Data Distribution Service Tutorial
 
Reactive Data Centric Architectures with Vortex, Spark and ReactiveX
Reactive Data Centric Architectures with Vortex, Spark and ReactiveXReactive Data Centric Architectures with Vortex, Spark and ReactiveX
Reactive Data Centric Architectures with Vortex, Spark and ReactiveX
 
DDS Everywhere
DDS EverywhereDDS Everywhere
DDS Everywhere
 
Micro services Architecture with Vortex -- Part I
Micro services Architecture with Vortex -- Part IMicro services Architecture with Vortex -- Part I
Micro services Architecture with Vortex -- Part I
 
Cloud Computing Security From Single To Multicloud
Cloud Computing Security From Single To MulticloudCloud Computing Security From Single To Multicloud
Cloud Computing Security From Single To Multicloud
 
building_private_cloud_with_oss_for_scientific_environments-libre
building_private_cloud_with_oss_for_scientific_environments-librebuilding_private_cloud_with_oss_for_scientific_environments-libre
building_private_cloud_with_oss_for_scientific_environments-libre
 
Data Decentralisation: Efficiency, Privacy and Fair Monetisation
Data Decentralisation: Efficiency, Privacy and Fair MonetisationData Decentralisation: Efficiency, Privacy and Fair Monetisation
Data Decentralisation: Efficiency, Privacy and Fair Monetisation
 
Cloud computing
Cloud computingCloud computing
Cloud computing
 
Cloud Forensics
Cloud ForensicsCloud Forensics
Cloud Forensics
 
Security in cloud (and grid) computing Overview
Security in cloud  (and grid) computing OverviewSecurity in cloud  (and grid) computing Overview
Security in cloud (and grid) computing Overview
 
Integrated-Security-Solution-for-the-virtual-data-center-and-cloud
Integrated-Security-Solution-for-the-virtual-data-center-and-cloudIntegrated-Security-Solution-for-the-virtual-data-center-and-cloud
Integrated-Security-Solution-for-the-virtual-data-center-and-cloud
 
DDS + Android = OpenSplice Mobile
DDS + Android = OpenSplice MobileDDS + Android = OpenSplice Mobile
DDS + Android = OpenSplice Mobile
 
DDS Made Simple
DDS Made SimpleDDS Made Simple
DDS Made Simple
 
378rev2 presentazione-zar technology-eng-20180917
378rev2 presentazione-zar technology-eng-20180917378rev2 presentazione-zar technology-eng-20180917
378rev2 presentazione-zar technology-eng-20180917
 
Salesforce - Introduction to Security & Access
Salesforce -  Introduction to Security & Access Salesforce -  Introduction to Security & Access
Salesforce - Introduction to Security & Access
 
Vortex Tutorial -- Part I
Vortex Tutorial -- Part IVortex Tutorial -- Part I
Vortex Tutorial -- Part I
 
176
176176
176
 

Similar to Software Deployment in a Dynamic Cloud

Deploying (micro)services with Disnix
Deploying (micro)services with DisnixDeploying (micro)services with Disnix
Deploying (micro)services with DisnixSander van der Burg
 
Model-driven Distributed Software Deployment
Model-driven Distributed Software DeploymentModel-driven Distributed Software Deployment
Model-driven Distributed Software DeploymentSander 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
 
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
 
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
 
Implementing security groups in open stack
Implementing security groups in open stackImplementing security groups in open stack
Implementing security groups in open stackRishabh Agarwal
 
Data Confidentiality in Cloud Computing
Data Confidentiality in Cloud ComputingData Confidentiality in Cloud Computing
Data Confidentiality in Cloud ComputingRitesh Dwivedi
 
Virtual Desktop Computing _White Paper - by David Roth
Virtual Desktop Computing _White Paper - by David RothVirtual Desktop Computing _White Paper - by David Roth
Virtual Desktop Computing _White Paper - by David RothDavid Roth
 
A Complete Guide to Cloud Computing, Everything You Need To Know.pdf
A Complete Guide to Cloud Computing, Everything You Need To Know.pdfA Complete Guide to Cloud Computing, Everything You Need To Know.pdf
A Complete Guide to Cloud Computing, Everything You Need To Know.pdfVenpep2
 
A short discussion on cloud computing
A short discussion on cloud computingA short discussion on cloud computing
A short discussion on cloud computingZubair Ansari
 
7 Long Term Benefits of Virtual Desktops for Emerging Businesses
7 Long Term Benefits of Virtual Desktops for Emerging Businesses7 Long Term Benefits of Virtual Desktops for Emerging Businesses
7 Long Term Benefits of Virtual Desktops for Emerging BusinessesvDesk.Works
 
SECURITY FOR SOFTWARE-DEFINED (CLOUD, SDN AND NFV) INFRASTRUCTURES – ISSUES A...
SECURITY FOR SOFTWARE-DEFINED (CLOUD, SDN AND NFV) INFRASTRUCTURES – ISSUES A...SECURITY FOR SOFTWARE-DEFINED (CLOUD, SDN AND NFV) INFRASTRUCTURES – ISSUES A...
SECURITY FOR SOFTWARE-DEFINED (CLOUD, SDN AND NFV) INFRASTRUCTURES – ISSUES A...csandit
 
1 deus leaflet wp0
1 deus leaflet wp01 deus leaflet wp0
1 deus leaflet wp0imec.archive
 

Similar to Software Deployment in a Dynamic Cloud (20)

Deploying (micro)services with Disnix
Deploying (micro)services with DisnixDeploying (micro)services with Disnix
Deploying (micro)services with Disnix
 
Pull Deployment of Services
Pull Deployment of ServicesPull Deployment of Services
Pull Deployment of Services
 
Model-driven Distributed Software Deployment
Model-driven Distributed Software DeploymentModel-driven Distributed Software Deployment
Model-driven Distributed Software Deployment
 
Deploying .NET services with Disnix
Deploying .NET services with DisnixDeploying .NET services with Disnix
Deploying .NET services with Disnix
 
The Nix project
The Nix projectThe Nix project
The Nix project
 
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
 
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
 
Implementing security groups in open stack
Implementing security groups in open stackImplementing security groups in open stack
Implementing security groups in open stack
 
Data Confidentiality in Cloud Computing
Data Confidentiality in Cloud ComputingData Confidentiality in Cloud Computing
Data Confidentiality in Cloud Computing
 
Virtual Desktop Computing _White Paper - by David Roth
Virtual Desktop Computing _White Paper - by David RothVirtual Desktop Computing _White Paper - by David Roth
Virtual Desktop Computing _White Paper - by David Roth
 
A Complete Guide to Cloud Computing, Everything You Need To Know.pdf
A Complete Guide to Cloud Computing, Everything You Need To Know.pdfA Complete Guide to Cloud Computing, Everything You Need To Know.pdf
A Complete Guide to Cloud Computing, Everything You Need To Know.pdf
 
Cloud computing
Cloud computingCloud computing
Cloud computing
 
A short discussion on cloud computing
A short discussion on cloud computingA short discussion on cloud computing
A short discussion on cloud computing
 
Introduction to cloud computing
Introduction to cloud computingIntroduction to cloud computing
Introduction to cloud computing
 
Material5 sem inv_2015-16
Material5 sem inv_2015-16Material5 sem inv_2015-16
Material5 sem inv_2015-16
 
Cloud & Software Terms Defined
Cloud & Software Terms DefinedCloud & Software Terms Defined
Cloud & Software Terms Defined
 
7 Long Term Benefits of Virtual Desktops for Emerging Businesses
7 Long Term Benefits of Virtual Desktops for Emerging Businesses7 Long Term Benefits of Virtual Desktops for Emerging Businesses
7 Long Term Benefits of Virtual Desktops for Emerging Businesses
 
Checkpoint Overview
Checkpoint OverviewCheckpoint Overview
Checkpoint Overview
 
SECURITY FOR SOFTWARE-DEFINED (CLOUD, SDN AND NFV) INFRASTRUCTURES – ISSUES A...
SECURITY FOR SOFTWARE-DEFINED (CLOUD, SDN AND NFV) INFRASTRUCTURES – ISSUES A...SECURITY FOR SOFTWARE-DEFINED (CLOUD, SDN AND NFV) INFRASTRUCTURES – ISSUES A...
SECURITY FOR SOFTWARE-DEFINED (CLOUD, SDN AND NFV) INFRASTRUCTURES – ISSUES A...
 
1 deus leaflet wp0
1 deus leaflet wp01 deus leaflet wp0
1 deus leaflet wp0
 

More from 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
 
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
 
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
 
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 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
 
Deploying .NET applications with the Nix package manager
Deploying .NET applications with the Nix package managerDeploying .NET applications with the Nix package manager
Deploying .NET applications with the Nix package managerSander van der Burg
 
Pull Deployment of Services: Introduction, Progress and Challenges
Pull Deployment of Services: Introduction, Progress and ChallengesPull Deployment of Services: Introduction, Progress and Challenges
Pull Deployment of Services: Introduction, Progress and ChallengesSander van der Burg
 
Atomic Upgrading of Distributed Systems
Atomic Upgrading of Distributed SystemsAtomic Upgrading of Distributed Systems
Atomic Upgrading of Distributed SystemsSander van der Burg
 
Model-driven Distributed Software Deployment
Model-driven Distributed Software DeploymentModel-driven Distributed Software Deployment
Model-driven Distributed Software DeploymentSander van der Burg
 

More from 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
 
Automating Mendix application deployments with Nix
Automating Mendix application deployments with NixAutomating Mendix application deployments with Nix
Automating Mendix application deployments with Nix
 
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
 
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 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
 
Disnix: A toolset for distributed deployment
Disnix: A toolset for distributed deploymentDisnix: A toolset for distributed deployment
Disnix: A toolset for distributed deployment
 
Deploying .NET applications with the Nix package manager
Deploying .NET applications with the Nix package managerDeploying .NET applications with the Nix package manager
Deploying .NET applications with the Nix package manager
 
Pull Deployment of Services: Introduction, Progress and Challenges
Pull Deployment of Services: Introduction, Progress and ChallengesPull Deployment of Services: Introduction, Progress and Challenges
Pull Deployment of Services: Introduction, Progress and Challenges
 
Atomic Upgrading of Distributed Systems
Atomic Upgrading of Distributed SystemsAtomic Upgrading of Distributed Systems
Atomic Upgrading of Distributed Systems
 
Model-driven Distributed Software Deployment
Model-driven Distributed Software DeploymentModel-driven Distributed Software Deployment
Model-driven Distributed Software Deployment
 

Recently uploaded

Proteomics: types, protein profiling steps etc.
Proteomics: types, protein profiling steps etc.Proteomics: types, protein profiling steps etc.
Proteomics: types, protein profiling steps etc.Silpa
 
Module for Grade 9 for Asynchronous/Distance learning
Module for Grade 9 for Asynchronous/Distance learningModule for Grade 9 for Asynchronous/Distance learning
Module for Grade 9 for Asynchronous/Distance learninglevieagacer
 
Connaught Place, Delhi Call girls :8448380779 Model Escorts | 100% verified
Connaught Place, Delhi Call girls :8448380779 Model Escorts | 100% verifiedConnaught Place, Delhi Call girls :8448380779 Model Escorts | 100% verified
Connaught Place, Delhi Call girls :8448380779 Model Escorts | 100% verifiedDelhi Call girls
 
Seismic Method Estimate velocity from seismic data.pptx
Seismic Method Estimate velocity from seismic  data.pptxSeismic Method Estimate velocity from seismic  data.pptx
Seismic Method Estimate velocity from seismic data.pptxAlMamun560346
 
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
 
Pulmonary drug delivery system M.pharm -2nd sem P'ceutics
Pulmonary drug delivery system M.pharm -2nd sem P'ceuticsPulmonary drug delivery system M.pharm -2nd sem P'ceutics
Pulmonary drug delivery system M.pharm -2nd sem P'ceuticssakshisoni2385
 
Justdial Call Girls In Indirapuram, Ghaziabad, 8800357707 Escorts Service
Justdial Call Girls In Indirapuram, Ghaziabad, 8800357707 Escorts ServiceJustdial Call Girls In Indirapuram, Ghaziabad, 8800357707 Escorts Service
Justdial Call Girls In Indirapuram, Ghaziabad, 8800357707 Escorts Servicemonikaservice1
 
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
 
COST ESTIMATION FOR A RESEARCH PROJECT.pptx
COST ESTIMATION FOR A RESEARCH PROJECT.pptxCOST ESTIMATION FOR A RESEARCH PROJECT.pptx
COST ESTIMATION FOR A RESEARCH PROJECT.pptxFarihaAbdulRasheed
 
❤Jammu Kashmir Call Girls 8617697112 Personal Whatsapp Number 💦✅.
❤Jammu Kashmir Call Girls 8617697112 Personal Whatsapp Number 💦✅.❤Jammu Kashmir Call Girls 8617697112 Personal Whatsapp Number 💦✅.
❤Jammu Kashmir Call Girls 8617697112 Personal Whatsapp Number 💦✅.Nitya salvi
 
GBSN - Microbiology (Unit 2)
GBSN - Microbiology (Unit 2)GBSN - Microbiology (Unit 2)
GBSN - Microbiology (Unit 2)Areesha Ahmad
 
Locating and isolating a gene, FISH, GISH, Chromosome walking and jumping, te...
Locating and isolating a gene, FISH, GISH, Chromosome walking and jumping, te...Locating and isolating a gene, FISH, GISH, Chromosome walking and jumping, te...
Locating and isolating a gene, FISH, GISH, Chromosome walking and jumping, te...Silpa
 
Pests of mustard_Identification_Management_Dr.UPR.pdf
Pests of mustard_Identification_Management_Dr.UPR.pdfPests of mustard_Identification_Management_Dr.UPR.pdf
Pests of mustard_Identification_Management_Dr.UPR.pdfPirithiRaju
 
Factory Acceptance Test( FAT).pptx .
Factory Acceptance Test( FAT).pptx       .Factory Acceptance Test( FAT).pptx       .
Factory Acceptance Test( FAT).pptx .Poonam Aher Patil
 
Feature-aligned N-BEATS with Sinkhorn divergence (ICLR '24)
Feature-aligned N-BEATS with Sinkhorn divergence (ICLR '24)Feature-aligned N-BEATS with Sinkhorn divergence (ICLR '24)
Feature-aligned N-BEATS with Sinkhorn divergence (ICLR '24)Joonhun Lee
 
SAMASTIPUR CALL GIRL 7857803690 LOW PRICE ESCORT SERVICE
SAMASTIPUR CALL GIRL 7857803690  LOW PRICE  ESCORT SERVICESAMASTIPUR CALL GIRL 7857803690  LOW PRICE  ESCORT SERVICE
SAMASTIPUR CALL GIRL 7857803690 LOW PRICE ESCORT SERVICEayushi9330
 
COMPUTING ANTI-DERIVATIVES (Integration by SUBSTITUTION)
COMPUTING ANTI-DERIVATIVES(Integration by SUBSTITUTION)COMPUTING ANTI-DERIVATIVES(Integration by SUBSTITUTION)
COMPUTING ANTI-DERIVATIVES (Integration by SUBSTITUTION)AkefAfaneh2
 
SCIENCE-4-QUARTER4-WEEK-4-PPT-1 (1).pptx
SCIENCE-4-QUARTER4-WEEK-4-PPT-1 (1).pptxSCIENCE-4-QUARTER4-WEEK-4-PPT-1 (1).pptx
SCIENCE-4-QUARTER4-WEEK-4-PPT-1 (1).pptxRizalinePalanog2
 
dkNET Webinar "Texera: A Scalable Cloud Computing Platform for Sharing Data a...
dkNET Webinar "Texera: A Scalable Cloud Computing Platform for Sharing Data a...dkNET Webinar "Texera: A Scalable Cloud Computing Platform for Sharing Data a...
dkNET Webinar "Texera: A Scalable Cloud Computing Platform for Sharing Data a...dkNET
 

Recently uploaded (20)

Clean In Place(CIP).pptx .
Clean In Place(CIP).pptx                 .Clean In Place(CIP).pptx                 .
Clean In Place(CIP).pptx .
 
Proteomics: types, protein profiling steps etc.
Proteomics: types, protein profiling steps etc.Proteomics: types, protein profiling steps etc.
Proteomics: types, protein profiling steps etc.
 
Module for Grade 9 for Asynchronous/Distance learning
Module for Grade 9 for Asynchronous/Distance learningModule for Grade 9 for Asynchronous/Distance learning
Module for Grade 9 for Asynchronous/Distance learning
 
Connaught Place, Delhi Call girls :8448380779 Model Escorts | 100% verified
Connaught Place, Delhi Call girls :8448380779 Model Escorts | 100% verifiedConnaught Place, Delhi Call girls :8448380779 Model Escorts | 100% verified
Connaught Place, Delhi Call girls :8448380779 Model Escorts | 100% verified
 
Seismic Method Estimate velocity from seismic data.pptx
Seismic Method Estimate velocity from seismic  data.pptxSeismic Method Estimate velocity from seismic  data.pptx
Seismic Method Estimate velocity from seismic data.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
 
Pulmonary drug delivery system M.pharm -2nd sem P'ceutics
Pulmonary drug delivery system M.pharm -2nd sem P'ceuticsPulmonary drug delivery system M.pharm -2nd sem P'ceutics
Pulmonary drug delivery system M.pharm -2nd sem P'ceutics
 
Justdial Call Girls In Indirapuram, Ghaziabad, 8800357707 Escorts Service
Justdial Call Girls In Indirapuram, Ghaziabad, 8800357707 Escorts ServiceJustdial Call Girls In Indirapuram, Ghaziabad, 8800357707 Escorts Service
Justdial Call Girls In Indirapuram, Ghaziabad, 8800357707 Escorts Service
 
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
 
COST ESTIMATION FOR A RESEARCH PROJECT.pptx
COST ESTIMATION FOR A RESEARCH PROJECT.pptxCOST ESTIMATION FOR A RESEARCH PROJECT.pptx
COST ESTIMATION FOR A RESEARCH PROJECT.pptx
 
❤Jammu Kashmir Call Girls 8617697112 Personal Whatsapp Number 💦✅.
❤Jammu Kashmir Call Girls 8617697112 Personal Whatsapp Number 💦✅.❤Jammu Kashmir Call Girls 8617697112 Personal Whatsapp Number 💦✅.
❤Jammu Kashmir Call Girls 8617697112 Personal Whatsapp Number 💦✅.
 
GBSN - Microbiology (Unit 2)
GBSN - Microbiology (Unit 2)GBSN - Microbiology (Unit 2)
GBSN - Microbiology (Unit 2)
 
Locating and isolating a gene, FISH, GISH, Chromosome walking and jumping, te...
Locating and isolating a gene, FISH, GISH, Chromosome walking and jumping, te...Locating and isolating a gene, FISH, GISH, Chromosome walking and jumping, te...
Locating and isolating a gene, FISH, GISH, Chromosome walking and jumping, te...
 
Pests of mustard_Identification_Management_Dr.UPR.pdf
Pests of mustard_Identification_Management_Dr.UPR.pdfPests of mustard_Identification_Management_Dr.UPR.pdf
Pests of mustard_Identification_Management_Dr.UPR.pdf
 
Factory Acceptance Test( FAT).pptx .
Factory Acceptance Test( FAT).pptx       .Factory Acceptance Test( FAT).pptx       .
Factory Acceptance Test( FAT).pptx .
 
Feature-aligned N-BEATS with Sinkhorn divergence (ICLR '24)
Feature-aligned N-BEATS with Sinkhorn divergence (ICLR '24)Feature-aligned N-BEATS with Sinkhorn divergence (ICLR '24)
Feature-aligned N-BEATS with Sinkhorn divergence (ICLR '24)
 
SAMASTIPUR CALL GIRL 7857803690 LOW PRICE ESCORT SERVICE
SAMASTIPUR CALL GIRL 7857803690  LOW PRICE  ESCORT SERVICESAMASTIPUR CALL GIRL 7857803690  LOW PRICE  ESCORT SERVICE
SAMASTIPUR CALL GIRL 7857803690 LOW PRICE ESCORT SERVICE
 
COMPUTING ANTI-DERIVATIVES (Integration by SUBSTITUTION)
COMPUTING ANTI-DERIVATIVES(Integration by SUBSTITUTION)COMPUTING ANTI-DERIVATIVES(Integration by SUBSTITUTION)
COMPUTING ANTI-DERIVATIVES (Integration by SUBSTITUTION)
 
SCIENCE-4-QUARTER4-WEEK-4-PPT-1 (1).pptx
SCIENCE-4-QUARTER4-WEEK-4-PPT-1 (1).pptxSCIENCE-4-QUARTER4-WEEK-4-PPT-1 (1).pptx
SCIENCE-4-QUARTER4-WEEK-4-PPT-1 (1).pptx
 
dkNET Webinar "Texera: A Scalable Cloud Computing Platform for Sharing Data a...
dkNET Webinar "Texera: A Scalable Cloud Computing Platform for Sharing Data a...dkNET Webinar "Texera: A Scalable Cloud Computing Platform for Sharing Data a...
dkNET Webinar "Texera: A Scalable Cloud Computing Platform for Sharing Data a...
 

Software Deployment in a Dynamic Cloud

  • 1. Software Deployment in a Dynamic Cloud From Device to Service Orientation in a Hospital Environment Sander van der Burg Eelco Dolstra Merijn de Jonge Eelco Visser Delft University of Technology, EEMCS, Department of Software Technology Philips Research, Healthcare Systems Architecture, Eindhoven May 23, 2009 Sander van der Burg, Eelco Dolstra, Merijn de Jonge, Eelco Visser Software Deployment in a Dynamic Cloud
  • 2. Hospital environments Hospitals are complex organizations: S. van der Burg, E. Dolstra, M. de Jonge, E. Visser Software Deployment in a Dynamic Cloud
  • 3. Device orientation The IT infrastructure of hospitals is mostly device oriented. Examples: Dedicated workstations are needed to access patient records and images Workstations with powerful graphics cards are needed to render 3D objects S. van der Burg, E. Dolstra, M. de Jonge, E. Visser Software Deployment in a Dynamic Cloud
  • 4. Device orientation Disadvantages: Overcapacity due to suboptimal usage of resources Inflexibility in reacting to events Requires users to go to a device for a particular task S. van der Burg, E. Dolstra, M. de Jonge, E. Visser Software Deployment in a Dynamic Cloud
  • 5. Service orientation The medical world is changing to a service-oriented environment: Access to services is decoupled from the physical access to particular devices Users should be able to access data and perform computations from: Where they are On any device Example: Any device could be used to access patient records and images S. van der Burg, E. Dolstra, M. de Jonge, E. Visser Software Deployment in a Dynamic Cloud
  • 6. Service orientation Hospital environments are heterogeneous: S. van der Burg, E. Dolstra, M. de Jonge, E. Visser Software Deployment in a Dynamic Cloud
  • 7. Problem statement How can we support such services in a heterogeneous environment? S. van der Burg, E. Dolstra, M. de Jonge, E. Visser Software Deployment in a Dynamic Cloud
  • 8. Requirements To support running services in a heterogeneous environment we have to treat the hospital infrastructure as a cloud. Components implementing a service are automatically deployed on machines in the cloud. To machines with the required capabilities and connectivity. S. van der Burg, E. Dolstra, M. de Jonge, E. Visser Software Deployment in a Dynamic Cloud
  • 9. Requirements Design services in a way that allows them to be distributed dynamically. Workstation: fat client PDA: thin client Deploy each component to a selected machine in the network: Usually an ad-hoc process (semi automatic with human intervention). Needs to be automatic and reliable. S. van der Burg, E. Dolstra, M. de Jonge, E. Visser Software Deployment in a Dynamic Cloud
  • 10. Approach Existing research: Nix. Automatic software deployment tool. Disnix. Extension for Nix that supports distributed systems. SDS2. Experimental hospital system developed by Philips Research. Goal: Extend the design of services and the Disnix deployment system S. van der Burg, E. Dolstra, M. de Jonge, E. Visser Software Deployment in a Dynamic Cloud
  • 11. Designing services We want to access every service from every device in a hospital environment It is not feasable to perform all computations on a client or all computations on remote servers. S. van der Burg, E. Dolstra, M. de Jonge, E. Visser Software Deployment in a Dynamic Cloud
  • 12. Designing services S. van der Burg, E. Dolstra, M. de Jonge, E. Visser Software Deployment in a Dynamic Cloud
  • 13. Designing services Variants of services introduce several software deployment scenarios Software deployment is usually a labour intensive semi-automatic process Software deployment should be an automatic process capturing the deployment in models S. van der Burg, E. Dolstra, M. de Jonge, E. Visser Software Deployment in a Dynamic Cloud
  • 14. Deploying services Nix Deployment System: Is a package manager, like RPM Builds packages from Nix expressions Stores components in isolation in a Nix store Upgrading is atomic Deals with single systems S. van der Burg, E. Dolstra, M. de Jonge, E. Visser Software Deployment in a Dynamic Cloud
  • 16. Nix expressions rec { XMPPLogger = derivation { name = "XMPPLogger-1.0"; src = fetchurl { url = http://nixos.org/.../XMPPLogger-1.0.tar.gz; md5 = "de3187eac06baf5f0506c06935a1fd29"; }; buildInputs = [ant jdk axis2]; builder = ./builder.sh; }; DemoPortal = derivation { ... }; stdenv = ... firefox = import ... ... # other package definitions } S. van der Burg, E. Dolstra, M. de Jonge, E. Visser Software Deployment in a Dynamic Cloud
  • 17. Disnix An extension to Nix to allow distributed software deployment tasks A webservice interface which allows remote access to the Nix store and Nix profiles Introduces three model types to model a distributed system: Services model Infrastructure model Distribution model Uses a variant of the two-phase commit algorithm to allow distributed atomic commits S. van der Burg, E. Dolstra, M. de Jonge, E. Visser Software Deployment in a Dynamic Cloud
  • 18. Disnix Overview S. van der Burg, E. Dolstra, M. de Jonge, E. Visser Software Deployment in a Dynamic Cloud
  • 19. Services model let pkgs = ../top-level/pkgs.nix; in { XMPPLogger = { name = "XMPPLogger"; pkg = pkgs.SDS2.webservices.XMPPLogger; dependsOn = [ EjabberdService MySQLService ]; }; MULogService = { name = "MULogService"; pkg = pkgs.SDS2.webservices.MULogService; dependsOn = [ ME2MSService ]; }; ... } S. van der Burg, E. Dolstra, M. de Jonge, E. Visser Software Deployment in a Dynamic Cloud
  • 20. Infrastructure model { dtk15 = { hostname = "dtk15"; targetEPR = http://dtk15:8080/axis2/services/DisnixService; tomcatPort = 8080; }; dt2d1 = { hostname = "dt2d1"; targetEPR = http://dt2d1:8080/axis2/services/DisnixService; tomcatPort = 8080; mysqlPort = 3306; }; } S. van der Burg, E. Dolstra, M. de Jonge, E. Visser Software Deployment in a Dynamic Cloud
  • 21. Distribution model {services, infrastructure}: [ { service = services.FloorPlanService; target = infrastructure.dtk15; } { service = services.ME2MSService; target = infrastructure.dtk15; } { service = services.MELogService; target = infrastructure.dt2d1; } { service = services.XMPPLogger; target = infrastructure.dtk15; } ... ] S. van der Burg, E. Dolstra, M. de Jonge, E. Visser Software Deployment in a Dynamic Cloud
  • 22. Conclusions and Future work We have outlined a possible architecture for distributed deployment of services in a cloud with some tool support. Nix/Disnix tools should be extended with new features to make dynamic distributed software deployment possible. Service and infrastructure models should take quality of service attributes into account. Mapping of components should be done dynamically. S. van der Burg, E. Dolstra, M. de Jonge, E. Visser Software Deployment in a Dynamic Cloud
  • 23. Conlusion and Future work Machines should be auto-discovered instead of specified manually. Components implementing a service can be linked together in various ways, some of them could be sub-optimal. Thin client: SOAP connection Fat client: Linking libraries Privacy of data should be taken into account. During the upgrade phase, blocking the system should be avoided S. van der Burg, E. Dolstra, M. de Jonge, E. Visser Software Deployment in a Dynamic Cloud
  • 24. Questions S. van der Burg, E. Dolstra, M. de Jonge, E. Visser Software Deployment in a Dynamic Cloud