Openlab is a platform which aims to provide automated testing and evaluation of students based on their source code from the assignments.
1 of 34
Download to read offline
More Related Content
Openlab
1. Openlab
Automated testing and evaluation platform of the source code from
assignments
Mihai Iachimovschi
iachimih@鍖t.cvut.cz
February 24, 2015
Mihai Iachimovschi iachimih@鍖t.cvut.cz Openlab February 24, 2015 1 / 19
2. Problem description
Students have a lot of assignments which are veri鍖ed and
evaluated in a classical manner.
Mihai Iachimovschi iachimih@鍖t.cvut.cz Openlab February 24, 2015 2 / 19
3. Problem description (cont.)
The process of veri鍖cation is very time consuming and ine鍖cient
for the professor
Mihai Iachimovschi iachimih@鍖t.cvut.cz Openlab February 24, 2015 3 / 19
4. Perfect solution
Building a platform that will:
Keep track of all assignments;
Mihai Iachimovschi iachimih@鍖t.cvut.cz Openlab February 24, 2015 4 / 19
5. Perfect solution
Building a platform that will:
Keep track of all assignments;
Track deadlines for assignments;
Mihai Iachimovschi iachimih@鍖t.cvut.cz Openlab February 24, 2015 4 / 19
6. Perfect solution
Building a platform that will:
Keep track of all assignments;
Track deadlines for assignments;
Accept assignments submissions;
Mihai Iachimovschi iachimih@鍖t.cvut.cz Openlab February 24, 2015 4 / 19
7. Perfect solution
Building a platform that will:
Keep track of all assignments;
Track deadlines for assignments;
Accept assignments submissions;
Test automatically the submissions;
Mihai Iachimovschi iachimih@鍖t.cvut.cz Openlab February 24, 2015 4 / 19
8. Perfect solution
Building a platform that will:
Keep track of all assignments;
Track deadlines for assignments;
Accept assignments submissions;
Test automatically the submissions;
Evaluate students based on prede鍖ned tests;
Mihai Iachimovschi iachimih@鍖t.cvut.cz Openlab February 24, 2015 4 / 19
9. Advantages
Having such a system will o鍖er us features like:
Penalization for late submissions;
Mihai Iachimovschi iachimih@鍖t.cvut.cz Openlab February 24, 2015 5 / 19
10. Advantages
Having such a system will o鍖er us features like:
Penalization for late submissions;
Rewards for early submissions;
Mihai Iachimovschi iachimih@鍖t.cvut.cz Openlab February 24, 2015 5 / 19
11. Advantages
Having such a system will o鍖er us features like:
Penalization for late submissions;
Rewards for early submissions;
Saving time of professors and students;
Mihai Iachimovschi iachimih@鍖t.cvut.cz Openlab February 24, 2015 5 / 19
12. Advantages
Having such a system will o鍖er us features like:
Penalization for late submissions;
Rewards for early submissions;
Saving time of professors and students;
Motivating competition between students;
Mihai Iachimovschi iachimih@鍖t.cvut.cz Openlab February 24, 2015 5 / 19
13. Advantages
Having such a system will o鍖er us features like:
Penalization for late submissions;
Rewards for early submissions;
Saving time of professors and students;
Motivating competition between students;
Helping professor to focus on teaching rather than verifying;
Mihai Iachimovschi iachimih@鍖t.cvut.cz Openlab February 24, 2015 5 / 19
14. Constraints
The threats that can tangle:
Security:
A user is able to submit malicious code to the server;
Mihai Iachimovschi iachimih@鍖t.cvut.cz Openlab February 24, 2015 6 / 19
15. Constraints
The threats that can tangle:
Security:
A user is able to submit malicious code to the server;
Computing power:
Multiple users can submit unoptimized code that can be overloading
the server;
Mihai Iachimovschi iachimih@鍖t.cvut.cz Openlab February 24, 2015 6 / 19
23. Virtualization
Classical virtualization? Maybe, but no.
Reasons:
Too much overhead by virtualizing the hardware;
Each virtual instance should have its own OS;
Less e鍖cient for our use case;
Mihai Iachimovschi iachimih@鍖t.cvut.cz Openlab February 24, 2015 10 / 19
28. What is a container?
A container combines two things:
cgroups
namespaces
Mihai Iachimovschi iachimih@鍖t.cvut.cz Openlab February 24, 2015 13 / 19
29. Linux cgroups
cgroups represent:
Group of processes;
Can be nested;
Limits and isolates:
CPU;
Memory;
Disk I/O;
Network, etc;
Mihai Iachimovschi iachimih@鍖t.cvut.cz Openlab February 24, 2015 14 / 19
30. Linux namespaces
namespaces restrict your view of the system:
Mounts (CLONE NEWNS);
UTS (CLONE NEWUTS);
IPC (CLONE NEWIPC);
PID (CLONE NEWPID);
Networks (CLONE NEWNET);
User (CLONE NEWUSER);
Mihai Iachimovschi iachimih@鍖t.cvut.cz Openlab February 24, 2015 15 / 19
31. Docker
For our system we will use Docker containers.
Mihai Iachimovschi iachimih@鍖t.cvut.cz Openlab February 24, 2015 16 / 19
32. Docker in a docker
Mihai Iachimovschi iachimih@鍖t.cvut.cz Openlab February 24, 2015 17 / 19
33. Docker - multiple applications
This is how docker can execute multiple, completely isolated
applications.
Mihai Iachimovschi iachimih@鍖t.cvut.cz Openlab February 24, 2015 18 / 19