containers - portable, repeatable user-oriented application delivery. build, ship, run any app...

88
Containers: Portable, repeatable user-oriented application delivery HPC Saudi 2017 - KAUST 15 th March 2017 #dockerbday @walidshaari [email protected] https://www.linkedin.com/in/walidshaari/

Upload: walid-shaari

Post on 05-Apr-2017

116 views

Category:

Software


1 download

TRANSCRIPT

Page 1: Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!

Containers: Portable, repeatable user-oriented application delivery

HPC Saudi 2017 - KAUST15 th March 2017#dockerbday

@[email protected]://www.linkedin.com/in/walidshaari/

Page 2: Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!

$whoami

● Passionate about openness, open source, devops, Infosec● Member of the Saudi Aramco Expec Computer Center/HPC team● Red Hat Certified Architect RHCA● SANS GIAC Incident handler, Forensics and Web security certified● Dhahran Docker & Ansible meetup organizer/mentor

@[email protected]

https://www.linkedin.com/in/walidshaari/

Page 3: Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!

AGENDA : Good Morning Containers

8:30 - 8:35 Introduction, Networking, Socializing

8:37 - 9:38 Interactive theory session "Presentation with Q&A"

9:40 - 10:15 Play with Docker Birthday 4 Labs

10:15 - 10:30 Coffee break

10:30 - 11:55 Singularity, rkt, lxd

Page 4: Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!

© 2013-2016 Docker, Inc. All rights reserved

Docker 4th Birthday

#dockerbday

Page 5: Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!

Docker Bday #4 celebrations worldwide!

• 150+ Bday meetups! • 6000+ RSVPs

• 700+ mentors

#dockerbday

Page 6: Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!

Join the Docker Student Community! Sign up here: http://dockr.ly/students (with your school email) for access to our free Docker Student Developer Kit and

more!

Become a Docker Campus Ambassador!For leaders on campus who want to help their peers learn Docker! Learn more and apply here: http://dockr.ly/campus-ambassador

Are you a student?

Page 7: Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!

Surveys and expectationsAssuming everyone knows a bit of Linux/Unix/Mac OSX CLI ?

Development, Operations, Security, Business, Others?

Devops

Configuration management

Containers

Schedulers

Containers eco system

Clusters, Load balancers, Orchestration

Page 8: Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!

© 2013-2016 Docker, Inc. All rights reserved

HPC

Page 9: Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!

What is HPC?

▪ HPC workloads mostly▪ Runs on Linux▪ Runs on bare-metal for maximum performance, lower overhead

▪ HPC Application▪ Broken into smaller parallel distributed problems across cluster

nodes.▪ Utilizes inter-process communications heavily, shared memory, or

across network.▪ Scientific computing

Page 10: Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!

HPC ▪ HPC dominated by Academics research and discovery

▪ Industry in the last 5-10 years seen an increase in HPC interest (Car , O&E)

▪ Possible constraints:▪ Snowflake deployments, each HPC cluster/supercomputer is build in mind with

specific use cases▪ Long lived nodes.

▪ Bloated/drift/unclean maybe diskless reboots

▪ Reboot time, or launching app could be long due to system/memory checks, bootstrapping

▪ Traditional Data Center Linux distribution▪ Fixed installation based on single enterprise distro (Scientific, RHEL, SLES)

▪ Old kernel features

https://arxiv.org/pdf/1702.05513.pdf #cHPC

Page 11: Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!

© 2013-2016 Docker, Inc. All rights reserved

Containers

Page 12: Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!

First Step, Definition?

• The Application matters• The application can be a process or a set of processes• The use case might be not a running app

• Set of tools to develop an app• Set of scripts "apps" that are part of a pipeline

• Isolated contained environment "Encapsulation"

• Synonyms• chroot• jail• partition• namespace• zone

Page 13: Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!

chroot/jail

A chroot on Unix operating systems is an operation that changes the apparent root directory for the current running process and its children. A program that is run in such a modified environment cannot name (and therefore normally cannot access) files outside the designated directory tree. The term "chroot" may refer to the chroot(2) system call or the chroot(8) wrapper program. The modified environment is called a chroot jail.

https://en.wikipedia.org/wiki/Chroot

Page 14: Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!

Thank the giants

Page 15: Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!

CONTAINERS?WHAT ARE THEY REALLY?

Linux features?

Namespace

cgroupsLXC

Union file systems

Configuration management?

Virtualization technology?

npm

jar

Packaging ?

rpm

deb

tar.gz

Virtual/environment management ?Sandboxing?

chroot

BSD jail Solaris zones

IBM VM/370 (1972)

seccomp

Page 16: Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!

IT DEPENDS

ManualConfiguration

Traditional VMs

Less PortableMinimal overhead

Most PortableLots of overhead

Configuration Management tools

ContainersDocker

Intel Clear ContainersSingularity

LXC/LXD

Non-Repeatable Repeatable

rkt

Page 17: Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!

DEVELOPERS LOVE DOCKER

17https://www.slideshare.net/dberkholz/cloud-native-in-the-enterprise-realworld-data-on-container-and-microservice-adoption

Page 18: Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!

KUBERNETES SEEING THE MOST DEVELOPER TRACTION

18https://www.slideshare.net/dberkholz/cloud-native-in-the-enterprise-realworld-data-on-container-and-microservice-adoption

Page 19: Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!

Container Containment, isolation or encapsulation of an environment.

Machine container:Encapsulates a complete system image. e.g. Ubuntu, RHEL, Scientific Linux.

Process container:Encapsulates a service/process(es) . e.g. Django, ROR, Gitlab, redis, Openfoam, kafka, spark.

What is the smallest application container?

Page 20: Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!

Container Runtime

docker < 1.11.0 └── systemd└── docker run OpenFoam└── Docker Engine└── OpenFoam

docker > 1.11.0└── systemd└── docker run OpenFoam└── Docker Engine└── containerd└── runc└── OpenFoam

rkt > 1.0└── systemd└── rkt run OpenFoam└── OpenFoam

singularity (2.2.x)└── systemd/(init) └── bash└── OpenFoam

https://medium.com/@adriaandejonge/moving-from-docker-to-rkt-310dc9aec938#.1glm3o1t3

Page 21: Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!

Other runtime

Page 22: Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!

Image formatsLayered

Overlay filesystems/Graph drivers

chrootDirectory

Archive

#OCI#ACI

Page 23: Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!

Use Cases: Packaging

Agnostic packaging

Captures○ Dependencies○ Environment○ Configurations○ Executables○ How about data?○ What Else?

■ hint: m*Pack once, Run everywhere http://hpcbios.readthedocs.io/en/latest/HPCBIOS_2012-92.html#EasyBuild #lmod #GUIX #NYU-Environment-POSTER

Page 24: Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!

Use Case: Portability

Portable/Scalable across ● platforms● Distributions● Environments

Separation of concerns, e.g. development pack and ship, operations scale and deploy. development ensures app is resilient, operations enure infra is HA resilient and scalable

Page 25: Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!

Use Case: Portability

Portable/Scalable across ● systems● subsystems● Anywhere

#BYOE

Page 26: Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!

Use Case: Reproducible

Paolo Di Tommaso from the Center for Genomic Regulation presented : Manage Reproducibility of Computational Workflows with Docker Containers and Nextflow.https://www.slideshare.net/insideHPC/reproducible-computational-pipelines-with-docker-and-nextflowhttps://youtu.be/Doo9H2-gBAk

Page 27: Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!

27

Data Center current silo inefficient state

Scheduler Scheduler

Jobs

Jobs

Jobs

Jobs

Jobs

Jobs

Scheduler

Jobs

Jobs

Jobs

Cluster Management A

Cluster Management B

Cluster Management C

Node as a work unit, traditiontial single level (silo) schedulers. No holistic awareness of other workloads

Page 28: Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!

28

Data Center

Efficient Secure Allocation of Resources VC3

BigDataVC1Infra

VC2HPC

Scheduler

Scheduler

Scheduler

Data Center

Scheduler

jobs

Jobs

Jobs

Jobs

Jobs

Jobs

Jobs

Jobs

2nd Generation Cluster Management

Containers as a work unit, container aware workload schedulers integrated with cluster management software

Page 29: Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!

29

Mesos DC/OS:Example of Data Center/Container aware scheduler

▪ Mature, Open Source Apache Project

▪ Cluster Resource Manager

▪ Scalable to 10,000s of nodes

▪ Fault tolerant, no single point of failure

▪ Multi-tenancy with strong resource isolation

▪ Improved resource utilization

▪ Can schedule batch and interactive workloads for HPC and Big data.

https://people.eecs.berkeley.edu/~alig/papers/mesos.pdf

https://katacoda.com/courses/mesos/playground

Page 30: Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!

30

HPC workload runs on the cloud

25%

Page 31: Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!

31

Which workloads and frameworks are running on OpenStack?

Source : https://www.openstack.org/assets/survey/Public-User-Survey-Report.pdf

> 38%scientific/technical computing already

happening on Openstack

Page 32: Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!

EXAMPLE HPC Data Center Use Casehttps://fosdem.org/2017/schedule/event/magnumcern/

Page 33: Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!

33

NVIDIA Example use case

https://github.com/NVIDIA/nvidia-dockerhttp://www.nvidia.com/object/docker-container.html

Page 34: Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!

Possible HPC Caveats/Constraints

1. Memory/storage deduplication2. Code Optimization for specific architecture3. Hardware environment Optimizations4. Limited take on HPC specific orchestration and scheduling5. Hardware topology assumptions (e.g. GPU brand, interconect)6. Chroot based containers have limited tooling (e.g. introspection,

history, search)7. chroot based containers might be hard to scan for security

vulnerabilities, hardening, and composition.

Page 35: Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!

Container image security

Black listed artifactse.g. passwords, keys

3rd party softwaree.g. libraries/packages compiled from sourceSecurity Permissions

Configuration

Packages

License

Network

MetadataEnvironment Variables

Context

Page 36: Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!

36

MPI batch jobs● use ssh inside container● dssh http://www.qnib.org/2016/03/31/dssh/● Capitalize on openmpi

○ Openmpi/pbs/TORQUE ( mpiexed does’t use ssh)● Singularity examples uses Openmpi/Slurm● Mesos mpi frameworks● Commercial Univa/LSF/ support● Research, and contribute ideas, pull requests to swarm,

kubernetes, slurm, mesos, and the alike.● https://github.com/ambu50/wrapper-sq

Page 37: Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!

37

Docker performance benchmarks

http://www.theregister.co.uk/2014/08/18/docker_kicks_kvms_butt_in_ibm_tests

Page 38: Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!

DISCLAIMER

@kelseyhightower :

The problem with most blog posts attempting to compare two different systems is the author not having the sufficient experience to do so.

https://twitter.com/kelseyhightower/status/826974374536187905

Page 39: Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!

© 2013-2016 Docker, Inc. All rights reserved

1. Introduction to Docker

#dockerbday

Page 40: Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!

#dockerbday

Interesting Numbers17k+

pull requests

40k+stars

800k+repos

10B+downloads

2000+contributors

280+meetups

220k+members

80+countries

Page 41: Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!

What is Docker?The leading open source platform to pack, ship and run apps as lightweight containers.

Developers: use Docker to eliminate “works on my machine” problems when collaborating on code with co-workers.

Operators: use Docker to run and manage apps side-by-side in isolated containers to get better compute density.

Enterprises: use Docker to build agile software delivery pipelines to ship new features faster, more securely and with confidence for both Linux and Windows Server apps.

#dockerbday

Page 42: Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!

• Standardized packaging for software and dependencies

• Isolate apps from each other• Share the same OS kernel• Works for all major Linux

distributions• Containers native to Windows

Server 2016

What are Docker containers?

Page 43: Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!

Comparing Containers and VMs

Containers are an app level construct

VMs are an infrastructure level construct to turn one machine

into many servers

Page 44: Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!

Containers and VMs together

Containers and VMs together provide a tremendous amount of flexibility for IT to optimally deploy and manage apps.

Page 45: Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!

Evolution of the Docker Platform

Beginning

• Single purpose• Linux developer community

#dockerbday

Page 46: Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!

Evolution of the Docker PlatformMany purposes, users and infrastructure

Today

Developer Community

Need to experiment and innovate with leading edge tech

Ops Community Enterprise Partner

Ecosystem

Run business critical apps at scale anywhere

Extend and add value to a platform with a shared path

to monetization

Need a predictable system to deploy

and run apps

#dockerbday

Page 47: Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!

The Docker Platform

Developers Ops Enterprise Ecosystem

ONE PLATFORMFor Developers and ITFor Linux and Windows

On Premises and in the CloudTraditional Homegrown, Commercial ISV, Microservices

Docker Community Edition Docker Enterprise Edition

Docker Certified Docker Store

#dockerbday

Page 48: Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!

What is a Docker Edition?Making things simple for a great user experience

#dockerbday

NEW! Certification program for Infrastructure, Plugins and Containers

Community EditionEnterprise Edition

Page 49: Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!

Docker Community Edition (CE) & Enterprise Edition (EE)

Enterprise Edition (EE)

• CaaS enabled platform subscription (integrated container orchestration, management and security)

• Enterprise class support• Quarterly releases, supported for

one year each with backported patches and hotfixes.

• Certified Technology: Infrastructure, Plugins, Containers

• Free Docker platform for “do it yourself” dev and ops

• Monthly Edge release with latest features for developers

• Quarterly release with maintenance for ops

Community Edition (CE)

#dockerbday

Page 50: Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!

Docker old versioning scheme

0.0.3 March 2013

1.0 June 2014

1.1 July 2014

1.2 August 2014

1.3 October 2014

1.4 December

2014

1.5 February

2015

1.6 April 2015

1.7 June 2015

1.8 August 2015

1.9 November

2015

1.10 Feburary

2016

1.11 April 2016

1.12.0 July 2016

1.12.1 August 2016

1.12.2 October

2016

1.12.3 October

2016

Page 51: Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!

Product Versioning & SupportD

ocke

r CE

Edge

Stable

● NEW! Product Versioning follows a Year.Month model● `docker-engine` package no longer exists. There’s only `docker-ce` and `docker-ee`. ● The binary formerly known as the engine is versioned YY.MM

Doc

ker E

E

EEReleased quarterly

Each version supported for 1 year

v17.03 v17.04 v17.07v17.06v17.05 v17.08

v17.03

v17.06

v17.03

v17.06

v17.09 v17.10

v17.09

v17.09

#dockerbday

Page 52: Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!

Where do you download Docker Community Edition?

#dockerbday

Page 53: Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!

Docker Store!• A marketplace for you to get the

latest trusted containers, plugins, and Docker editions!

• You can search, browse, purchase and manage from one location.

• Community Edition for:− Mac− AWS− Fedora− CentOS

−Windows−Azure−Ubuntu−Debian

#dockerbday

Page 54: Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!

Want to build and publish a container in Docker Store?

Visit store.docker.com and click apply to publish through the Store Publisher Program!

Page 55: Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!

© 2013-2016 Docker, Inc. All rights reserved

2. Learn Docker with Bday #4 Labs!

#dockerbday

Page 56: Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!

Lab Instructions

STEP 1: Visit

http://birthday.play-with-docker.com/

Join the slack channel - #docker-bday-4Join the Docker Community - dockr.ly/community

#dockerbday

Page 57: Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!

STEP 2: Select the lab you’d like to take.

http://birthday.play-with-docker.com/

Lab Instructions

#dockerbday

Page 58: Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!

As a special thank you for attending, use this code for a 30% discount to attend DockerCon in Austin!

Register: http://2017.dockercon.com/Code: BDAY4

Page 59: Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!

Take a #dockerselfie

#dockerbday

Page 60: Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!

© 2013-2016 Docker, Inc. All rights reserved

http://birthday.play-with-docker.com/

Join the slack channel: #docker-bday-4

Join the Docker Community: https://community.docker.com/registrations/groups/4316

#ISC2017 Docker Workshop #dockerbday

#dockerselfie

Page 61: Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!

© 2013-2016 Docker, Inc. All rights reserved

Singularity

Page 62: Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!

Scientific computing container

Page 63: Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!

Singularity Container Selection Criteria

http://hpcugent.github.io/easybuild/files/EUM17/20170208-1_Singularity.pdf

Page 64: Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!

http://hpcugent.github.io/easybuild/files/EUM17/20170208-1_Singularity.pdf

Page 65: Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!
Page 66: Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!

http://hpcugent.github.io/easybuild/files/EUM17/20170208-1_Singularity.pdf

Page 67: Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!

Singularity speculations against Docker

http://hpcugent.github.io/easybuild/files/EUM17/20170208-1_Singularity.pdf

Page 68: Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!

Docker use in scientific computing

http://geekyap.blogspot.ch/2016/11/docker-vs-singularity-vs-shifter-in-hpc.html

Page 69: Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!

Counter arguments IDocker Singularity

privilege model namespace since 1.10Feb 2016

suid, namespace added sep 2016

support current Linux distro

kernel 3.10+ 2.6 kernel

Image build Dockerfile based build, some configuration management tools are trying to automate it, or abstract it even more.

most of the time bootstrapping from Docker is the only working method out of 4.

No additional network configuration

configurable, one can use none, host, or whatever network plugin

None, which is fine for a minimal HPC binary

No additional hardware shares kernel, view limited by pid,user,ipc,mnt,network

except of network namespace, chrootedprocess shares host kernel

Page 70: Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!

Counter arguments IIDocker Singularity

development maturity 5 years internal, 4 years Open Source, 2000+ contributors

4 core developers, 1 year old, limited community

security audited, scrutinized, running in internet facing production sites

- no key signing- no introspection- no vulnerability

scanner- history, layer tracing

capabilities….

eco system Huge eco system, vendor support, and ISVs

small few companies

production usage Ubercloud, CERN, several use cases presented in ISC workshop

None, which is fine for a minimal HPC binary

Page 71: Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!

Counter arguments IIIDocker Singularity

rdma Mellnox have provided RDMA name space for multi tenant hosts

None

Image caching works, options to inspect, clean/prune it when needed

did not work for me on 2.2.0

rich API yes minimal functions, no restful API to integrate with others, other than SHUB

inspection, accounting yes None

Page 72: Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!

https://singularity-hub.org/tools/compare

Page 73: Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!

Play With SingularityDemos

• https://asciinema.org/~bauerm• https://asciinema.org/~vs

Vagrant Environment

• https://github.com/singularityware/singularity-vagrant

Workshop for last month Intel HPC devcon:• https://github.com/singularityware/intel-hpc-devcon

Page 74: Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!

Regardless of Singularity claims against Docker

Singularity benefits from Docker ecosystem

Given the context of internal HPC clusters not facing public internet and using in-house images.

- Singularity is minimalistic, simpler architecture, user interface and integration with existing HPC infrastructure.- Doesn't require operations to install root Daemons.- Enables separation of duties between Dev and Ops, allowing end users to bring their own packaged apps #BYOE- Needs the support and contribution of the HPC and scientific community

Features wish list:- Follow current standards, such as the OCI.- Provide introspection and traceability- Metadata- Private SHUB

Scientific computing loves Singularity

Page 75: Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!

© 2013-2016 Docker, Inc. All rights reserved

rkt

Page 76: Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!

What is rkt?

From the rkt GitHub page, "rkt (pronounced "rock-it") is a CLI for running app containers on Linux. rkt is designed to be secure, compassable and standards-based.

#ACI

Page 77: Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!

Why rkt not Docker?

§ Don’t want to run Docker’s daemon.

§ Don’t require the Docker’s rich feature set/eco system. #KISS

§ Can’t trust Docker security yet, even though it is no longer an issue.

§ Have a modern Linux distro :

kernel > 4.3 and systemd version > 222

Similar reasons to why Singularity not Docker apart from the last

Page 78: Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!
Page 79: Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!

rkt playground

https://www.katacoda.com/courses/coreos/rkt-hello-world

https://www.katacoda.com/courses/coreos/playground

Page 80: Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!

© 2013-2016 Docker, Inc. All rights reserved

lxd

Page 81: Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!

The Canonical Solution

https://www.slideshare.net/dustinkirkland/container-world-2017-the-questions-youre-afraid-to-ask-about-containers

Page 82: Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!

§ Front end for LXC

§ Complete Linux environment

§ Enables simple restful management API to LXC

§ Secure by default

§ Simpler and less confusing tools

§ Checkpoint, restore, snapshot support

§ No drastic change in Infrastructure

§ Controls multi local and remote containers

§ OpenStack Nova plug-in for managing virtual LXD hosts in the cloud

LXD

Page 83: Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!

§ https://linuxcontainers.org/lxd/try-it

§ https://stgraber.org/2017/03/05/run-your-own-lxd-demo-server/

Play with LXD

Page 84: Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!

© 2013-2016 Docker, Inc. All rights reserved

Container Distributions

Page 85: Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!

Minimalist Container Distributions

q Atomic http://www.projectatomic.io/

q Container OS ( previously called CoreOS) https://coreos.com/os/docs/latest

q Rancher http://rancher.com/rancher-os/

q VMware Photon https://vmware.github.io/photon/

q SUSE MicroOs https://www.suse.com/communities/blog/rise-caas-platform/

Page 86: Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!

What is Next in application management?Not yet viable for HPC, however, have brilliant ideas. claims to be for modern and legacy app. Still less than a year old

When you create a container image with Habitat, You know exactly what went into the container and what is configurable about the application

Build immutable infrastructure but allow last mile Application config changes

Build containers with a Minimum Viable OS

Decouple the application build from the final production ready container

Orchestrate the application launch order and topology required

https://www.habitat.sh/

Page 87: Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!

Referencesq https://www.nextplatform.com/2017/03/02/solving-hpc-conflicts-containers/

q http://geekyap.blogspot.co.za/2016/11/docker-vs-singularity-vs-shifter-in-hpc.html

q https://www.enterprisetech.com/2017/03/02/docker-platform-fills-gaps-container-ecosystem/

q https://arxiv.org/pdf/1702.05513.pdf #cHPC, the HPC container prototype

q https://www.fosdem.org/2017/schedule/event/singularity/ https://www.nextflow.io/blog/2016/more-fun-containers-hpc.html

q http://jvns.ca/blog/2016/10/02/i-just-want-to-run-a-container/

q Videos from 2nd EasyBuild User Meeting : Singualirty, Lmod, XALT and EasyBuildhttps://www.youtube.com/playlist?list=PLVA9BuLC1j-yfxp2w-wraAGDCmhjb3o5Y

q http://www.vanessasaur.us/

Page 88: Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!

88

Thank you