Dockerizing CS50: From Cluster to Cloud to Appliance to Container by David Malan and David...
-
Upload
docker-inc -
Category
Technology
-
view
3.469 -
download
4
Transcript of Dockerizing CS50: From Cluster to Cloud to Appliance to Container by David Malan and David...
Dockerizing CS50From Cluster to Cloud to Appliance to Container
David J. Malan [email protected]
Dan Armendariz [email protected]
• CS50 • 800 students at Harvard College • 350 students at Yale College • 300 students at Harvard Extension
• CS50 for MBAs • 90 students at Harvard Business School
• CS50x • 700,000 registrants • Kansas City, Miami, Rhode Island, St. Louis, ... • Bolivia, Chile, Netherlands, Ukraine, ...
• CS50 AP • 40 high schools • 1,500 students
• CS50 • 800 students at Harvard College • 350 students at Yale College • 300 students at Harvard Extension
• CS50 for MBAs • 90 students at Harvard Business School
• CS50x • 700,000 registrants • Kansas City, Miami, Rhode Island, St. Louis, ... • Bolivia, Chile, Netherlands, Ukraine, ...
• CS50 AP • 40 high schools • 1,500 students
• CS50 • 800 students at Harvard College • 350 students at Yale College • 300 students at Harvard Extension
• CS50 for MBAs • 90 students at Harvard Business School
• CS50x • 700,000 registrants • Kansas City, Miami, Rhode Island, St. Louis, ... • Bolivia, Chile, Netherlands, Ukraine, ...
• CS50 AP • 40 high schools • 1,500 students
• CS50 • 800 students at Harvard College • 350 students at Yale College • 300 students at Harvard Extension
• CS50 for MBAs • 90 students at Harvard Business School
• CS50x • 700,000 registrants • Kansas City, Miami, Rhode Island, St. Louis, ... • Bolivia, Chile, Netherlands, Ukraine, ...
• CS50 AP • 40 high schools • 1,500 students
+ managed by university
+ familiar to students
– no root access
– outdated software
– no support after hours
+ root access + examine students' code in situ + no need for space, power, or cooling + more reliable + more scalable + topical for class
– time-consuming to administer – difficult (at the time) to configure – unfamiliar to students – latency
+ root access + examine students' code in situ + lower latency
– time-consuming to administer – need for space, power, or cooling – less scalable – less reliable
+ more familiar environment + graphical tools + distributed load + Apache, MySQL + students could add software + anyone could engage actively
– time-consuming to prepare – virtualization overhead – brickable (hypervisor bugs) – slow to boot, resume
docker-compose.yml
mysql:container_name:mysqlimage:mysqlenvironment:MYSQL_DATABASE:appMYSQL_ROOT_PASSWORD:12345
docker-compose.ymlapp:build:.container_name:appenvironment:CACHE_HOST:memcachedCACHE_PORT:11211DB_HOST:mysqlDB_NAME:appDB_PASS:12345DB_USER:rootlinks:-memcached-mysqlports:-"80:80"volumes:-.:/srv/www
Makefiledefault:up
pull: dockerlogin dockerpullcs50/app
build: docker-composebuild
rebuild: docker-composebuild--no-cache
up:build docker-composeup
bash: dockerexec-itappbash
DockerfileFROMide50
#installCS50pluginsADD./files/harvard.cs50.catplugins/c9.ide.cs50.cat[..]
#Populateoffline-specificenvironmentvariablesRUNecho"exportUSER=ubuntu\n\exportC9_PROJECT=ide50-offline\n\exportC9_USER=jharvard\n\exportC9_HOSTNAME=\$OFFLINE_IP\n\exportC9_PORT=\$OFFLINE_PORT\n\exportIDE_OFFLINE=1”>/etc/profile.d/offline.sh
#installCloud9SDKRUNgitclonehttps://github.com/c9/core.gitc9sdk
Dockerizing CS50From Cluster to Cloud to Appliance to Container
David J. Malan [email protected]
Dan Armendariz [email protected]