Skip to content

Schedule

Basics

Dates: May 12th and 13th 2022

Time: 09:00AM–13:00PM US Pacific Daylight Time (GMT-7)

Location: Virtual Zoom

Day 1 - Introduction to Docker

Activities
Time (PDT) Activity Instructor Outcome
09:00 Welcome All
09:05 Overview of Website Michele Code of Conduct
09:10 Why use Containers? Michael What containers are used for in science
09:25 Start CodeSpace Tyson Using Dev Environments to create containers
09:30 Docker Commands and Execution Carlos Basic command line use of Docker
09:55 Break
10:00 Docker Commands and Execution Carlos & Tyson Basic command line use of Docker
10:55 Break
11:00 Managing Docker and Data Michele Volumes and Interactive Use inside containers
11:55 Break
12:00 Managing Docker and Data Michele & Tyson
12:55 Conclude for the day All push changes to your GitHub

Content:

  • Introduction to Docker and its uses in reproducible science
  • Launching development environments on CodeSpaces for container testing
  • Using Docker on the commandline.

Goals:

  • Introduction to containers & where to find them
  • Command line containers with CodeSpaces (optional: run locally)
  • Find and use official Docker images

Optional Homework:

  • Test other Docker container images on CodeSpaces or locally

Day 2 (2022-05-13) - Building Docker Containers

Activities
Time (PDT) Activity Instructor Notes
09:00 Welcome back All
09:05 Discuss previous day, answer questions
09:15 (re)start Dev Environment Tyson
09:20 Finding the right container Tyson
09:55 Break
10:00 Building Docker Images Carlos
10:55 Break
11:00 Using Docker Compose Michele
11:55 Break
12:00 Integrating your Containers into CyVerse Tyson
12:55 Conclude

Activity:

Content:

  • Use GitHub to browse for public Dockerfiles
  • Build Dockerfiles and push them to public registry
  • Use Version Control to set up automated container builds with GitHub Actions

Goals:

  • Introduction to what Dockerfiles are and what you use them for
  • Start thinking about how to modify them for your own applications

Advanced

Day 0 (2022-05-16) Optional: Container Basics

We are offering the Container Basics course in-person on the day before the Advanced Camp begins. Registered Advanced Campers, please contact us if you are interested in attending this optional pre-session.

Day 1 (2022-05-17) Continuous Automation

Dates: May 17th 2022

Time: 09:00AM–17:00PM US Pacific Daylight Time (GMT-7)

Location: Health Sciences Informatio Building Room 444

Activities

Time (PDT) Activity Instructor Outcome
09:00 Welcome All
09:05 Overview of Website Michele Code of Conduct
09:10 (re)Start CodeSpace Tyson Using Dev Environments to create containers
09:15 Building Docker images from Dockerfiles (refresh) Carlos & Michele Builder Stages, Compose
09:55 Break
10:00 Jetstream-2 Overview Tyson XSEDE & JS-2 Cloud
10:40 Break All Coffee and Snacks in Galley Kitchen
11:30 Getting Started on Jetstream-2 (Cloud) Tyson Docker w/ GPUs, X11
12:00 Lunch On your own
13:00 GitHub Actions Michele & Tyson Intro to Actions
13:55 Break
14:00 GitHub Actions Michele & Tyson CI/CD with Actions to DockerHub
14:40 Break Tea and Snacks in Galley Kitchen
15:00 Intro to Discovery Environment in CyVerse Tyson
15:55 Break
16:00 Create and Deploy Tools and Apps in CyVerse TBA
16:55 Conclude for the day All Push changes to GitHub, shut down apps

Activity:

  • Hands on exercise using Docker in CodeSpaces
  • Continuous Integration in GitHub Actions
  • Integrate containers into CyVerse Discovery Environment
  • Guest Speaker(s) TBA

Content

  • Introduction to Docker builds from OS base images and when to pursue this.
  • Introduction to Docker-Compose
  • Using containers on production servers and high performance / high throughput computing environments
  • Integration of containers and workflows onto CyVerse Discovery Environment and Jetstream-2

Goals

  • Understand use cases for building Docker images from the OS
  • Setup GitHub Actions for continuous integration of Docker builds
  • Familiarize with CyVerse data science workbench

Day 2 (2022-05-18) - Accelerate Analyses on Cloud and HPC/HTC

Activities

Time (PDT) Activity Instructor Outcome
09:00 Welcome back All
09:05 Answer questions about previous day All
09:10 TACC HPC John Fonner Running Singularity on HPC
09:55 Break
10:00 [TACC HPC continued]
10:30 Break
11:00 Open Science Grid (OSG) Mats Rynge (USC ISI)
12:00 Lunch
13:00 Start CodeSpace Tyson Using Dev Environments to create containers
13:15 Intro to Singularity CLI Tyson run Singularity commands from the shell
13:55 Break
14:00 Writing Singularity files Tyson writing Singularity and building .sif images
14:30 Building Singularity on Cloud Mats build *.sif images on SyLabs.io
14:55 Break
15:00 BYOC with Singularity (Jetstream-2)
15:55 Break
16:00 BYOC cont.
16:55 Conclude for the day All push changes to your GitHub
  • BYOC = bring your own code

Activity

Content

  • Hands on with SingularityCE.
  • Introduction to distributed computing on the OpenScienceGrid.
  • Introduction to GPU acceleration in containers with official NVIDIA Docker images.

Goals

  • Introduction to Singularity
  • Introduction to OpenScienceGrid (OSG) High Throughput Computing
  • Understand OSG applications on CyVerse
  • Know where to look for NVIDIA images
  • Define use cases for OSG and/or NVIDIA acceleration of analyses

Day 3 (2022-05-19) - Container Orchestration with Kubernetes

Activities

Time (PDT) Activity Instructor Outcome
09:00 Welcome back All
09:05 Answer questions about previous day
09:10 Introduction to Kubernetes (K8s) Tyson
09:55 Break
10:00 Working in K8s Tyson K3s on JS-2
10:45 Break
11:00 Deploying containers in K3s
12:00 Lunch
13:00 [Creating K8s configs] Tyson
13:55 Break
14:00 [Introduction to CyVerse CACAO] Edwin
14:55 Break
15:00 Zero to JupyterHub
15:55 Break
16:00 BYOC () Tyson GPU containers in JS-2
16:55 Conclude workshop All

Activity

  • Introduction to Orchestration
  • Introduction to Kubernetes
  • Hands on with Jetstream-2
  • BYOC (Build your Own Containers) Hands On time

Content

  • Managing containers with Kubernetes
  • Working on OpenStack Cloud (Jetstream-2)
  • Using Kubernetes to orchestrate containers

Goals

  • Basic container orchestration
  • Allow participants time to create their own containers with support from CyVerse data scientists and software engineers