LSST software stack and deployment on other architectures. William O Mullane for Andy Connolly with material from Owen Boberg

Similar documents
[Docker] Containerization

Lecture 2: Data in Linguistics, Git/GitHub, Jupyter Notebook. LING 1340/2340: Data Science for Linguists Na-Rae Han

Introduction to Containers

DEPLOYMENT MADE EASY!

Travis Cardwell Technical Meeting

Software Development I

USING DOCKER FOR MXCUBE DEVELOPMENT AT MAX IV

Lecture 6: more pandas (and git/github) LING 1340/2340: Data Science for Linguists Na-Rae Han

Docker for HPC? Yes, Singularity! Josef Hrabal

Lecture 3: Processing Language Data, Git/GitHub. LING 1340/2340: Data Science for Linguists Na-Rae Han

Visualizing Git Workflows. A visual guide to 539 workflows

Index. Bessel function, 51 Big data, 1. Cloud-based version-control system, 226 Containerization, 30 application, 32 virtualize processes, 30 31

Docker 101 Workshop. Eric Smalling - Solution Architect, Docker

Lab 08. Command Line and Git

Getting Started With Containers

Think Small to Scale Big

Developing and Testing Java Microservices on Docker. Todd Fasullo Dir. Engineering

Docker for People. A brief and fairly painless introduction to Docker. Friday, November 17 th 11:00-11:45

CONTAINERIZING JOBS ON THE ACCRE CLUSTER WITH SINGULARITY

Running Splunk Enterprise within Docker

Singularity: Containers for High-Performance Computing. Grigory Shamov Nov 21, 2017

Shifter at CSCS Docker Containers for HPC

Jenkins Inside Google

Presented By: Gregory M. Kurtzer HPC Systems Architect Lawrence Berkeley National Laboratory CONTAINERS IN HPC WITH SINGULARITY

Continuous integration & continuous delivery. COSC345 Software Engineering

Getting the files for the first time...2. Making Changes, Commiting them and Pull Requests:...5. Update your repository from the upstream master...

Created by: Nicolas Melillo 4/2/2017 Elastic Beanstalk Free Tier Deployment Instructions 2017

Version Control with Git ME 461 Fall 2018

Verteego VDS Documentation

Faculté Polytechnique

Jenkins: A complete solution. From Continuous Integration to Continuous Delivery For HSBC

Installing and Using Docker Toolbox for Mac OSX and Windows

Overview. 1. Install git and create a Github account 2. What is git? 3. How does git work? 4. What is GitHub? 5. Quick example using git and GitHub

Tips on how to set up a GitHub account:

Version control system (VCS)

A Hands on Introduction to Docker

There Should be One Obvious Way to Bring Python into Production. Sebastian Neubauer

How to version control like a pro: a roadmap to your reproducible & collaborative research

API RI. Application Programming Interface Reference Implementation. Policies and Procedures Discussion

Azure DevOps. Randy Pagels Intelligent Cloud Technical Specialist Great Lakes Region

The Old World. Have you ever had to collaborate on a project by

About the Tutorial. Audience. Prerequisites. Copyright & Disclaimer. Gerrit

Managing Network Configurations with Git and GitLab

VNS3 3.5 Container System Add-Ons

Containerizing GPU Applications with Docker for Scaling to the Cloud

Introduction to Containers. Martin Čuma Center for High Performance Computing University of Utah

ISLET: Jon Schipp, AIDE jonschipp.com. An Attempt to Improve Linux-based Software Training

High Performance Containers. Convergence of Hyperscale, Big Data and Big Compute

Hortonworks DataFlow

SUG Breakout Session: OSC OnDemand App Development

Deployability. of Python. web applications

Introduction to Git and Github

G E T T I N G S TA R T E D W I T H G I T

Facilitating Collaborative Analysis in SWAN

DEVOPS COURSE CONTENT

RENKU - Reproduce, Reuse, Recycle Research. Rok Roškar and the SDSC Renku team

This tutorial provides a basic understanding of the infrastructure and fundamental concepts of managing an infrastructure using Chef.

Engineering Robust Server Software

Deployment Patterns using Docker and Chef

Introduction to Monte Python

dj-libcloud Documentation

Container System Overview

Agenda. - Final Project Info. - All things Git. - Make sure to come to lab for Python next week

CONTINUOUS INTEGRATION; TIPS & TRICKS

AMath 483/583 Lecture 2

Improving Your Life With Git

Con. Continuous Integration

AMath 483/583 Lecture 2. Notes: Notes: Homework #1. Class Virtual Machine. Notes: Outline:

Human-Computer Interaction Design

BEST PRACTICES FOR DOCKER

Geant4 on Azure using Docker containers

Who is Docker and how he can help us? Heino Talvik

UP! TO DOCKER PAAS. Ming

Django MFA Documentation

Bitte decken Sie die schraffierte Fläche mit einem Bild ab. Please cover the shaded area with a picture. (24,4 x 7,6 cm)

INTRODUCTION TO NEXTFLOW

Python based Data Science on Cray Platforms Rob Vesse, Alex Heye, Mike Ringenburg - Cray Inc C O M P U T E S T O R E A N A L Y Z E

Reproducibility and Extensibility in Scientific Research. Jessica Forde

2/9/2013 LAB OUTLINE INTRODUCTION TO VCS WHY VERSION CONTROL SYSTEM(VCS)? II SENG 371 SOFTWARE EVOLUTION VERSION CONTROL SYSTEMS

docker & HEP: containerization of applications for development, distribution and preservation

Scientific Software Development with Eclipse

Handel-CodePipeline Documentation

Investigating Containers for Future Services and User Application Support

" Qué me estás container?" Docker for dummies

4 Effective Tools for Docker Monitoring. By Ranvijay Jamwal

Lab 01 How to Survive & Introduction to Git. Web Programming DataLab, CS, NTHU

Introduction to containers

Linux System Management with Puppet, Gitlab, and R10k. Scott Nolin, SSEC Technical Computing 22 June 2017

We are ready to serve Latest Testing Trends, Are you ready to learn?? New Batches Info

Git & Github Fundamental by Rajesh Kumar.

Windows. Everywhere else

CS 470 Spring Virtualization and Cloud Computing. Mike Lam, Professor. Content taken from the following:

Programming for Data Science Syllabus

Using GitHub and SourceTree to work with DITA TC repositories

Intro to Linux & Command Line

Tutorial: Getting Started with Git. Introduction to version control Benefits of using Git Basic commands Workflow

Working in Teams CS 520 Theory and Practice of Software Engineering Fall 2018

Singularity: container formats

Having Fun with Social Coding. Sean Handley. February 25, 2010

GETTING STARTED WITH. Michael Lessard Senior Solutions Architect June 2017

Transcription:

LSST software stack and deployment on other architectures William O Mullane for Andy Connolly with material from Owen Boberg

Containers and Docker Packaged piece of software with complete file system it needs to run! Portable unit - standard shape and connectors https://docker.com Boots in fraction of a second Lightweight - 10-100 times containers per machine w.r.t to VMs. Docker leading the pack now for containers - others exist.. Solaris Zones FreeBSD Jails 2

Docker Images Docker Image: - Built from an easily readable/writeable Dockerfile - Install commands you would run in your terminal (apt-get, yum,pip,conda) can almost be directly copied into a Dockerfile. - This includes the instructions for LSST pipelines. - Or pulled from the Docker hub repository - Images on Docker hub can, and often do, serve as the base image for applications you build. Docker allows you to run standalone applications in a sandbox environment Docker Container: - A running instance of a Docker image - You can think of it as a lightweight VM - Only uses the resources you give it 3

Docker - Pros Completely isolated environment Need more than one version of python, just make different images/containers. Truly isolate the LSST stack from your native environment. Get access to software not available on your host OS. Example: Macs can not currently run OpSim A Mac running OpSim through Docker can, however. Reproducibility: Easily share the exact environment used to produce a result Avoid the statement, Well it worked on my machine. Collaboration: Docker Hub makes it easy to share images Quickly get people using LSST software while at workshops No time lost with people trying to update their version of the stack Just install Docker and pull the image for the software 4

Docker Cons There is a small learning curve to Docker Have to learn how to mount volumes so you do not lose data when a container is removed Lose software changes to a container if they are not committed Security: Careful steps need to be taken when running Docker on a shared machine Only privileged users should have access to Docker commands See: https://github.com/docker/labs/tree/master/security Some high performance computers centers (HPCs) will not install Docker. Alternatives: shifter (NCSA), singularity 5

For LSST DM Stack... The major factors are reliability and reproducibility Code from build and test environment Directly to deployment Including in the JupyterHub (used in the tutorial) With some work other systems like Spark/Dask can be accommodated You can get the stack running on a machine with docker using 6

Any Stack release with Docker https://hub.docker.com/r/lsstsqre/centos/tags/ stack-lsst_distrib-v15_0 Unable to find image >docker run -ti lsstsqre/centos:7- 'lsstsqre/centos:7-stacklsst_distrib-v15_0' locally >source /opt/lsst/software/stack/loadlsst. bash >setup lsst_distrib. 7

LSST DM Stack builds GCE Google Compute Engine -yes we pay for it. TLS Transport Layer Security handles the SSL S3sync sync a filesystem to an S3 bucket Jenkins master on AWS, the agents on Google, and we stuff the results in an AWS S3 bucket 8

How a release is made 9

File structure for releases 1 0

Dockerfile The commands are easy to read and follow Commands in PINK are Docker specific commands. The base image is pulled FROM Docker hub Installing additional software on top of the base image is done here using apt-get and pip. https://hub.docker.com/r/oboberg/astroml/

Docker container Im in a Docker container, now what? You might have these questions: How do I get to a command line? Where do I write my code? Where do I put my data? Can I use jupyter lab and/or notebooks? How do I save code output and edits?

Docker container (MAF example) Running the Metric Analysis Framework (MAF) docker run -it \ -v ${PWD}/results:/home/maf/docmaf/maf_local \ -v ${PWD}/my_repos:/home/maf/docmaf/lsst_repos \ -p 8888:8888 \ oboberg/maf:180525 How do I get to a command line? Where do I write my code? Where do I put my data? Can I use jupyter lab and/or notebooks? How do I save code output and edits? 1 3

Docker container (MAF example) Running the Metric Analysis Framework (MAF) docker run -it \ -v ${PWD}/results:/home/maf/docmaf/maf_local \ -v ${PWD}/my_repos:/home/maf/docmaf/lsst_repos \ -p 8888:8888 \ oboberg/maf:180525 How do I get to a command line? docker run -it Starts the container in an interactive mode. Gives you access to shell inside of the container. 1 4

Docker container (MAF example) Running the Metric Analysis Framework (MAF) docker run -it \ -v ${PWD}/results:/home/maf/docmaf/maf_local \ -v ${PWD}/my_repos:/home/maf/docmaf/lsst_repos \ -p 8888:8888 \ oboberg/maf:180525 Where do I put my data? -v ${PWD}/results:/home/maf/docmaf/maf_local This option mounts ${PWD}/results on your computer inside the container at /home/maf/docmaf/maf_local Any new data put in ${PWD}/results on your computer will be available to use in the Docker container 1 5

Docker container (MAF example) Running the Metric Analysis Framework (MAF) docker run -it \ -v ${PWD}/results:/home/maf/docmaf/maf_local \ -v ${PWD}/my_repos:/home/maf/docmaf/lsst_repos \ -p 8888:8888 \ oboberg/maf:180525 Where do I write my code? -v ${PWD}/my_repos:/home/maf/docmaf/lsst_repos Mount ${PWD}/my_repos on your computer inside the container at the path /home/maf/docmaf/lsst_repos Edit any code in ${PWD}/my_repos as you normally would on a local editor and the updated code will automatically available in the container Switching git branches in ${PWD}/my_repos will also switch branches in the container 1 6

Docker container (MAF example) Running the Metric Analysis Framework (MAF) A note about LSST software -v ${PWD}/my_repos:/home/maf/docmaf/lsst_repos Once in the container you can eups declare and setup packages to run off of a GitHub repos. Example: sims_maf is cloned into ${PWD}/my_repos on my local host Once in the container go to /home/maf/docmaf/lsst_repos/sims_maf eups declare sims_maf -r. -t $USER ($USER is docmaf in this container) setup sims_maf -t $USER scons The container will now be running MAF off of the GitHub repo that is stored (and edited) locally, but mounted in the container. See https://pipelines.lsst.io/install/docker.html#how-to-develop-packagesinside-docker-containers for more info. 1 7

Docker container (MAF example) Running the Metric Analysis Framework (MAF) docker run -it \ -v ${PWD}/results:/home/maf/docmaf/maf_local \ -v ${PWD}/my_repos:/home/maf/docmaf/lsst_repos \ -p 8888:8888 \ oboberg/maf:180525 Can I use jupyter lab and/or notebooks? -p 8888:8888 Read as host_port:container_port Maps port 8888 of your host to port 8888 in the container Command in container: jupyter lab ip=0.0.0.0 no-browser Copy and paste the url you are given into a local browser and start making notebooks. This does of course require jupyter to be installed in the container, which is the case for oboberg/maf:180525 image. 1 8

Docker container (MAF example) Running the Metric Analysis Framework (MAF) docker run -it \ -v ${PWD}/results:/home/maf/docmaf/maf_local \ -v ${PWD}/my_repos:/home/maf/docmaf/lsst_repos \ -p 8888:8888 \ oboberg/maf:180525 How do I save code output and edits? -v ${PWD}/results:/home/maf/docmaf/maf_local -v ${PWD}/my_repos:/home/maf/docmaf/lsst_repos When in the container, anything created, edited, or removed in /home/maf/docmaf/maf_local or /home/maf/docmaf/lsst_repos will have the same effect for content in ${PWD}/results and ${PWD}/my_repos, respectively. Be careful what you mount! There are security features to stop you from mounting your root directory 1 9

Paper Goal: evaluate existing Big Data systems on real-world scientific image analysis workflows & point the way forward for database & systems researchers. Preprint available at https://arxiv.org/abs/1612.02485