SlideShare a Scribd company logo
1 of 1
Download to read offline
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 TravisDmitry Baryshkov
 
The Self-Service Developer - GOTOCon CPH
The Self-Service Developer - GOTOCon CPHThe Self-Service Developer - GOTOCon CPH
The Self-Service Developer - GOTOCon CPHLaszlo Fogas
 
An Introduction to Docker
An Introduction to DockerAn Introduction to Docker
An Introduction to Dockerbwinterton
 
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 KubernetesAlexei Ledenev
 
Jenkins Declarative Pipelines 101
Jenkins Declarative Pipelines 101Jenkins Declarative Pipelines 101
Jenkins Declarative Pipelines 101Malcolm Groves
 
Docker in qa space
Docker in qa spaceDocker in qa space
Docker in qa spaceNalini Kanth
 
Testing strategies for Docker containers
Testing strategies for Docker containersTesting strategies for Docker containers
Testing strategies for Docker containersAlexei 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 TestingSwapnil Jadhav
 
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 ShapovalGlobalLogic Ukraine
 
Microservices on Kubernetes - The simple way
Microservices on Kubernetes - The simple wayMicroservices on Kubernetes - The simple way
Microservices on Kubernetes - The simple waySuraj 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 perspectiveEdwin Vlieg
 
Docker - An Introduction
Docker - An IntroductionDocker - An Introduction
Docker - An IntroductionKnoldus Inc.
 

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
 
Consumo Agro Ecológico
Consumo Agro Ecológico Consumo Agro Ecológico
Consumo Agro Ecológico EtnoMarketing
 
Sound and music cheyenne
Sound and music cheyenneSound and music cheyenne
Sound and music cheyennehaverstockmedia
 
대신리포트_대신브라우저_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 prosmotrSunHouse Team
 
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.0Nate Arnold
 
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

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 DeegVMware Tanzu
 
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 & KuberneteszekeLabs Technologies
 
Velocity NYC 2016 - Containers @ Netflix
Velocity NYC 2016 - Containers @ NetflixVelocity NYC 2016 - Containers @ Netflix
Velocity NYC 2016 - Containers @ Netflixaspyker
 
[@NaukriEngineering] Docker 101
[@NaukriEngineering] Docker 101[@NaukriEngineering] Docker 101
[@NaukriEngineering] Docker 101Naukri.com
 
Adventures in docker compose
Adventures in docker composeAdventures in docker compose
Adventures in docker composeLinkMe 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 camouJ On The Beach
 
Docker primer and tips
Docker primer and tipsDocker primer and tips
Docker primer and tipsSamuel 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.pptxPrerana Khatiwada
 
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-14Simon Storm
 
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 FrameworkVeilFramework
 
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 DevelopersBADR
 
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 DevelopersAmr 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.