Sebastien Docker containers …. Background Joined Citrix OSS team in July 2012 Associate professor at Clemson University prior High Performance.

Slides:



Advertisements
Similar presentations
SLA-Oriented Resource Provisioning for Cloud Computing
Advertisements

Profit from the cloud TM Parallels Dynamic Infrastructure AndOpenStack.
Cloud Computing Imranul Hoque. Today’s Cloud Computing.
ContainerApp Container -X memory -Y CPU -Z Storage -N Network -Port ContainerManager Container Hypervisor (Java Runtime) -Understands IaaS of Cloud / Provider.
Mesos A Platform for Fine-Grained Resource Sharing in Data Centers Benjamin Hindman, Andy Konwinski, Matei Zaharia, Ali Ghodsi, Anthony D. Joseph, Randy.
Kubernetes on CloudStack Sebastien Nov 6 th 2014 Geneva, Switzerland.
Modeling Public Pensions with Mathematica and Python II
Introduction to DoC Private Cloud
CloudStack and Big Data Sebastien May 22 nd 2013 LinuxTag, Berlin.
Opensource for Cloud Deployments – Risk – Reward – Reality
Cloud Computing for the Enterprise November 18th, This work is licensed under a Creative Commons.
Software to Data model Lenos Vacanas, Stelios Sotiriadis, Euripides Petrakis Technical University of Crete (TUC), Greece Workshop.
INTRODUCTION TO CLOUD COMPUTING CS 595 LECTURE 7 2/23/2015.
 Cloud computing  Workflow  Workflow lifecycle  Workflow design  Workflow tools : xcp, eucalyptus, open nebula.
Windows Azure Conference 2014 Running Docker on Windows Azure.
DevCloud and CloudMonkey in Apache CloudStack
Cloud Computing. What is Cloud Computing? Cloud computing is a model for enabling convenient, on-demand network access to a shared pool of configurable.
INTRODUCTION TO CLOUD COMPUTING CS 595 LECTURE 2.
Cloud Computing & Amazon Web Services – EC2 Arpita Patel Software Engineer.
Presented by: Sanketh Beerabbi University of Central Florida COP Cloud Computing.
Windows Azure Conference 2014 Deploy your Java workloads on Windows Azure.
Large Scale Sky Computing Applications with Nimbus Pierre Riteau Université de Rennes 1, IRISA INRIA Rennes – Bretagne Atlantique Rennes, France
1 The Fast(est) Path to Building a Private/Hybrid Cloud October 25th, 2011 Paul Mourani RightScale.
608D CloudStack 3.0 Omer Palo Readiness Specialist, WW Tech Support Readiness May 8, 2012.
FutureGrid Connection to Comet Testbed and On Ramp as a Service Geoffrey Fox Indiana University Infra structure.
Kind: “Pod” (i.e. Type) kind: “Pod” (i.e. Type) Kubernetes Analysis: 2 types of containers “Dumb” (no HA, no Autoscale) = Pod Template kind: “ReplicationController”
Enterprise Cloud Computing
6/23/2005 R. GARDNER OSG Baseline Services 1 OSG Baseline Services In my talk I’d like to discuss two questions:  What capabilities are we aiming for.
Web Technologies Lecture 13 Introduction to cloud computing.
Kind: “Pod” (i.e. Type) kind: “Pod” (i.e. Type) Kubernetes Analysis: 2 types of containers “Dumb” (no HA, no Autoscale) = Pod Template kind: “ReplicationController”
1 TCS Confidential. 2 Objective : In this session we will be able to learn:  What is Cloud Computing?  Characteristics  Cloud Flavors  Cloud Deployment.
#msitconf. Damien Caro Technical Evangelist Manager, Что будет, если приложение поместить в контейнер? What happens if the application.
Building on virtualization capabilities for ExTENCI Carol Song and Preston Smith Rosen Center for Advanced Computing Purdue University ExTENCI Kickoff.
Container Networking Today Guido Appenzeller Chief Technology Strategy Officer, NSBU at VMware (NOTE: PASTE IN PORTRAIT AND SEND BEHIND FOREGROUND GRAPHIC.
Virtualisation & Containers (A RAL Perspective)
Job Scheduling and Runtime in DLWorkspace
Running LHC jobs using Kubernetes
Interactive Job in DLWorkspace
Dockerize OpenEdge Srinivasa Rao Nalla.
Dag Toppe Larsen UiB/CERN CERN,
Docker and Azure Container Service
Deploying Services with BOSH
Dag Toppe Larsen UiB/CERN CERN,
In-Depth Introduction to Docker
Containers and Virtualisation
INDIGO – DataCloud PaaS
An easier path? Customizing a “Global Solution”
In-Memory Performance
Kubernetes Container Orchestration
Introduction to Docker
Using docker containers
Azure Container Instances
Oracle DB and Docker Get Your Dockerized Oracle Sandbox Running in the Cloud or On- Premises Martin Knazovicky Dbvisit Software.
HDFS on Kubernetes -- Lessons Learned
Intro to Docker Containers and Orchestration in the Cloud
Outline Virtualization Cloud Computing Microsoft Azure Platform
Developing for the cloud with Visual Studio
Getting Started with Kubernetes and Rancher 2.0
Learn. Imagine. Build. .NET Conf
Docker Orchestration: Step-by-step
HDFS on Kubernetes -- Lessons Learned
From Source to Production: The Latest in Container Dev
Orchestration & Container Management in EGI FedCloud
Container cluster management solutions
OpenShift vs. Vanilla k8s on OpenStack IaaS
Introduction to Docker
OpenStack Summit Berlin – November 14, 2018
Harrison Howell CSCE 824 Dr. Farkas
Building, Debugging & Deploying Containerized
Containers on Azure Peter Lasne Sr. Software Development Engineer
Presentation transcript:

Sebastien Docker containers …

Background Joined Citrix OSS team in July 2012 Associate professor at Clemson University prior High Performance Computing, Grid computing (OSG, TG) At CERN summer 2009/2010, help build LXCLOUD based on opennebula

What do I do ? Apache CloudStack and licloud committer + PMC member Looking at techs and how they work together Half dev, half community manager, + half event planner

Today’s talk

IaaS History

VMWare 1998 Xen 2003 HW assisted Virt 2005 EC Opennebula Eucalyptus 2008 CloudStack 2010 Openstack 2010 GCE 2012

Goals Utility computing Elasticity of the infrastructure On-demand Pay as you go Multi-tenant Programmable access

So what… Let’s assume this is solved. What is not solved: - Application deployment - Application scalability - Application portability - Application composability

Docker

Linux container (LXC +) Application deployment PaaS Portability Image sharing via DockerHub Ease of packaging applications

Building docker images Fair use from

Eureka moment #1

Installation $ sudo curl -sSL | sudo sh $ sudo yum install docker

Use $ docker run busybox echo foobar Foobar $ docker run –ti ubuntu:14.04 /bin/bash

The App store $ docker push runseb/application $ docker pull runseb/application $ docker run –d runseb/application

Docker gotchas

Networking Bridge in the host Port mapping to expose services on the host Chain DOCKER (1 references) target prot opt source destination ACCEPT tcp -- anywhere tcp dpt:www

Multi-Host networking Weave.works Flannel

Other gotchas No init system in the container Foreground processes Root Data volumes Data persistence How small does an image get for real applications ?

Eureka moment #2

CoreOS

Similar projects

coreOS

CoreOS Linux distribution Rolling upgrades Minimal OS Docker support etcd and fleet tools to manage distributed applications based on containers. Cloud-init support Systemd units

coreOS “OEM”

coreOS “OEM”

The cloudinit magic

CoreOS on exoscale

Starting containers #cloud-config coreos: units: - name: docker.service command: start - name: es.service command: start content: | [Unit] After=docker.service Requires=docker.service Description=starts ElasticSearch container [Service] TimeoutStartSec=0 ExecStartPre=/usr/bin/docker pull dockerfile/elasticsearch ExecStart=/usr/bin/docker run -d -p 9200:9200 -p 9300:9300 dockerfile/elasticsearch

Opportunity CERN cloud to offer templates for: Coreos Snappy Atomic Create a coreOS OEM upstream with cern specific contextualization

DEMO ?

CoreOS clustering etcd HA key value store Raft election algorithm Writes when majority in cluster has committed update e.g 5 nodes, tolerates 2 nodes failure fleet distributed init system (schedules systemd units in a cluster) Submits systemd units cluster wide Affinity, anti-affinity, global “scheduling”

CoreOS Cluster

“Where are you going to run coreOS ?” “Where are you going to run Docker ?“

- Bare metal cluster - Public Clouds - Private Clouds

“How are you going to manage containers running on multiple Docker Hosts ?”

Docker schedulers Docker Swarm Citadel CoreOS Fleet Lattice from CF incubator Clocker (via blueprints) … Kubernetes

Opportunity Experiment with a dedicated cluster for container based applications. Or use a public cloud one:

Kubernetes

Docker application orchestration Google GCE, rackspace, Azure providers Deployable on CoreOS Container replication HA services

Cloud (e.g CloudStack based = exoscale, openstack based = cern cloud) coreOS K* Docker container API calls to Kubernetes API

Kubernetes API

{ "id": "redis-master-2", "kind": "Pod", "apiVersion": "v1beta1", "desiredState": { "manifest": { "version": "v1beta1", "id": "redis-master-2", "containers": [{ "name": "master", "image": "dockerfile/redis", "ports": [{ "containerPort": 6379, "hostPort": 6379 … "labels": { "name": "redis-master" } Kubernetes Pod

Standardizing on pod Look at the differences between: -k8s pod -AWS ECS task -Ansible Docker playbook -Fig file

? - hosts: wordpress tasks: - name: Run mysql container docker: name=mysql image=mysql detach=true env="MYSQL_ROOT_PASSWORD=wordpressdocker,MYSQL_DATABASE=wordpress, \ MYSQL_USER=wordpress,MYSQL_PASSWORD=wordpresspwd" - name: Run wordpress container docker: image=wordpress env="WORDPRESS_DB_NAME=wordpress,WORDPRESS_DB_USER=wordpress, \ WORDPRESS_DB_PASSWORD=wordpresspwd" ports="80:80" detach=true links="mysql:mysql"

? wordpress: image: wordpress links: - mysql ports: - "80:80" environment: - WORDPRESS_DB_NAME=wordpress - WORDPRESS_DB_USER=wordpress - WORDPRESS_DB_PASSWORD=wordpresspwd mysql: image: mysql volumes: - /home/docker/mysql:/var/lib/mysql environment: - MYSQL_ROOT_PASSWORD=wordpressdocker - MYSQL_DATABASE=wordpress - MYSQL_USER=wordpress - MYSQL_PASSWORD=wordpresspwd

? apiVersion: v1beta1 id: wordpress desiredState: manifest: version: v1beta1 id: wordpress containers: - name: wordpress image: wordpress ports: - containerPort: 80 volumeMounts: # name must match the volume name below - name: wordpress-persistent-storage # mount path within the container mountPath: /var/www/html env: - name: WORDPRESS_DB_PASSWORD # change this - must match mysql.yaml password value: yourpassword volumes: - name: wordpress-persistent-storage source: # emptyDir: {} persistentDisk: # This GCE PD must already exist. pdName: wordpress-disk fsType: ext4 labels: name: wpfrontend kind: Pod

? [ { "image": "wordpress", "name": "wordpress", "cpu": 10, "memory": 200, "essential": true, "links": [ "mysql" ], "portMappings": [ { "containerPort": 80, "hostPort": 80 } ], "environment": [ { "name": "WORDPRESS_DB_NAME", "value": "wordpress" }, …

Opportunity What type of LHC applications could take advantage of such a model ? Highly distributed (in the sense of many isolated functions, not X jobs) Long running services Scalable layers

Big Data

Clouds and BigData Object store + compute IaaS to build EC2+S3 clone BigData solutions as storage backends for image catalogue and large scale instance storage. BigData solutions as workloads to clouds.

EC2, S3 clone An open source IaaS with an EC2 wrapper e.g Opennebula, CloudStack Deploy a S3 compatible object store – separately- e.g riakCS Two independent distributed systems deployed Cloud = EC2 + S3

Big Data as IaaS backend “Big Data” solutions can be used as image catalogue.

Even use Bare Metal

A note on Scheduling Core problem of computer science knapsack is NP complete Central scheduling has been used for a long time in HPC Optimizing the cluster utilization requires multi-level scheduling (e.g backfill, preemption etc..) Google Omega paper 2013 Mesos 2009/2011, ASF Dec 2011

Past: BOINC/Condor Backfill

Food for thought If Mesos is the answer… Mesos Framework for managing VM ? Workload sharing in your data-center: Big Data VM Services Containers Cloud and BigData

Conclusions Docker is a technology to watch to create distributed applications Not a replacement for VMs Packaging experiments applications could be challenging Supporting the docker networking model in the CERN environment will be difficult. Could Mesos be used to fill up the clusters and collocate batch and interactive services ?

Still behind !

Thanks Web: