+ All Categories
Home > Documents > Armando Fox and David Patterson UC Berkeley June 21, 2010

Armando Fox and David Patterson UC Berkeley June 21, 2010

Date post: 06-Jan-2016
Category:
Upload: dawson
View: 25 times
Download: 0 times
Share this document with a friend
Description:
Software Engineering for Software as a Service: A Software Engineering Course with Student Projects that Actually Work!. Armando Fox and David Patterson UC Berkeley June 21, 2010. Overview. Web 2.0 SaaS is a great motivator for teaching software skills - PowerPoint PPT Presentation
Popular Tags:
16
UC Berkeley Software Engineering for Software as a Service: A Software Engineering Course with Student Projects that Actually Work! Armando Fox and David Patterson UC Berkeley June 21, 2010 1
Transcript
Page 1: Armando Fox and David Patterson UC Berkeley June 21, 2010

UC Berkeley

Software Engineering for Software as a Service:

A Software Engineering Course with Student Projects that Actually Work!

Armando Fox and David Patterson

UC Berkeley

June 21, 2010

1

Page 2: Armando Fox and David Patterson UC Berkeley June 21, 2010

Overview

• Web 2.0 SaaS is a great motivator for teaching software skills– students get to build artifacts they themselves use– some projects continue after course is over– opportunity to (re-)introduce “big ideas” in software

development/architecture

• Cloud computing is great fit for CS courses– elasticity around project deadlines– easier administration of courseware– students can take work product with them after

course (e.g. use of Eucalyptus in RAD Lab)

2

Page 3: Armando Fox and David Patterson UC Berkeley June 21, 2010

Trends over Next Decade

• Computing at Extremes: Mobile Client + Cloud• Expanding Software As A Service (SaaS)

– Applications for the datacenter– Web 2.0 apps delivered via browser– Shrink wrap SW Services over Internet

• Cloud Computing Accelerates SaaS– Pay-for-use computing, storage, network transfer– Amazon Web Services, Google Apps, M/S Azure, …– Instant Scale-up, Scale-down– Rewards Conservation: Can cost 0$ when doing 0

3

Page 4: Armando Fox and David Patterson UC Berkeley June 21, 2010

Software Education in 2010 (or: the case for teaching SaaS)

• New: languages & tools are actually good now• Ruby, Python, etc. are tasteful and allow

reinforcing important CS concepts (higher-order programming, closures, etc.)

• order-of-magnitude greater productivity than 1 generation ago, including for testing

4

Page 5: Armando Fox and David Patterson UC Berkeley June 21, 2010

Team Skills

• Web 2.0 SaaS apps increasingly composed of loosely coupled teams doing Develop/Assess/-Deploy/Operate (DADO)

• Technical as well as “social” team skills needed– repository management– branching, tagging, merging– distributing responsibility during collaboration

• Web 2.0 SaaS == Great fit for ugrad education– Apps can be developed/deployed in 1 semester– Rapid gratification =projects outlive the course– Team skills in context of agile development

5

Page 6: Armando Fox and David Patterson UC Berkeley June 21, 2010

SaaS Using Ruby on Rails at Cal

• What’s different about DADO for SaaS– Basic *ilities: Horizontal scaling, load balancing, H/A– Consistency, caching, database scaling, CAP thm– Benchmarking, tuning, understanding SLA’s

• How CS “big ideas” make RoR high productivity– H.O. programming, metaprogramming, introspection

=ActiveRecord ORM– runtime code generation =AJAX support

6

Page 7: Armando Fox and David Patterson UC Berkeley June 21, 2010

Web 2.0 SaaS as Course Driver

• Almost all students: ability to design own app was key to appeal of the course– design things they or their peers would use

• High productivity frameworks =projects work– actual gratification from using CS skills, vs. getting N

complex pieces of Java code to work but not integrate

• Fast-paced semester is good fit for agile iteration-based design

• Tools used are same as in industry

7

Page 8: Armando Fox and David Patterson UC Berkeley June 21, 2010

Cloud Computing as a Supporting Technology

• Cloud Computing Elasticity is great for courses!– Donation from AWS; ~$100/student– Watch a database fall over: ~200 servers needed – Lab deadlines, final project demos

• VM image simplifies courseware distribution– Prepare image ahead of time– Students can be root if need to install weird SW, libs...

• students get better hardware – cost associativity– cloud provider updates HW more frequently

• VM images compatible with Eucalyptus—enables hybrid cloud computing

8

Page 9: Armando Fox and David Patterson UC Berkeley June 21, 2010

Success stories

9

Page 10: Armando Fox and David Patterson UC Berkeley June 21, 2010

Questions?

• Help yourself to our materials (http://radlab.cs.berkeley.edu)

10

Page 11: Armando Fox and David Patterson UC Berkeley June 21, 2010

Planning a SaaS course?

• Pick a highly-productive framework– Projects can be deployed, and will actually work– Students can use production-quality tools & methods– We used Ruby on Rails; Google AppEngine probably also a good

choice

• Avail yourself of *-as-a-service– Google Code for Subversion version control– PivotalTracker for project tracking– EC2 for app deployment (Amazon is very good about donating AWS

credits for education)

• Tie high-productivity mechanisms back to CS “big ideas”– Code generation, introspection/reflection, metaprogramming, higher

order programming

• Steal our materials (http://radlab.cs.berkeley.edu)

11

Page 12: Armando Fox and David Patterson UC Berkeley June 21, 2010

SaaS Courses at CalLower

div.Upper

div.Grad.

Understand Web 2.0 app structure ✔

Understand high-level abstraction toolkits like RoR

✔ ✔

How high-level abstractions implemented

✔ ✔

Scaling/operational challenges of SaaS

✔ ✔

Develop & deploy SaaS app✔ ✔

Implement new abstractions, languages, or analysis for SaaS

12

Page 13: Armando Fox and David Patterson UC Berkeley June 21, 2010

Topic coverage & labs

• “Hello World” web app in Rails• Unit-test-driven design of a specified module• User-story-driven design of an app (work in

teams of 2 or 3 students)• Deploy own app to Amazon EC2• Use Cloudstone benchmark app to saturate

MySQL database (using EC2)• Experiment with different types of caching to

observe effect on database saturation• Final demo: publicly-deployed app, short talk

13

Page 14: Armando Fox and David Patterson UC Berkeley June 21, 2010

Comparison to other SW Eng./programming courses

• Open-ended project– vs. “fill in blanks” programming

• Focus on SaaS– vs. Android, Java desktop apps, etc.

• Focus on RoR as high-level framework• Projects expected to work

– vs. working pieces but no artifact– most projects actually do work, some continue life

outside class

• Focus on how “big ideas” in languages/programming enable high productivity

14

Page 15: Armando Fox and David Patterson UC Berkeley June 21, 2010

Moving to cloud computing

What Before After

Compute servers 4 nodes of R cluster EC2

Storage local Thumper S3, EBS

Authentication login per student, MySQL username/tables per student, ssh key for SVN per student

EC2 keypair + Google account

Database Berkeley ITS shared MySQL

MySQL on EC2

Version control local SVN repository Google Code SVN

Horizontal scaling ??? EC2 + haproxy/nginx

Software stack management

burden Jon Kuroda create AMI

15

Page 16: Armando Fox and David Patterson UC Berkeley June 21, 2010

Success stories, cont.

• Fall 2009 project: matching undergrads to research opportunities

• Fall 2009 project: Web 2.0 AJAXy course scheduler with links to professor reviews

• Spring 2010 projects: apps to stress RAD Lab infrastructure– gRADit: vocabulary review as a game– RADish: comment filtering taken to a whole new level

16


Recommended