SlideShare a Scribd company logo
1 of 250
Download to read offline
SINGULARITY
CONTAINERS FOR SCIENCE
Vanessa Sochat, PhD
Research Software Engineer
Research Computing Stanford University
THE PERFECT SANDWICH
The Perfect Sandwich
1. Peanut Butter
2. Jelly
3. Bread
4. Spread on Bread
5. Eat
The Perfect Sandwich
1. Peanut Butter
2. Jelly
3. Bread
4. Spread on Bread
5. Eat
The Perfect Sandwich
1. Peanut Butter
2. Jelly
3. Bread
4. Spread on Bread
5. Eat
The Perfect Sandwich
1. Peanut Butter
2. Jelly
3. Bread
4. Spread on Bread
5. Eat
IS IT THE SAME SANDWICH?
SAME SAME, BUT DIFFERENT
SAME SAME, BUT DIFFERENT
WE COULD HAVE DONE WORSE...
Why does it taste different?
1. Our recipe was not reproducible
1. Our recipe was not reproducible
2. We had missing dependencies
1. Our recipe was not reproducible
2. We had missing dependencies
3. The perfect sandwich might never be made again
1. Our recipe was not reproducible
2. We had missing dependencies
3. The perfect sandwich might never be made again
no ability to easily distribute or validate work
Introducing Singularity
Introducing Singularity
Give them the sandwich.
Container:
encapsulation of system
environment
LIFE’S
WORK
Container:
encapsulation of system
environment
Why not Docker?
DOCKER IS (STILL) GREAT!
DOCKER IS (STILL) GREAT!
Docker
Well-known container platform
DOCKER IS (STILL) GREAT!
Docker
Well-known container platform
Micro-service virtualization
DOCKER IS (STILL) GREAT!
Docker
Well-known container platform
Micro-service virtualization
Create + distribute containers
DOCKER IS (STILL) GREAT!
Docker
Well-known container platform
Micro-service virtualization
Create + distribute containers
Reproducible
DOCKER IS (STILL) GREAT!
Docker
Well-known container platform
Micro-service virtualization
Create + distribute containers
Reproducible
Easy to use, well documented
WHY NOT DOCKER?
Docker is not designed for,
WHY NOT DOCKER?
Docker is not designed for,
efficient for,
WHY NOT DOCKER?
Docker is not designed for,
efficient for,
or even compatible with
WHY NOT DOCKER?
Docker is not designed for,
efficient for,
or even compatible with
traditional HPC architectures
WHY NOT DOCKER?
Docker is not designed for,
efficient for,
or even compatible with
traditional HPC architectures
No centers run Docker on their traditional HPC
+
HPC
HPC ADMIN
HPC USER
scientists
need
containers
too
1. Singularity, three ways
2. Singularity Hub
3. Reproducible Science
Singularity
...three ways
How do I use it
THE SINGULARITY FLOW
Image Creation
$ singularity create ubuntu.img
$ singularity import ubuntu.img docker://ubuntu:14.04
Image Creation
$ singularity create ubuntu.img
$ singularity import ubuntu.img docker://ubuntu:14.04
Image Creation
$ singularity create ubuntu.img
$ singularity import ubuntu.img docker://ubuntu:14.04
$ singularity pull docker://ubuntu:14.04
ubuntu-14.04.img
Image Bootstrap
$ singularity create ubuntu.img
$ sudo singularity bootstrap ubuntu.img Singularity
Image Bootstrap
$ singularity create ubuntu.img
$ sudo singularity bootstrap ubuntu.img Singularity
Bootstrap: docker
From: python:latest
Singularity
Bootstrap: docker
From: python:latest
%post
apt-get update
apt-get install -y vim wget
mkdir /cave
Singularity
Bootstrap: docker
From: python:latest
%post
apt-get update
apt-get install -y vim wget
mkdir /cave
%labels
MAINTAINER vanessasaurus
Singularity
Bootstrap: docker
From: python:latest
%post
apt-get update
apt-get install -y vim wget
mkdir /cave
%labels
MAINTAINER vanessasaurus
%files
/home/vanessa/Desktop/rawr.sh /cave/rawr.sh
Singularity
Bootstrap: docker
From: python:latest
%post
apt-get update
apt-get install -y vim wget
mkdir /cave
%labels
MAINTAINER vanessasaurus
%files
/home/vanessa/Desktop/rawr.sh /cave/rawr.sh
%environment
DINOSAUR_HOME=/cave
export DINOSAUR_HOME
Singularity
Bootstrap: docker
From: python:latest
%post
apt-get update
apt-get install -y vim wget
mkdir /cave
%labels
MAINTAINER vanessasaurus
%files
/home/vanessa/Desktop/rawr.sh /cave/rawr.sh
%environment
DINOSAUR_HOME=/cave
export DINOSAUR_HOME
%runscript
exec /bin/bash /cave/rawr.sh “$@”
Singularity
Where does it live?
open
source
https://octodex.github.com/
client
(bash)
client
(bash)
src
(C)
client
(bash)
src
(C)
helper
(python)
/home/vanessa/.singularity
├── docker
├── metadata
└── shub
/usr/local/var/singularity/
└── mnt
├── container
├── overlay
└── session
/usr/local/
├── bin
├── etc
├── include
├── lib
├── libexec
└── var
./configure --prefix=/usr/local
client
/usr/local/
├── bin
├── etc
├── include
├── lib
├── libexec
└── var
./configure --prefix=/usr/local
/usr/local/
├── bin
├── etc
├── include
├── lib
├── libexec
└── var
src
/usr/local/
├── bin
├── etc
├── include
├── lib
├── libexec
└── var
python
/usr/local/
├── bin
├── etc
├── include
├── lib
├── libexec
└── var
mount
/usr/local/
├── bin
├── etc
├── include
├── lib
├── libexec
└── var
config
How does it work?
Installation
git clone https://www.github.com/singularityware/singularity.git
cd singularity
./autogen.sh
./configure --prefix=/usr/local
make
sudo make install
Customizable by the HPC Admin
SINGULARITY.CONF
- bind/mount points
- permissions
- overlayfs
Customizable by the HPC Admin
SINGULARITY.CONF
- bind/mount points
- permissions
- overlayfs
- config file must be root owned
Customizable by the HPC Admin
SINGULARITY.CONF
- bind/mount points
- permissions
- overlayfs
- config file must be root owned
- controls what user can/not do
Customizable by the HPC Admin
SINGULARITY.CONF
- bind/mount points
- permissions
- overlayfs
- config file must be root owned
- controls what user can/not do
- dis/allow different devices
Customizable by the HPC Admin
SINGULARITY.CONF
- bind/mount points
- permissions
- overlayfs
- config file must be root owned
- controls what user can/not do
- dis/allow different devices
- paths, session dirs all controlled
If you want to be root inside the container, you
must be root outside the container.
contained processes exit
all namespaces collapse
...leaving a cleaned system
The Singularity Command
singularity --debug run --contain sandwich.img
The Singularity Command
singularity --debug run --contain sandwich.img
<action>
The Singularity Command
singularity --debug run --contain sandwich.img
[global options]
The Singularity Command
singularity --debug run --contain sandwich.img
[command options]
The Singularity Command
singularity --debug run --contain sandwich.img
<image>
share
sandwich?
Singularity
Hub
1. Singularity, three ways
2. Singularity Hub
3. Reproducible Science
WHERE IS THE BOTTLENECK?
SINGULARITY HUB: CONTAINER REGISTRY
COLLECTIONS
COLLECTION
COLLECTION
commit
CONTAINER BUILD
CONTAINER BUILD LOG
ESTIMATED OPERATING SYSTEMS
How does it work? :>
1. Add bootstrap specification file to Github repo base
1. Add bootstrap specification file to Github repo base
2. “Turn build on” in Singularity Hub
1. Add bootstrap specification file to Github repo base
2. “Turn build on” in Singularity Hub
3. Commits are built automatically on Google Cloud
1. Add bootstrap specification file to Github repo base
2. “Turn build on” in Singularity Hub
3. Commits are built automatically on Google Cloud
4. Accessible via command line
1. Singularity, three ways
2. Singularity Hub
3. Reproducible Science
1. Singularity, three ways
2. Singularity Hub
3. Reproducible Science
What happens next?
container...
predictions!
Change in the movement of information
Change in the movement of information
bits
Change in the movement of information
bits
file
Change in the movement of information
bits
file
folder
Change in the movement of information
bits
file
folder
Change in the movement of information
bits
file
folder
software
Change in the movement of information
bits
file
folder
software
Change in the movement of information
bits
file
folder
software
apt-get install -y party-animal
pip install party-animal
I’m missing dependencies.
I didn’t get the same result
What version of Python did you use?
It doesn’t compile on my system!
The unit of information isn’t good enough.
Change in the movement of information
bits
file
folder
software
os
Change in the movement of information
bits
file
folder
software
osos
containers
container...
predictions!
Change in the movement of information: put stuff in containers
Too many containers!
Which containers do genomic analysis?
Which containers do genomic analysis?
Which containers do it best? How do we define best?
Which containers do genomic analysis?
Which containers do it best? How do we define best?
Which ones have the most varying result? Why?
I don’t know how to measure that.
Our representation of containers isn’t good enough
Expectation:
This container makes the
perfect sandwich!
Reality:
container...
predictions!
Change in the movement of information: put stuff in containers
Change in the representation of containers: reproducibility metrics
1. Singularity, three ways
2. Singularity Hub
3. Reproducibility Metrics
How is container C1
similar to container C2
?
C1
C2
C1
C2
Intersection of sets C1
and C2
C1
C2
Total sum of files in C1
and C2
C1
C2
Is container C1
similar to container C2
?
C1
C2
Is container C1
similar to container C2
?
It depends who is asking
SONIC MADE IT THROUGH
REPRODUCIBILITY LEVEL REPLICATE!
C1
Levels of Reproducibility
Identical: the exact same image file
Levels of Reproducibility
Identical: the exact same image file
Replicate: the same image built at different times
Levels of Reproducibility
Identical: the exact same image file
Replicate: the same image built at different times
Base: the core os is estimated to be the same
Levels of Reproducibility
Identical: the exact same image file
Replicate: the same image built at different times
Base: the core os is estimated to be the same
Runscript: the content of the runscript is the same
Environment: the environments are the same
Labels: the container labels are the same
What is a level of reproducibility?
A set of files between containers that are compared via content hash
Intersection of sets C1
and C2
C1
C2
Total sum of files in C1
and C2
C1
C2
Reproducibility
Assessment Algorithm
“Hash Content Comparison”
Intersection of sets C1
and C2
Total sum of files in C1
and C2
Do the levels behave as I would expect?
Compare an image to itself
Do the levels behave as I would expect?
Compare an image to itself
- At step 1, start with the image compared to its full self
Do the levels behave as I would expect?
Compare an image to itself
- At step 1, start with the image compared to its full self
- Subtract one file from the second image, recalculate, until empty
Do the levels behave as I would expect?
Compare an image to itself
- At step 1, start with the image compared to its full self
- Subtract one file from the second image, recalculate, until empty
a. Remove more recent files first
Do the levels behave as I would expect?
Compare an image to itself
- At step 1, start with the image compared to its full self
- Subtract one file from the second image, recalculate, until empty
a. Remove more recent files first
Do this across all levels
Reproducibility Metrics: Takeaways
1. “Operating system science” needs to be a thing
Reproducibility Metrics: Takeaways
1. “Operating system science” needs to be a thing
2. Definitions of levels important
Reproducibility Metrics: Takeaways
1. “Operating system science” needs to be a thing
2. Definitions of levels important
3. I learned things about the OS just looking at the graphs
Reproducibility Metrics: Takeaways
1. “Operating system science” needs to be a thing
2. Definitions of levels important
3. I learned things about the OS just looking at the graphs
4. A way to derive features for an operating system?
thinking
about
the
future
How can containers support reproducible science?
How can the HPC community support containers?
container sharing
integration
incentives
container sharing
integration
incentives
This is not optimized for scaled building!
Singularity Registry
Singularity Registry
a local registry for a cluster resource
Challenges
- Most resources can’t support web download links
- How to share images? manifests?
- Storage (for most) is a file system
- No Docker for orchestration
- Permissions?
- Integration with Singularity Hub?
- Management?
storage
- file system
storage
- file system
builders
- job queue
- build node
- virtual machines
storage
- file system
builders
- job queue
- build node
- virtual machines
manager
- singularity image
- command line
- web interface
/usr/local/libexec/sregistry
├── cli
│ ├── help.database
│ ├── help.init
│ ├── sregistry.build
│ ├── sregistry.database
│ ├── sregistry.help
│ └── sregistry.init
│
├── helpers
│ ├── args
│ ├── update
│ └── utils
└── singularity.registry
sudo ./install.sh --prefix=/usr/local
/opt/shub/
builder/
templates/
recipes/
.git/
.travis.yml
storage/
containers/
sudo sregistry init --base /opt/shub
/opt/shub/builder
recipes/
.git/
tensorflow/
tensorflow/
Singularity
Singularity.gpu
/opt/shub/builder
recipes/
.git/
tensorflow/
tensorflow/ ← collection tensorflow/tensorflow
Singularity
Singularity.gpu
/opt/shub/builder
recipes/
.git/
tensorflow/
tensorflow/ ← collection tensorflow/tensorflow
Singularity shub://tacc/tensorflow/tensorflow
Singularity.gpu
/opt/shub/builder
recipes/
.git/
tensorflow/
tensorflow/ ← collection tensorflow/tensorflow
Singularity shub://tacc/tensorflow/tensorflow
Singularity.gpu
registry
/opt/shub/builder
recipes/
.git/
tensorflow/
tensorflow/ ← collection tensorflow/tensorflow
Singularity shub://tacc/tensorflow/tensorflow
Singularity.gpu
container name
/opt/shub/builder
recipes/
.git/
tensorflow/
tensorflow/ ← collection tensorflow/tensorflow
Singularity shub://tacc/tensorflow/tensorflow:tag
Singularity.gpu
tag
registry:
container collection corresponds to a folder in repository
registry:
container collection corresponds to a folder in repository
Individual user:
container collection corresponds to an entire Github repo
registry:
container collection corresponds to a folder in repository
Individual user:
container collection corresponds to an entire GIthub repo
both
build multiple tags for one collection from within same repository
Connect to Singularity Hub
Connect to Singularity Hub
...permission to build, granted!
...build away, Merrill.
1. If setup to build locally
Launches local build job
2. If setup to only build on Singularity Hub
Pings Singularity Hub
3. Both
Launches local build job
Successful builds ping Singularity Hub
1. run a build command
sudo sregistry build tensorflow
sudo sregistry build tensorflow/tensorflow
sudo sregistry build tensorflow/tensorflow:gpu
/opt/shub/builder
templates/
recipes/
.git/
tensorflow/
tensorflow/
Singularity
Singularity.gpu
container sharing
integration
incentives
container sharing
integration
incentives
THE CLOUD HPC RESOURCE
How can we work together?
Local
Development
Environment
Local
Development
Environment
Local
Development
Environment
Testing
Local
Development
Environment
Testing
Deploy and
Share
Run!Local
Development
Environment
Testing
Deploy and
Share
Run!
Run!
Run!Local
Development
Environment
Testing
Deploy and
Share
Run!
Run!
Result
Run!
Creation
Testing Publication
Run!
Run!
Reproduce
Run!
Creation
Testing Publication
Run!
Run!
Reproduce
How can we work together?
How can we work together?
Just try.
Thank you Google!
container sharing
integration
incentives
Academic Layer Cake
scientists
Academic Layer Cake
scientists
staff
scientist
“I need a custom tool”
scientist
“I need a custom tool”
staff
“I offer resources”
scientist
“I need a custom tool”
staff
“I offer resources”
scientist
“I’ll do it myself”
scientist
“I need a custom tool”
staff
“I offer resources”
scientist
“I’ll do it myself”
scientist
“I need a custom tool”
staff
“I offer resources”
scientist
“I’ll do it myself”
Why can’t we do better?
Academic Layer Cake
scientists
staff
software engineers
Lessons from Software Engineering
1. Continuous Integration (testing)
2. Version Control
3. Documentation
4. Logging, Handling Errors
5. Databases, Organization, and Storage
We need incentives and support for
Research Software Engineers
scientist
“I need a custom tool”
scientist
“I need a custom tool”
software engineer
“I can help with that”
containers-ftw
containers-ftw
crowdsourcing science with
competitive containers
containers-ftw
crowdsourcing science with
competitive containers
- package your challenge
containers-ftw
crowdsourcing science with
competitive containers
- package your challenge
- define metric of success
containers-ftw
crowdsourcing science with
competitive containers
- package your challenge
- define metric of success
- share it
containers-ftw
crowdsourcing science with
competitive containers
- package your challenge
- define metric of success
- share it
- ...may the best container win!
SHOW ME WHAT YOU GOT
SHOW ME WHAT YOU GOT
- Dave Godlove, NIH
- Stefan Kombrink
https://singularity-hub.org/demos/6/
1. Singularity, three ways
2. Singularity Hub
3. Reproducible Science
[ Singularity ]
[ Singularity ]
reproducible tools
[ Singularity ]
reproducible tools
are a group effort
[ Singularity ]
reproducible tools
are a group effort
grow out of need
[ Singularity Hub ]
[ Singularity Hub ]
reproducible practices
[ Singularity Hub ]
reproducible practices
sharing containers, data, software
[ Singularity Hub ]
reproducible practices
sharing containers, data, software
working across lines
[ Reproducibility Metrics ]
[ Reproducibility Metrics ]
representation for understanding
[ Reproducibility Metrics ]
representation for understanding
container transparency
[ Incentives ]
[ Incentives ]
Research software engineering
Build for how you want the world to be
Party on, party dinosaur
[ the perfect sandwich ]
HPC Admin, Developers, and Scientists
http://singularityware.github.io
https://www.singularity-hub.org
https://www.github.com/singularityhub
Got messy code?
Need to use a node?
...jokes, help, for free!
#SRCC
Only the best
for your analysis mess
SRCC
vsochat@stanford.edu

More Related Content

Similar to PEARC17: Reproducibility and Containers: The Perfect Sandwich

The Scientific Filesystem
The Scientific FilesystemThe Scientific Filesystem
The Scientific FilesystemVanessa S
 
JavaDay Kiev 2017 - Integration testing with TestContainers
JavaDay Kiev 2017 - Integration testing with TestContainersJavaDay Kiev 2017 - Integration testing with TestContainers
JavaDay Kiev 2017 - Integration testing with TestContainersAnton Arhipov
 
Release management with NuGet/Chocolatey/JIRA
Release management with NuGet/Chocolatey/JIRARelease management with NuGet/Chocolatey/JIRA
Release management with NuGet/Chocolatey/JIRAYaroslav Serhieiev
 
Docker: automation for the rest of us
Docker: automation for the rest of usDocker: automation for the rest of us
Docker: automation for the rest of usJérôme Petazzoni
 
There is no container - Ori Pekelman
There is no container - Ori PekelmanThere is no container - Ori Pekelman
There is no container - Ori PekelmanParis Container Day
 
Testing with Docker
Testing with DockerTesting with Docker
Testing with Dockertoffermann
 
Test driven infrastructure development (2 - puppetconf 2013 edition)
Test driven infrastructure development (2 - puppetconf 2013 edition)Test driven infrastructure development (2 - puppetconf 2013 edition)
Test driven infrastructure development (2 - puppetconf 2013 edition)Tomas Doran
 
Containers for Science and High-Performance Computing
Containers for Science and High-Performance ComputingContainers for Science and High-Performance Computing
Containers for Science and High-Performance ComputingDmitry Spodarets
 
Prototypes and Drupal
Prototypes and DrupalPrototypes and Drupal
Prototypes and DrupalFFW
 
Towards a responsive business - DevOps MeetUp Melbourne 2013
Towards a responsive business - DevOps MeetUp Melbourne 2013Towards a responsive business - DevOps MeetUp Melbourne 2013
Towards a responsive business - DevOps MeetUp Melbourne 2013Nigel Fernandes
 
My Road To Test Driven Development
My Road To Test Driven DevelopmentMy Road To Test Driven Development
My Road To Test Driven DevelopmentGerard Sychay
 
So. many. vulnerabilities. Why are containers such a mess and what to do abou...
So. many. vulnerabilities. Why are containers such a mess and what to do abou...So. many. vulnerabilities. Why are containers such a mess and what to do abou...
So. many. vulnerabilities. Why are containers such a mess and what to do abou...Eric Smalling
 
Managing-Splunk-with-Puppet 31-January-2022.pdf
Managing-Splunk-with-Puppet 31-January-2022.pdfManaging-Splunk-with-Puppet 31-January-2022.pdf
Managing-Splunk-with-Puppet 31-January-2022.pdfssusera181ef
 
Docker Inside/Out: The 'Real' Real- World World of Stacking Containers in pro...
Docker Inside/Out: The 'Real' Real- World World of Stacking Containers in pro...Docker Inside/Out: The 'Real' Real- World World of Stacking Containers in pro...
Docker Inside/Out: The 'Real' Real- World World of Stacking Containers in pro...Sonatype
 
Puppet for dummies - ZendCon 2011 Edition
Puppet for dummies - ZendCon 2011 EditionPuppet for dummies - ZendCon 2011 Edition
Puppet for dummies - ZendCon 2011 EditionJoshua Thijssen
 

Similar to PEARC17: Reproducibility and Containers: The Perfect Sandwich (20)

The Scientific Filesystem
The Scientific FilesystemThe Scientific Filesystem
The Scientific Filesystem
 
Automate Yo' Self
Automate Yo' SelfAutomate Yo' Self
Automate Yo' Self
 
JavaDay Kiev 2017 - Integration testing with TestContainers
JavaDay Kiev 2017 - Integration testing with TestContainersJavaDay Kiev 2017 - Integration testing with TestContainers
JavaDay Kiev 2017 - Integration testing with TestContainers
 
Release management with NuGet/Chocolatey/JIRA
Release management with NuGet/Chocolatey/JIRARelease management with NuGet/Chocolatey/JIRA
Release management with NuGet/Chocolatey/JIRA
 
Is Python still production ready ? Ludovic Gasc
Is Python still production ready ? Ludovic GascIs Python still production ready ? Ludovic Gasc
Is Python still production ready ? Ludovic Gasc
 
Docker: automation for the rest of us
Docker: automation for the rest of usDocker: automation for the rest of us
Docker: automation for the rest of us
 
Tiad - Docker: Automation for the rest of us
Tiad - Docker: Automation for the rest of usTiad - Docker: Automation for the rest of us
Tiad - Docker: Automation for the rest of us
 
There is no container - Ori Pekelman
There is no container - Ori PekelmanThere is no container - Ori Pekelman
There is no container - Ori Pekelman
 
Testing with Docker
Testing with DockerTesting with Docker
Testing with Docker
 
Test driven infrastructure development (2 - puppetconf 2013 edition)
Test driven infrastructure development (2 - puppetconf 2013 edition)Test driven infrastructure development (2 - puppetconf 2013 edition)
Test driven infrastructure development (2 - puppetconf 2013 edition)
 
Containers for Science and High-Performance Computing
Containers for Science and High-Performance ComputingContainers for Science and High-Performance Computing
Containers for Science and High-Performance Computing
 
Kubernetes 101 Workshop
Kubernetes 101 WorkshopKubernetes 101 Workshop
Kubernetes 101 Workshop
 
Prototypes and Drupal
Prototypes and DrupalPrototypes and Drupal
Prototypes and Drupal
 
What lies beneath
What lies beneathWhat lies beneath
What lies beneath
 
Towards a responsive business - DevOps MeetUp Melbourne 2013
Towards a responsive business - DevOps MeetUp Melbourne 2013Towards a responsive business - DevOps MeetUp Melbourne 2013
Towards a responsive business - DevOps MeetUp Melbourne 2013
 
My Road To Test Driven Development
My Road To Test Driven DevelopmentMy Road To Test Driven Development
My Road To Test Driven Development
 
So. many. vulnerabilities. Why are containers such a mess and what to do abou...
So. many. vulnerabilities. Why are containers such a mess and what to do abou...So. many. vulnerabilities. Why are containers such a mess and what to do abou...
So. many. vulnerabilities. Why are containers such a mess and what to do abou...
 
Managing-Splunk-with-Puppet 31-January-2022.pdf
Managing-Splunk-with-Puppet 31-January-2022.pdfManaging-Splunk-with-Puppet 31-January-2022.pdf
Managing-Splunk-with-Puppet 31-January-2022.pdf
 
Docker Inside/Out: The 'Real' Real- World World of Stacking Containers in pro...
Docker Inside/Out: The 'Real' Real- World World of Stacking Containers in pro...Docker Inside/Out: The 'Real' Real- World World of Stacking Containers in pro...
Docker Inside/Out: The 'Real' Real- World World of Stacking Containers in pro...
 
Puppet for dummies - ZendCon 2011 Edition
Puppet for dummies - ZendCon 2011 EditionPuppet for dummies - ZendCon 2011 Edition
Puppet for dummies - ZendCon 2011 Edition
 

More from Vanessa S

The Stories We Tell Ourselves
The Stories We Tell OurselvesThe Stories We Tell Ourselves
The Stories We Tell OurselvesVanessa S
 
Research Software Engineering at Stanford University
Research Software Engineering at Stanford UniversityResearch Software Engineering at Stanford University
Research Software Engineering at Stanford UniversityVanessa S
 
Research Software Engineering at Stanford
Research Software Engineering at StanfordResearch Software Engineering at Stanford
Research Software Engineering at StanfordVanessa S
 
Adding An Operator to Airflow: A Contributor Overflow Exception
Adding An Operator to Airflow: A Contributor Overflow ExceptionAdding An Operator to Airflow: A Contributor Overflow Exception
Adding An Operator to Airflow: A Contributor Overflow ExceptionVanessa S
 
The Research Software Encyclopedia
The Research Software EncyclopediaThe Research Software Encyclopedia
The Research Software EncyclopediaVanessa S
 
Laboratory of NeuroGenetics QA (8/2010)
Laboratory of NeuroGenetics QA (8/2010)Laboratory of NeuroGenetics QA (8/2010)
Laboratory of NeuroGenetics QA (8/2010)Vanessa S
 
Building Tools for Neuroimaging
Building Tools for NeuroimagingBuilding Tools for Neuroimaging
Building Tools for NeuroimagingVanessa S
 
Brain Maps like Mine
Brain Maps like MineBrain Maps like Mine
Brain Maps like MineVanessa S
 
Qualifying Exam Presentation
Qualifying Exam PresentationQualifying Exam Presentation
Qualifying Exam PresentationVanessa S
 
Pre-Proposal Presentation
Pre-Proposal PresentationPre-Proposal Presentation
Pre-Proposal PresentationVanessa S
 
Independent component analysis
Independent component analysisIndependent component analysis
Independent component analysisVanessa S
 
Subnetworks in Schizophrenia, fMRI
Subnetworks in Schizophrenia, fMRISubnetworks in Schizophrenia, fMRI
Subnetworks in Schizophrenia, fMRIVanessa S
 
Research in Progress April 2014
Research in Progress April 2014Research in Progress April 2014
Research in Progress April 2014Vanessa S
 
Research in Progress Presentation
Research in Progress PresentationResearch in Progress Presentation
Research in Progress PresentationVanessa S
 
Introduction to Machine Learning Lecture
Introduction to Machine Learning LectureIntroduction to Machine Learning Lecture
Introduction to Machine Learning LectureVanessa S
 
Introduction to Neuroimaging Informatics
Introduction to Neuroimaging InformaticsIntroduction to Neuroimaging Informatics
Introduction to Neuroimaging InformaticsVanessa S
 
ISIS Clustering Functional Connectivity
ISIS Clustering Functional ConnectivityISIS Clustering Functional Connectivity
ISIS Clustering Functional ConnectivityVanessa S
 
Classification of Functional Networks Poster
Classification of Functional Networks PosterClassification of Functional Networks Poster
Classification of Functional Networks PosterVanessa S
 
Quals Practice Presentation
Quals Practice PresentationQuals Practice Presentation
Quals Practice PresentationVanessa S
 
Neuroimaging Introduction
Neuroimaging IntroductionNeuroimaging Introduction
Neuroimaging IntroductionVanessa S
 

More from Vanessa S (20)

The Stories We Tell Ourselves
The Stories We Tell OurselvesThe Stories We Tell Ourselves
The Stories We Tell Ourselves
 
Research Software Engineering at Stanford University
Research Software Engineering at Stanford UniversityResearch Software Engineering at Stanford University
Research Software Engineering at Stanford University
 
Research Software Engineering at Stanford
Research Software Engineering at StanfordResearch Software Engineering at Stanford
Research Software Engineering at Stanford
 
Adding An Operator to Airflow: A Contributor Overflow Exception
Adding An Operator to Airflow: A Contributor Overflow ExceptionAdding An Operator to Airflow: A Contributor Overflow Exception
Adding An Operator to Airflow: A Contributor Overflow Exception
 
The Research Software Encyclopedia
The Research Software EncyclopediaThe Research Software Encyclopedia
The Research Software Encyclopedia
 
Laboratory of NeuroGenetics QA (8/2010)
Laboratory of NeuroGenetics QA (8/2010)Laboratory of NeuroGenetics QA (8/2010)
Laboratory of NeuroGenetics QA (8/2010)
 
Building Tools for Neuroimaging
Building Tools for NeuroimagingBuilding Tools for Neuroimaging
Building Tools for Neuroimaging
 
Brain Maps like Mine
Brain Maps like MineBrain Maps like Mine
Brain Maps like Mine
 
Qualifying Exam Presentation
Qualifying Exam PresentationQualifying Exam Presentation
Qualifying Exam Presentation
 
Pre-Proposal Presentation
Pre-Proposal PresentationPre-Proposal Presentation
Pre-Proposal Presentation
 
Independent component analysis
Independent component analysisIndependent component analysis
Independent component analysis
 
Subnetworks in Schizophrenia, fMRI
Subnetworks in Schizophrenia, fMRISubnetworks in Schizophrenia, fMRI
Subnetworks in Schizophrenia, fMRI
 
Research in Progress April 2014
Research in Progress April 2014Research in Progress April 2014
Research in Progress April 2014
 
Research in Progress Presentation
Research in Progress PresentationResearch in Progress Presentation
Research in Progress Presentation
 
Introduction to Machine Learning Lecture
Introduction to Machine Learning LectureIntroduction to Machine Learning Lecture
Introduction to Machine Learning Lecture
 
Introduction to Neuroimaging Informatics
Introduction to Neuroimaging InformaticsIntroduction to Neuroimaging Informatics
Introduction to Neuroimaging Informatics
 
ISIS Clustering Functional Connectivity
ISIS Clustering Functional ConnectivityISIS Clustering Functional Connectivity
ISIS Clustering Functional Connectivity
 
Classification of Functional Networks Poster
Classification of Functional Networks PosterClassification of Functional Networks Poster
Classification of Functional Networks Poster
 
Quals Practice Presentation
Quals Practice PresentationQuals Practice Presentation
Quals Practice Presentation
 
Neuroimaging Introduction
Neuroimaging IntroductionNeuroimaging Introduction
Neuroimaging Introduction
 

Recently uploaded

The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructureitnewsafrica
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkPixlogix Infotech
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesManik S Magar
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxfnnc6jmgwh
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesBernd Ruecker
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 

Recently uploaded (20)

The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App Framework
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architectures
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 

PEARC17: Reproducibility and Containers: The Perfect Sandwich