Schedule
Tue, Thu 12:00-2:00pm @ PHO211
Announcements
- Student to project assignments. Please check to see you are assigned.
Links
Click here for current schedule
As part of the class, we will be using and referring to:
- Class syllabus and other information (this page)
- Piazza (used for paper reviews and class discussions)
- Blackboard (please fill out the test so we can understand your background and set you up your accounts properly)
- Public github repositories for the class
Course Outline
The course will combine group reading and discussion of influential publications in cloud computing, some lectures by instructor and by invited speakers, independent review of talks coupled with classroom discussion, and a large project.
For the most part, the course will be flipped, with most of the material independently studied, and then group discussion of the material.
The project will be done by teams of 3 to 5 students working with a mentor; depending on the project an industry leader and/or developer with a relavent project, or a senior graduate student or a postdoc working on a relavent research project. It will exploit the MOC as well as industry clouds (Amazon AWS, Google cloud, Rackspace, ...)
Course will give students:
- understanding of cloud computing at the IaaS level in general, and open stack in particular
- understanding and experience with working as part of an agile team, with experience in running and participating in scrums, planning sessions, ...
- extensive experience with github, agile tools, python, emacs, and other modern development tools
- an artifact that they will have developed that, if successful, will be part of a broader initiative
- experience working in a research environment, and
- a report, that, if successful, will be submitted as a publication.
Instructors
Orran Krieger (okrieg at bu dot edu), Ata Turk (ataturk at bu dot edu), Michael Daitzman (michael.daitzman at vecna dot com), Jason Hennessey (henn at bu dot edu)Prerequisites
For EC students/grads:
This course assumes students have a strong programming background. Undergrads must have taken EC327 or equivalent and preferably another software course, EC330 or EC440, before taking this course. Graduate students must have taken a rigorous programming class recently, such as EC504 or equivalent (or have major software design experience in industry). If you have questions about the prerequisites, please consult the instructors.
For CS students/grads:
This course assumes students have a strong programming background. Undergrads must have taken CS350 Operating Systems (preferably CS552 as well), CS 460 Database Systems (preferably CS562 as well), and CS 455 Computer Networks (preferably but not must) courses. Graduate students must have taken a rigorous programming class recently, (or have major software design experience). If you have questions about the prerequisites, please consult the instructors.Workload
Each week we will be covering on average two research papers and one practitioner paper or other teaching material. You will be expected to read, review and discuss. These papers will likely require that you find and read additional material as necessary to ensure your comprehension. Do not underestimate the amount of work this can be. You will be required to submit a written review of the papers prior to class. You will also be expected to actively participate in the in class discussion. Each student is expected to lead one more of the class discussions by summarizing the paper and seeding discussions with questions and observations based on the paper.
Projects
In addition, to the weekly papers, there will be a major project. This will be teams of 3 to 5 students, starting from the course beginning, with a mentor, from industry, senior graduate student, or one of the instructors.
The project is due by the end of the exam week. The project presentations will be given in the form of a final poster and a demo. There will also be demos scheduled throughout the course to demonstrate regular progress.
Currently offered projects are given below. Come back for more details in projects. This list will be updated until Jan 20, 2015.
- Continuous Integration in the cloud
- Radiology in the cloud
- Plugin architecture for The Mass Open Cloud GUI
- Extending the MOC GUI
- Recursive HaaS with fast provisioning
- Social news serving system
- Real Time Drug Safety Monitoring in the Cloud
- Programmable OpenStack Network Services in Maple
- CONS3RT MOC Connector
- Network-aware Container Distribution System
- Prototype of “Multi-Thing” IoT Applications Running over OpenDaylight
- IoT Resource Tree Representation for Massively Large Data Sets
- MBTA Bus Performance: Data Capture and Analysis
- Recovery in the cloud.
- Per-tenant pass-through Openstack services
There will be no final exam.
Grading
- paper discussions, summaries, and reviews (written and verbal) 30%
- project proposal 10%
- bi-weekly project demo and verbal status in aggregate 30%
- final project result and report 30%
Evaluation of project will involve evaluation of demo, poster, code reviews, weekly review of agile progress, and mentor and project partner reviews.
Syllabus
The first two weeks we will do course intro, agile methods, and project pitches from potential mentors, as well as some paper reviews. After that. each week we will cover two papers or talks on cloud computing, one discussion topic on agile development or have an industry speaker about a recent cloud technology, and spend one hour on demos from a subset of the projects. Project teams will be expected to give a demo every second week.
- Before first week (Jan 15 to Jan 20):
- Read Paper Reviewing Guidelines
- Read Projects Descriptions of all projects
- Read Project Management Guidelines
- Read the two papers of Week 1, and scan over the Agile reading list for the first week
- Sign up to course page on Piazza if you haven't done so. After that, you can access the course page here.
- Check out the tools to be used for the course: github and git workflow, trello , Piazza
- Sign up for three projects using the project poll (you will select up to 3, we will assign you to only one project)
- Week 1 (Jan 20, Jan 22)
- Projects and Agile
- Walk through of a project description template, example project description
- Scrum roles, Artifacts and rituals, walk through an example of weekly plan,
- Checkout: The Agile Manifesto , Context for the Agile Manifesto, Core Scrum
- Task Boards, User Stories, Backlog Creation Using Trello, Working with Git
- Paper reading: What is cloud computing
- Projects and Agile
- End of Week 1 (eow1) you will have finalized project groups, training on project management (trello, git, agile), ...
- Week 2 (Jan 27, Jan 29)
- Projects and Agile
- Story creation using roles, Definition of ready, Sizing stories/Levels of effort, Hours vs Velocity, The Whole Team Approach, Risk management
- Populating Backlogs, Backlog Grooming, Incremental Development
- Burndown Charts, Agile Scheduling
- Paper reading: Our biases
- Projects and Agile
- End of Week 2 (eow2) you will have met with mentors, create a backlog, submit a project outline
- Week 3 (Feb 3, Feb 5): Virtualization
- End of Week 3 (eow3) you will have submitted project proposal, and created full backlog (note: this will be marked)
- Week 4 (Feb 10, Feb 12): Virtualization
- Week 5 (Feb 19): The story changes; new networking
- Week 6 (Feb 24, Feb 26): MapReduce
- Week 7 (Mar 03, Mar 05): Beyond MapReduce
- Spring break
- Programming tutorial assignment on Hadoop, Pig, and Hive:
Follow the instructions:
- Install Virtualbox (https://www.virtualbox.org) if you haven’t done so already
- Download and install the Hortonworks Sandbox image for Virtualbox from http://hortonworks.com/products/hortonworks-sandbox/#install
- Go through the following tutorials:
- Hadoop: http://hortonworks.com/hadoop-tutorial/introducing-apache-hadoop-developers/
- Simple Hive and Pig: http://hortonworks.com/hadoop-tutorial/hello-world-an-introduction-to-hadoop-hcatalog-hive-and-pig/
- Hive: http://hortonworks.com/hadoop-tutorial/how-to-process-data-with-apache-hive/
- Pig: http://hortonworks.com/hadoop-tutorial/how-to-process-data-with-apache-pig/
- Write a one paragraph summary of your experience with each tutorial, submit your 4 paragraph summary to blackboard. We will grade these summaries.
- Programming tutorial assignment on Hadoop, Pig, and Hive:
Follow the instructions:
- Week 8 (Mar 17, Mar 19):
- Flat Datacenter Storage [ video (Jeremy Elson presenting the paper) ]
- Ceph: a scalable, high-performance distributed file system
[
an introductory video
]
[ Also check: CRUSH, data placement algorithm of CEPH and RADOS, underlying object store of CEPH. ]
- Week 9 (Mar 24, Mar 26):
- Week 10 (Mar 31, Apr 02):
- Week 11 (Apr 07, Apr 09):
- Week 12 (Apr 14, Apr 16):
- Week 13 (Apr 21, Apr 23):
- Week 14 (Apr 28, Apr 30): TBD