SlideShare a Scribd company logo
Autograding with Docker containers
Student: Mihir M. Pandya, Advisor: David R. O’Hallaron
Electrical and Computer Engineering, Carnegie Mellon University, Pittsburgh, PA
Introduction Architecture Implementation
Motivation Future Work
● Autolab is a course management system developed
at Carnegie Mellon University for autograding
submissions of programmatic assignments and
labs.
● Tango, the autograder used by Autolab, is a stand-
alone job management service.
● Each submission is graded in Virtual Machines
running on a set of cluster machines.
● Grading VMs must provide a homogeneous
environment for submissions.
● This project aims to replace VMs with Docker
containers.
● Tango is a stand-alone job management service.
Part of its architecture is outlined in below.
(1) Jobs get added to the job queue when clients call Tango’s
API. (2) Tango finds the next schedulable job in the job queue
and dispatches it. (3 to 7) The worker thread uses the VMMS
library for a given platform to manage grading VMs.
● Integrating Docker with Tango involves:
○ Implementing the VMMS library for Docker.
○ Bootstrapping host machines to run Docker
and be accessible over SSH.
Acknowledgements
initializeVM waitVM copyIn runJob copyOut
distDocker ec2SSH tashiSSH
● Docker containers provide isolation that can
ensure a homogeneous environment for jobs to
run in.
● Host machines that run Docker can be added and
removed live.
● Docker provides image support that allows for
more customized jobs to run with additional
software.
● Support for Docker exists on most major
platforms such as Ubuntu, Mac OS X and
Windows.
● Docker containers are light-weight and so they
initialize faster and can be discarded.
I would like to thank my research advisor, Professor
David R. O’Hallaron, for his guidance throughout
this project. I would also like to thank the Autolab
team for their support. Lastly, I thank CMU’s
Computing Services for the infrastructure support.
The Autolab Project | Meeting of the Minds | May 06, 2015
● Multiplex autograding platforms on the job-level.
The design is abstract enough to allow this.
● Host an internal repository of Docker images.
Instructors could then have immediate control of
the images used to run assessments.
● initializeVM: Assign a host machine for
container to run on. Use round-robin for assignment.
● waitVM: Ensure host machine is reachable by SSH.
● copyIn: Create a directory on host machine and
copy all input files to that directory.
● runJob: Start a Docker container with the given
Docker image and mount the previously created
directory as a volume on to that container. Then, run
the job and write the feedback file to that volume.
● copyOut: Copy feedback file from the volume to
Tango’s directory of feedback files.
● destroyVM: Destroy the Docker container (docker
rm CONTAINER) and its corresponding volume
directory on this host machine.
Results
● The implementation was ran on Greatwhite. Initally,
two t1.micro EC2 instances were used as host
machines. Following this, Tigershark was used as a
host machine.
● The first assessment from 15-213, Datalab, was used
to test the overall correctness.
● Results were similar to that of the existing system.

More Related Content

What's hot

OpenDataPlane Testing in Travis
OpenDataPlane Testing in TravisOpenDataPlane Testing in Travis
OpenDataPlane Testing in Travis
Dmitry Baryshkov
 
The Self-Service Developer - GOTOCon CPH
The Self-Service Developer - GOTOCon CPHThe Self-Service Developer - GOTOCon CPH
The Self-Service Developer - GOTOCon CPH
Laszlo Fogas
 
Run automated tests in Docker
Run automated tests in DockerRun automated tests in Docker
Run automated tests in Docker
Oleksandr Metelytsia
 
An Introduction to Docker
An Introduction to DockerAn Introduction to Docker
An Introduction to Docker
bwinterton
 
AllTheTalks 2020: Buildpacks - container for everyone!
AllTheTalks 2020: Buildpacks - container for everyone!AllTheTalks 2020: Buildpacks - container for everyone!
AllTheTalks 2020: Buildpacks - container for everyone!
Zander Mackie
 
Debugging Go in Kubernetes
Debugging Go in KubernetesDebugging Go in Kubernetes
Debugging Go in Kubernetes
Alexei Ledenev
 
Jenkins Declarative Pipelines 101
Jenkins Declarative Pipelines 101Jenkins Declarative Pipelines 101
Jenkins Declarative Pipelines 101
Malcolm Groves
 
Rethinking React
Rethinking ReactRethinking React
Rethinking React
GlobalLogic Ukraine
 
Docker in qa space
Docker in qa spaceDocker in qa space
Docker in qa space
Nalini Kanth
 
Docker mentorweek
Docker mentorweekDocker mentorweek
Docker mentorweek
Pavan Wankhade
 
Testing strategies for Docker containers
Testing strategies for Docker containersTesting strategies for Docker containers
Testing strategies for Docker containers
Alexei Ledenev
 
Pipeline as code using Jenkins -Ministry of Testing
Pipeline as code using Jenkins -Ministry of TestingPipeline as code using Jenkins -Ministry of Testing
Pipeline as code using Jenkins -Ministry of Testing
Swapnil Jadhav
 
Docker 101
Docker 101Docker 101
Docker 101
Hung-Che Lo
 
Go Is Your Next Language — Sergii Shapoval
Go Is Your Next Language — Sergii ShapovalGo Is Your Next Language — Sergii Shapoval
Go Is Your Next Language — Sergii Shapoval
GlobalLogic Ukraine
 
Microservices on Kubernetes - The simple way
Microservices on Kubernetes - The simple wayMicroservices on Kubernetes - The simple way
Microservices on Kubernetes - The simple way
Suraj Deshmukh
 
Designing and coding for cloud-native applications using Python, Harjinder Mi...
Designing and coding for cloud-native applications using Python, Harjinder Mi...Designing and coding for cloud-native applications using Python, Harjinder Mi...
Designing and coding for cloud-native applications using Python, Harjinder Mi...
Pôle Systematic Paris-Region
 
Docker from a team perspective
Docker from a team perspectiveDocker from a team perspective
Docker from a team perspective
Edwin Vlieg
 
Docker - An Introduction
Docker - An IntroductionDocker - An Introduction
Docker - An Introduction
Knoldus Inc.
 
Docker in Production
Docker in ProductionDocker in Production
Docker in Production
Jirayut Nimsaeng
 

What's hot (20)

OpenDataPlane Testing in Travis
OpenDataPlane Testing in TravisOpenDataPlane Testing in Travis
OpenDataPlane Testing in Travis
 
The Self-Service Developer - GOTOCon CPH
The Self-Service Developer - GOTOCon CPHThe Self-Service Developer - GOTOCon CPH
The Self-Service Developer - GOTOCon CPH
 
Run automated tests in Docker
Run automated tests in DockerRun automated tests in Docker
Run automated tests in Docker
 
An Introduction to Docker
An Introduction to DockerAn Introduction to Docker
An Introduction to Docker
 
AllTheTalks 2020: Buildpacks - container for everyone!
AllTheTalks 2020: Buildpacks - container for everyone!AllTheTalks 2020: Buildpacks - container for everyone!
AllTheTalks 2020: Buildpacks - container for everyone!
 
Debugging Go in Kubernetes
Debugging Go in KubernetesDebugging Go in Kubernetes
Debugging Go in Kubernetes
 
Jenkins Declarative Pipelines 101
Jenkins Declarative Pipelines 101Jenkins Declarative Pipelines 101
Jenkins Declarative Pipelines 101
 
Rethinking React
Rethinking ReactRethinking React
Rethinking React
 
Docker in qa space
Docker in qa spaceDocker in qa space
Docker in qa space
 
Docker mentorweek
Docker mentorweekDocker mentorweek
Docker mentorweek
 
Testing strategies for Docker containers
Testing strategies for Docker containersTesting strategies for Docker containers
Testing strategies for Docker containers
 
Pipeline as code using Jenkins -Ministry of Testing
Pipeline as code using Jenkins -Ministry of TestingPipeline as code using Jenkins -Ministry of Testing
Pipeline as code using Jenkins -Ministry of Testing
 
Docker 101
Docker 101Docker 101
Docker 101
 
Go Is Your Next Language — Sergii Shapoval
Go Is Your Next Language — Sergii ShapovalGo Is Your Next Language — Sergii Shapoval
Go Is Your Next Language — Sergii Shapoval
 
JenkinsCI
JenkinsCIJenkinsCI
JenkinsCI
 
Microservices on Kubernetes - The simple way
Microservices on Kubernetes - The simple wayMicroservices on Kubernetes - The simple way
Microservices on Kubernetes - The simple way
 
Designing and coding for cloud-native applications using Python, Harjinder Mi...
Designing and coding for cloud-native applications using Python, Harjinder Mi...Designing and coding for cloud-native applications using Python, Harjinder Mi...
Designing and coding for cloud-native applications using Python, Harjinder Mi...
 
Docker from a team perspective
Docker from a team perspectiveDocker from a team perspective
Docker from a team perspective
 
Docker - An Introduction
Docker - An IntroductionDocker - An Introduction
Docker - An Introduction
 
Docker in Production
Docker in ProductionDocker in Production
Docker in Production
 

Viewers also liked

Politicheskie partii i_dvizheniya
Politicheskie partii i_dvizheniyaPoliticheskie partii i_dvizheniya
Politicheskie partii i_dvizheniyaDSenatov
 
Bethwel Final Presentation
Bethwel Final PresentationBethwel Final Presentation
Bethwel Final PresentationBethwel Onyando
 
Props Cheyenne
Props CheyenneProps Cheyenne
Props Cheyenne
haverstockmedia
 
Consumo Agro Ecológico
Consumo Agro Ecológico Consumo Agro Ecológico
Consumo Agro Ecológico
EtnoMarketing
 
óxidos ácidos
óxidos ácidosóxidos ácidos
óxidos ácidos
Alvaro Arias Alva
 
Karina moreno ci
Karina moreno ciKarina moreno ci
Karina moreno ci
Karina Moreno
 
Sound and music cheyenne
Sound and music cheyenneSound and music cheyenne
Sound and music cheyenne
haverstockmedia
 
대신리포트_대신브라우저_150306
대신리포트_대신브라우저_150306대신리포트_대신브라우저_150306
대신리포트_대신브라우저_150306DaishinSecurities
 
Sgi usa website resources 11-jun2013_final
Sgi usa website resources 11-jun2013_finalSgi usa website resources 11-jun2013_final
Sgi usa website resources 11-jun2013_finalJulie 妙子 Gramlich
 
Cvoice formation-mettre-en-oeuvre-les-communications-cisco-avec-la-voix-et-la...
Cvoice formation-mettre-en-oeuvre-les-communications-cisco-avec-la-voix-et-la...Cvoice formation-mettre-en-oeuvre-les-communications-cisco-avec-la-voix-et-la...
Cvoice formation-mettre-en-oeuvre-les-communications-cisco-avec-la-voix-et-la...CERTyou Formation
 
Booklet sgf prosmotr
Booklet sgf prosmotrBooklet sgf prosmotr
Booklet sgf prosmotr
SunHouse Team
 
OLIGURIA
OLIGURIAOLIGURIA
OLIGURIA
MonikaH18
 
The ultimate ketogenic diet starter guide v1.0
The ultimate ketogenic diet starter guide v1.0The ultimate ketogenic diet starter guide v1.0
The ultimate ketogenic diet starter guide v1.0
Nate Arnold
 
Pharmacology of Marijuana
Pharmacology of MarijuanaPharmacology of Marijuana
Aspects Psychologiques des Méthodes Agiles, R. Calle, P. Petit, Conférences (...
Aspects Psychologiques des Méthodes Agiles, R. Calle, P. Petit, Conférences (...Aspects Psychologiques des Méthodes Agiles, R. Calle, P. Petit, Conférences (...
Aspects Psychologiques des Méthodes Agiles, R. Calle, P. Petit, Conférences (...
Agilbee (Patrice Petit)
 

Viewers also liked (15)

Politicheskie partii i_dvizheniya
Politicheskie partii i_dvizheniyaPoliticheskie partii i_dvizheniya
Politicheskie partii i_dvizheniya
 
Bethwel Final Presentation
Bethwel Final PresentationBethwel Final Presentation
Bethwel Final Presentation
 
Props Cheyenne
Props CheyenneProps Cheyenne
Props Cheyenne
 
Consumo Agro Ecológico
Consumo Agro Ecológico Consumo Agro Ecológico
Consumo Agro Ecológico
 
óxidos ácidos
óxidos ácidosóxidos ácidos
óxidos ácidos
 
Karina moreno ci
Karina moreno ciKarina moreno ci
Karina moreno ci
 
Sound and music cheyenne
Sound and music cheyenneSound and music cheyenne
Sound and music cheyenne
 
대신리포트_대신브라우저_150306
대신리포트_대신브라우저_150306대신리포트_대신브라우저_150306
대신리포트_대신브라우저_150306
 
Sgi usa website resources 11-jun2013_final
Sgi usa website resources 11-jun2013_finalSgi usa website resources 11-jun2013_final
Sgi usa website resources 11-jun2013_final
 
Cvoice formation-mettre-en-oeuvre-les-communications-cisco-avec-la-voix-et-la...
Cvoice formation-mettre-en-oeuvre-les-communications-cisco-avec-la-voix-et-la...Cvoice formation-mettre-en-oeuvre-les-communications-cisco-avec-la-voix-et-la...
Cvoice formation-mettre-en-oeuvre-les-communications-cisco-avec-la-voix-et-la...
 
Booklet sgf prosmotr
Booklet sgf prosmotrBooklet sgf prosmotr
Booklet sgf prosmotr
 
OLIGURIA
OLIGURIAOLIGURIA
OLIGURIA
 
The ultimate ketogenic diet starter guide v1.0
The ultimate ketogenic diet starter guide v1.0The ultimate ketogenic diet starter guide v1.0
The ultimate ketogenic diet starter guide v1.0
 
Pharmacology of Marijuana
Pharmacology of MarijuanaPharmacology of Marijuana
Pharmacology of Marijuana
 
Aspects Psychologiques des Méthodes Agiles, R. Calle, P. Petit, Conférences (...
Aspects Psychologiques des Méthodes Agiles, R. Calle, P. Petit, Conférences (...Aspects Psychologiques des Méthodes Agiles, R. Calle, P. Petit, Conférences (...
Aspects Psychologiques des Méthodes Agiles, R. Calle, P. Petit, Conférences (...
 

Similar to mpandya_poster

JOSA TechTalks - Docker in Production
JOSA TechTalks - Docker in ProductionJOSA TechTalks - Docker in Production
JOSA TechTalks - Docker in Production
Jordan Open Source Association
 
Exploring Next Generation Buildpacks - Anand Rao & Scott Deeg
Exploring Next Generation Buildpacks - Anand Rao & Scott DeegExploring Next Generation Buildpacks - Anand Rao & Scott Deeg
Exploring Next Generation Buildpacks - Anand Rao & Scott Deeg
VMware Tanzu
 
Dockerized maven
Dockerized mavenDockerized maven
Dockerized maven
Matthias Bertschy
 
A curtain-raiser to the container world Docker & Kubernetes
A curtain-raiser to the container world Docker & KubernetesA curtain-raiser to the container world Docker & Kubernetes
A curtain-raiser to the container world Docker & Kubernetes
zekeLabs Technologies
 
Velocity NYC 2016 - Containers @ Netflix
Velocity NYC 2016 - Containers @ NetflixVelocity NYC 2016 - Containers @ Netflix
Velocity NYC 2016 - Containers @ Netflix
aspyker
 
[@NaukriEngineering] Docker 101
[@NaukriEngineering] Docker 101[@NaukriEngineering] Docker 101
[@NaukriEngineering] Docker 101
Naukri.com
 
Docker workshop GDSC_CSSC
Docker workshop GDSC_CSSCDocker workshop GDSC_CSSC
Docker workshop GDSC_CSSC
GDSC UofT Mississauga
 
Adventures in docker compose
Adventures in docker composeAdventures in docker compose
Adventures in docker compose
LinkMe Srl
 
Scala, docker and testing, oh my! mario camou
Scala, docker and testing, oh my! mario camouScala, docker and testing, oh my! mario camou
Scala, docker and testing, oh my! mario camou
J On The Beach
 
Containerization using docker and its applications
Containerization using docker and its applicationsContainerization using docker and its applications
Containerization using docker and its applications
Puneet Kumar Bhatia (MBA, ITIL V3 Certified)
 
Docker primer and tips
Docker primer and tipsDocker primer and tips
Docker primer and tips
Samuel Chow
 
Evaluating Serverless Machine Learning Performance On Google Cloud Run.pptx
Evaluating Serverless Machine Learning Performance On Google Cloud Run.pptxEvaluating Serverless Machine Learning Performance On Google Cloud Run.pptx
Evaluating Serverless Machine Learning Performance On Google Cloud Run.pptx
Prerana Khatiwada
 
141204 upload
141204 upload141204 upload
141204 upload
Quey-Liang Kao
 
Docker dev ops for cd meetup 12-14
Docker dev ops for cd meetup 12-14Docker dev ops for cd meetup 12-14
Docker dev ops for cd meetup 12-14
Simon Storm
 
Docker
DockerDocker
Velocity NYC 2017: Building Resilient Microservices with Kubernetes, Docker, ...
Velocity NYC 2017: Building Resilient Microservices with Kubernetes, Docker, ...Velocity NYC 2017: Building Resilient Microservices with Kubernetes, Docker, ...
Velocity NYC 2017: Building Resilient Microservices with Kubernetes, Docker, ...
Ambassador Labs
 
The State of the Veil Framework
The State of the Veil FrameworkThe State of the Veil Framework
The State of the Veil Framework
VeilFramework
 
Docker up and Running For Web Developers
Docker up and Running For Web DevelopersDocker up and Running For Web Developers
Docker up and Running For Web Developers
BADR
 
Docker Up and Running for Web Developers
Docker Up and Running for Web DevelopersDocker Up and Running for Web Developers
Docker Up and Running for Web Developers
Amr Fawzy
 

Similar to mpandya_poster (20)

JOSA TechTalks - Docker in Production
JOSA TechTalks - Docker in ProductionJOSA TechTalks - Docker in Production
JOSA TechTalks - Docker in Production
 
Exploring Next Generation Buildpacks - Anand Rao & Scott Deeg
Exploring Next Generation Buildpacks - Anand Rao & Scott DeegExploring Next Generation Buildpacks - Anand Rao & Scott Deeg
Exploring Next Generation Buildpacks - Anand Rao & Scott Deeg
 
Dockerized maven
Dockerized mavenDockerized maven
Dockerized maven
 
A curtain-raiser to the container world Docker & Kubernetes
A curtain-raiser to the container world Docker & KubernetesA curtain-raiser to the container world Docker & Kubernetes
A curtain-raiser to the container world Docker & Kubernetes
 
Velocity NYC 2016 - Containers @ Netflix
Velocity NYC 2016 - Containers @ NetflixVelocity NYC 2016 - Containers @ Netflix
Velocity NYC 2016 - Containers @ Netflix
 
[@NaukriEngineering] Docker 101
[@NaukriEngineering] Docker 101[@NaukriEngineering] Docker 101
[@NaukriEngineering] Docker 101
 
Docker workshop GDSC_CSSC
Docker workshop GDSC_CSSCDocker workshop GDSC_CSSC
Docker workshop GDSC_CSSC
 
Adventures in docker compose
Adventures in docker composeAdventures in docker compose
Adventures in docker compose
 
Scala, docker and testing, oh my! mario camou
Scala, docker and testing, oh my! mario camouScala, docker and testing, oh my! mario camou
Scala, docker and testing, oh my! mario camou
 
Containerization using docker and its applications
Containerization using docker and its applicationsContainerization using docker and its applications
Containerization using docker and its applications
 
Containerization using docker and its applications
Containerization using docker and its applicationsContainerization using docker and its applications
Containerization using docker and its applications
 
Docker primer and tips
Docker primer and tipsDocker primer and tips
Docker primer and tips
 
Evaluating Serverless Machine Learning Performance On Google Cloud Run.pptx
Evaluating Serverless Machine Learning Performance On Google Cloud Run.pptxEvaluating Serverless Machine Learning Performance On Google Cloud Run.pptx
Evaluating Serverless Machine Learning Performance On Google Cloud Run.pptx
 
141204 upload
141204 upload141204 upload
141204 upload
 
Docker dev ops for cd meetup 12-14
Docker dev ops for cd meetup 12-14Docker dev ops for cd meetup 12-14
Docker dev ops for cd meetup 12-14
 
Docker
DockerDocker
Docker
 
Velocity NYC 2017: Building Resilient Microservices with Kubernetes, Docker, ...
Velocity NYC 2017: Building Resilient Microservices with Kubernetes, Docker, ...Velocity NYC 2017: Building Resilient Microservices with Kubernetes, Docker, ...
Velocity NYC 2017: Building Resilient Microservices with Kubernetes, Docker, ...
 
The State of the Veil Framework
The State of the Veil FrameworkThe State of the Veil Framework
The State of the Veil Framework
 
Docker up and Running For Web Developers
Docker up and Running For Web DevelopersDocker up and Running For Web Developers
Docker up and Running For Web Developers
 
Docker Up and Running for Web Developers
Docker Up and Running for Web DevelopersDocker Up and Running for Web Developers
Docker Up and Running for Web Developers
 

mpandya_poster

  • 1. Autograding with Docker containers Student: Mihir M. Pandya, Advisor: David R. O’Hallaron Electrical and Computer Engineering, Carnegie Mellon University, Pittsburgh, PA Introduction Architecture Implementation Motivation Future Work ● Autolab is a course management system developed at Carnegie Mellon University for autograding submissions of programmatic assignments and labs. ● Tango, the autograder used by Autolab, is a stand- alone job management service. ● Each submission is graded in Virtual Machines running on a set of cluster machines. ● Grading VMs must provide a homogeneous environment for submissions. ● This project aims to replace VMs with Docker containers. ● Tango is a stand-alone job management service. Part of its architecture is outlined in below. (1) Jobs get added to the job queue when clients call Tango’s API. (2) Tango finds the next schedulable job in the job queue and dispatches it. (3 to 7) The worker thread uses the VMMS library for a given platform to manage grading VMs. ● Integrating Docker with Tango involves: ○ Implementing the VMMS library for Docker. ○ Bootstrapping host machines to run Docker and be accessible over SSH. Acknowledgements initializeVM waitVM copyIn runJob copyOut distDocker ec2SSH tashiSSH ● Docker containers provide isolation that can ensure a homogeneous environment for jobs to run in. ● Host machines that run Docker can be added and removed live. ● Docker provides image support that allows for more customized jobs to run with additional software. ● Support for Docker exists on most major platforms such as Ubuntu, Mac OS X and Windows. ● Docker containers are light-weight and so they initialize faster and can be discarded. I would like to thank my research advisor, Professor David R. O’Hallaron, for his guidance throughout this project. I would also like to thank the Autolab team for their support. Lastly, I thank CMU’s Computing Services for the infrastructure support. The Autolab Project | Meeting of the Minds | May 06, 2015 ● Multiplex autograding platforms on the job-level. The design is abstract enough to allow this. ● Host an internal repository of Docker images. Instructors could then have immediate control of the images used to run assessments. ● initializeVM: Assign a host machine for container to run on. Use round-robin for assignment. ● waitVM: Ensure host machine is reachable by SSH. ● copyIn: Create a directory on host machine and copy all input files to that directory. ● runJob: Start a Docker container with the given Docker image and mount the previously created directory as a volume on to that container. Then, run the job and write the feedback file to that volume. ● copyOut: Copy feedback file from the volume to Tango’s directory of feedback files. ● destroyVM: Destroy the Docker container (docker rm CONTAINER) and its corresponding volume directory on this host machine. Results ● The implementation was ran on Greatwhite. Initally, two t1.micro EC2 instances were used as host machines. Following this, Tigershark was used as a host machine. ● The first assessment from 15-213, Datalab, was used to test the overall correctness. ● Results were similar to that of the existing system.