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

Similar documents
Travis Cardwell Technical Meeting

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

Docker und IBM Digital Experience in Docker Container

Containers. Pablo F. Ordóñez. October 18, 2018

An introduction to Docker

Introduction to Containers

Portable, lightweight, & interoperable Docker containers across Red Hat solutions

Docker A FRAMEWORK FOR DATA INTENSIVE COMPUTING

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

Arup Nanda VP, Data Services Priceline.com

Speeding up the Booting Time of a Toro Appliance

A Hands on Introduction to Docker

CS-580K/480K Advanced Topics in Cloud Computing. Container III

Docker for HPC? Yes, Singularity! Josef Hrabal

Container-based virtualization: Docker

Getting Started With Containers

containerization: more than the new virtualization

Harbor Registry. VMware VMware Inc. All rights reserved.

Investigating Containers for Future Services and User Application Support

Dockerfile & docker CLI Cheat Sheet

Docker & why we should use it

Red Hat Containers Cheat Sheet

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

OS Virtualization. Linux Containers (LXC)

[Docker] Containerization

DGX-1 DOCKER USER GUIDE Josh Park Senior Solutions Architect Contents created by Jack Han Solutions Architect

Network softwarization Lab session 2: OS Virtualization Networking

Introduction to containers

Singularity: container formats

UP! TO DOCKER PAAS. Ming

Spring 2017 :: CSE 506. Introduction to. Virtual Machines. Nima Honarmand

Engineering Robust Server Software

Docker Cheat Sheet. Introduction

Midterm Presentation Schedule

Deployment Patterns using Docker and Chef

Linux Essentials Objectives Topics:

Faculté Polytechnique

Set up, Configure, and Use Docker on Local Dev Machine

Dockerfile Best Practices

Dockerized Tizen Platform

CONTAINERIZING JOBS ON THE ACCRE CLUSTER WITH SINGULARITY

Docker 101 Workshop. Eric Smalling - Solution Architect, Docker

Automating the Build Pipeline for Docker Container

Android meets Docker. Jing Li

ovirt and Docker Integration

Be smart. Think open source.

Booting a Galaxy Instance

Guillimin HPC Users Meeting

Build your dev environment with Docker.

Red Hat Quay 2.9 Deploy Red Hat Quay - Basic

Docker. Master the execution environment of your applications. Aurélien Dumez. Inria Bordeaux - Sud-Ouest. Tuesday, March 24th 2015

VM Migration, Containers (Lecture 12, cs262a)

XEN and KVM in INFN production systems and a comparison between them. Riccardo Veraldi Andrea Chierici INFN - CNAF HEPiX Spring 2009

Introduction to Linux

Building A Better Test Platform:

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

Opportunities for container environments on Cray XC30 with GPU devices

what's in it for me? Ian Truslove :: Boulder Linux User Group ::

agenda PAE Docker Docker PAE

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

Cross platform enablement for the yocto project with containers. ELC 2017 Randy Witt Intel Open Source Technology Center

Implementing DPDK based Application Container Framework with SPP YASUFUMI OGAWA, NTT

USING DOCKER FOR MXCUBE DEVELOPMENT AT MAX IV

What s Up Docker. Presented by Robert Sordillo Avada Software

Dr. Roland Huß, Red

Shifter on Blue Waters

The TinyHPC Cluster. Mukarram Ahmad. Abstract

Getting Started with Hadoop

Implementation of Continuous Integration for Linux Images

/ Cloud Computing. Recitation 5 February 14th, 2017

cpouta exercises

HPC Cloud Burst Using Docker

Molecular Forecaster Inc. Forecaster 1.2 Server Installation Guide

Best Practices for Developing & Deploying Java Applications with Docker

Building RPMs for Native Application Hosting

Shifter and Singularity on Blue Waters

Introduction to Linux

Container Adoption for NFV Challenges & Opportunities. Sriram Natarajan, T-Labs Silicon Valley Innovation Center

Introduction to Linux. Woo-Yeong Jeong Computer Systems Laboratory Sungkyunkwan University

Infrastructure at your Service. Oracle over Docker. Oracle over Docker

EE516: Embedded Software Project 1. Setting Up Environment for Projects

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

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

Lesson: Web Programming(3) Omid Jafarinezhad Sharif University of Technology

Introduction to Docker. Antonis Kalipetis Docker Athens Meetup

iems Interactive Experiment Management System Final Report

Real world Docker applications

Getting Started with Stratus. Evan Bollig 05/01/2017

Use of containerisation as an alternative to full virtualisation in grid environments.

Asterisk & the Docker revolution Some lessons from the trenches

Docker Container Logging

Using Juju with a Local Provider with KVM and LXC in Ubuntu LTS

Downloading and installing Db2 Developer Community Edition on Red Hat Enterprise Linux Roger E. Sanders Yujing Ke Published on October 24, 2018

Quick Prototyping+CI with LXC and Puppet

Shifter at CSCS Docker Containers for HPC

Zenoss Resource Manager Upgrade Guide

The Galaxy Docker Project. our hands-on tutorial

SAINT LOUIS JAVA USER GROUP MAY 2014

MySQL operations in Docker. Giuseppe Maxia QA Architect VMware, Inc

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

Transcription:

docker & HEP: containerization of applications for development, distribution and preservation Sébastien Binet LAL/IN2P3 2015-04-13 S. Binet (LAL) docker-hep 2015-04-13 1 / 16

Docker: what is it? http://www.docker.io/ an open source project to pack, ship and run any application as a lightweight container High level description kind of like a lightweight VM runs in its own process space has its own network interface can run stuff as root Low level description chroot on steroids container = isolated process(es) share kernel with host no device emulation S. Binet (LAL) docker-hep 2015-04-13 2 / 16

Docker: why? same use cases than for VMs speed: boots in (milli)seconds Containers vs. VMs footprint: 100-1000 containers on a single machine/laptop. small disk requirements S. Binet (LAL) docker-hep 2015-04-13 3 / 16

Docker: why? Efficiency: almost no overhead processes are isolated but run straight on the host CPU performance = native performance memory performance = a few % shaved off for (optional) accounting network performace = small overhead Efficiency: storage friendly unioning filesystems snapshotting filesystems copy-on-write provisionning takes a few milliseconds... and a few kilobytes creating a new container/base-image takes a few seconds S. Binet (LAL) docker-hep 2015-04-13 4 / 16

Docker: introduction Hello World $> docker pull ubuntu get a base container (ubuntu, centos,... ) $ docker pull ubuntu list images already pulled in: $ $> docker docker images images Classic: hello world Get one base image (ubuntu, centos, busybox, ) List images on your system!! run an executable inside a container $ docker Print run hello ubuntu:12.10 world echo hello world $> docker run ubuntu:12.10 echo hello world! S. Binet (LAL) docker-hep 2015-04-13 5 / 16

Docker: introduction - II Detached mode run a container in detached mode: $> docker run d ubuntu sh c while true; do echo hello $ world; dockersleep run -d 1; ubuntu done sh -c \ while true; do echo hello ; sleep 1; done; get the container id: $ docker ps $> docker ps Detached mode!"#$%#$&'()*+$",%#-$./*$0*.1(/$21-$3405$ 6*.$('#.1%#*+7,$%0$ 891(/$.'$./*$('#.1%#*+$ attach to the container $ $> docker docker attach attach 78c88e279f26 <container_id> start/stop/restart a container $ $ docker stop 78c88e279f26 :.';<:.1+.<!*,.1+.$./*$('#.1%#*+$ $> docker stop <container_id> S. Binet (LAL) docker-hep 2015-04-13 6 / 16

Docker: public index Public index Public Index & Network Pull an apache image from the public index pull $> an docker apachesearch container apache from the index: $ $> docker docker search pull creack/apache2 apache $ docker pull creack/apache2 Run the image and check the ports run the image and check the ports $ $> docker run run -d d creack/apache2 $ $> docker docker ps ps Expose public ports Also available from the browser: $> docker run d p 8888:80 p 4444:443 creack/apache2 https://index.docker.io/ $> docker ps! S. Binet (LAL) docker-hep 2015-04-13 7 / 16

Docker: creating a customized container run docker interactively: $ docker run -i -t ubuntu bash root@bf72b1a06e6c:/# apt-get update Reading package lists... Done root@bf72b1a06e6c:/# apt-get install memcached [...] root@bf72b1a06e6c:/# exit commit the resulting container $ docker commit docker ps -q -l binet/memcached ab59e4b14266 run the image $ docker run -d -p 11211 -u daemon binet/memcached memcached ab59e4b14266 S. Binet (LAL) docker-hep 2015-04-13 8 / 16

Docker: creating a customized container - Dockerfile ## install gaudi from RPMs FROM hepsw/slc-base MAINTAINER binet@cern.ch ENV MYSITEROOT /opt/lhcb-sw ENV CMTCONFIG x86_64-slc6-gcc48-opt RUN mkdir -p $MYSITEROOT ## install some system dependencies RUN yum install -y bzip2 freetype glibc-headers tar which ## retrieve install RUN curl -O -L http://cern.ch/lhcbproject/dist/rpm/lbpkr && \ chmod +x./lbpkr ## install (source+binaries) RUN./lbpkr install-project GAUDI v26r1 S. Binet (LAL) docker-hep 2015-04-13 9 / 16

Docker: Dockerfile - II build the container $ docker build --tag=hepsw/lhcb-gaudi:v26r1. $ docker tag hepsw/lhcb-gaudi:v26r1 hepsw/lhcb-gaudi:latest run the container (and test the build) $ docker run -i -t hepsw/lhcb-gaudi /bin/bash [hepsw/lhcb-gaudi] $ cd /scratch [hepsw/lhcb-gaudi] $ gaudirun.py \ $GAUDIEXAMPLESROOT/options/TupleEx.py bind mounts $ docker run -i -t hepsw/lhcb-gaudi \ -v /host/build/results:/scratch /bin/bash copy files from container to host $ docker cp hepsw/lhcb-gaudi:/scratch /host/build/results S. Binet (LAL) docker-hep 2015-04-13 10 / 16

Benchmarks kvm-and-docker-lxc-benchmarking executive summary: docker delivers very close to the bare-metal performances (consistantly better than KVM save for some mysql tests) tests docker containers creation, guest CPU/Mem/IO performances,... S. Binet (LAL) docker-hep 2015-04-13 11 / 16

Benchmarks - II Disk sizes of containers: REPOSITORY TAG VIRTUAL SIZE hepsw/lhcb-base 20150331 336.6 MB hepsw/lhcb-gaudi v26r1 3.911 GB hepsw/lhcb-davinci v36r5 7.790 GB lhcb-base (slimmed) latest 322.3 MB lhcb-gaudi (slimmed) latest 3.893 GB lhcb-davinci (slimmed) latest 7.771 GB hepsw/cvmfs-base 20150331 629.4 MB hepsw/cvmfs-lhcb 20150331 629.4 MB Disk sizes of $MYSITEROOT: hepsw/lhcb-base: /opt/lhcb-sw 67M hepsw/lhcb-gaudi: /opt/lhcb-sw 3.600G hepsw/lhcb-davinci: /opt/lhcb-sw 7.300G slimmed: use docker export+import to shrink image size. S. Binet (LAL) docker-hep 2015-04-13 12 / 16

Benchmarks - III Running gaudirun.py GaudiExamples/TupleEx.py AFS 56.87s user 14.26s system 66% cpu 1:46.50 total # kick AFS 57.62s user 13.07s system 99% cpu 1:11.17 total 57.69s user 13.46s system 99% cpu 1:11.58 total 57.93s user 13.26s system 99% cpu 1:11.66 total Docker-RPMs 55.93s user 12.34s system 98% cpu 1:09.54 total 55.43s user 12.88s system 98% cpu 1:09.12 total 55.54s user 12.16s system 98% cpu 1:08.83 total 55.39s user 11.60s system 98% cpu 1:07.81 total Docker-CVMFs (a docker container where CVMFs is configured and running) 55.53s user 14.01s system 88% cpu 1:18.75 total # kick CVMFs 54.95s user 12.83s system 97% cpu 1:09.36 total 55.42s user 12.86s system 98% cpu 1:09.35 total 55.42s user 13.01s system 98% cpu 1:09.63 total S. Binet (LAL) docker-hep 2015-04-13 13 / 16

Docker: on non-linux? no container backend for MacOSX (yet?) it is foreseen that at some point a jail-based backend will appear in the meantime: boot2docker launches a very thin Linux-VM where the docker daemon is installed installs the docker client on the host talks via HTTP/REST to the daemon boot2docker works also for Windows (TM) S. Binet (LAL) docker-hep 2015-04-13 14 / 16

Conclusions & Prospects easily distribute dev-environments easily provision build and dev-environments easily relocate binaries (remember: chroot on steroids!) provision efficient performance-wise environments (production) run a HEP-dedicated docker images repository? ACLs O(GB) images... put a Frontier server in front? S. Binet (LAL) docker-hep 2015-04-13 15 / 16

Docker: HEP examples hepsw/docks (github) hepsw/containers (docker public registry) S. Binet (LAL) docker-hep 2015-04-13 16 / 16