Cloud Computing in Education by jgdQQ5M7


									         UC Berkeley

Cloud Computing in Education

     Armando Fox, Will Sobel,
         Dave Patterson
Clod computing
                 SaaS Courses Now
                                    Lower   Upper   Grad.
                                     div.    div.
Understand Web 2.0 app structure     ✔
Understand high-level abstraction    ✔       ✔
toolkits like RoR
How high-level abstractions                  ✔       ✔
Scaling/operational challenges of
                                             ✔       ✔

                                     ✔       ✔
Develop & deploy SaaS app

Implement new abstractions,
          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
         SaaS Using RoR, Fall 2008:
               Course Goals
• How does SaaS development, deployment,
  testing, operations differ from conventional SW
  – Basic *ilities: Horizontal scaling, load balancing, H/A
  – Consistency, caching, database scaling, CAP
  – Benchmarking, tuning, understanding SLA’s
• How to apply “big ideas” in CS to achieve high
  productivity, reusability, extensibility?
  – H.O. programming, functional programming
  – metaprogramming, code generation
• Major Vehicle: design, develop & deploy SaaS
  app of your choice, in small teams
              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   EC2 keypair +
                     username/tables per        Google account
                     student, ssh key for SVN
                     per student
Database             Berkeley ITS shared        MySQL on EC2
Version control      local SVN repository       Google Code SVN
Horizontal scaling   ???                        EC2 +
Software stack       burden Jon Kuroda          create AMI
            Moving to Cloud Computing
• Elasticity is great for courses!
   – Donation from AWS; ~$100/student
   – Watch a database fall over: would have needed 200
     servers for ~20 project teams
   – Lab deadlines, final project demos
• VM image simplifies courseware distribution
   –   Prepare image ahead of time
   –   Update image during course
   –   Students use EBS for persistent data
   –   Students can be root; repair damage = reinstantiate
              Running courses on CC
• SW distribution & mgmt much easier
   – issues with license servers/pools?
   – students can be root
   – can install weird OS, libs, apps, etc. as needed
• distribute responsibility of handling N courses to
  the N TA’s
   – can have “canonical” course images augmented
     selectively each semester
• students get better hardware
   – cost associativity
   – cloud provider updates HW more frequently
         SaaS Changes Demands on
          Instructional Computing?
• Runs on your laptop or   • Runs in cloud, remote
  class Un*x account         management
• Good enough for course   • Your friends can use it 
  project                    *ilities matter
• project scrapped when    • Gain customers  app
  course ends                outlives course
• Intra-class teams        • Teams cross class &
                             UCB boundaries
• Courseware: tarball or   • Courseware: VM image
  custom installs
• Code never leaves UCB    • Code released open
                             source, résumé builder
_____________________      ______________________
• Per-student/per-course   • General, collaboration-
  account                    enabling tools & facilities
• Close content gap between current SW
  Eng. syllabus and this course
• Provide SCADS prototype for project use
• More use of PeepCode screencasts
  – Challenge: Open source + Critical mass SaaS
    developers + High productivity tools =>
    documentation can’t keep up with technology
• Interview course alumni 5 years later
• Feedback from employers/industry
• RoR programming club
 UC Berkeley

Backup slides
             New Things We Tried
• PeepCode: very high quality screencasts
  – Challenge: Open source + Critical mass SaaS
    developers + High productivity tools =>
    documentation can’t keep up with technology
• Things we didn’t try (this time):
  – specifically mobile apps
  – unusual clients (assume browser +
• Major holes in conceptual CS61A
  – Closures & concept of scoping rules
  – Functional programming idioms
  – Higher order & data driven programming
  – Metaprogramming/code generation
• Hence limited ability to work at high level
  of abstraction
  – Much code looks like Java (=~ C)
            Why is this a problem?
• Hard to be productive at that level of
  – Comment from CS169 (Java) alum: “Project
    would have taken more than 2x the time”
  – Comment from CS169 instructor: “most
    projects didn’t really work at the end”
• Great that students can use Rails…but
  could they have created something like it?
  – Or do they at least have the skills to take
    advantage of extensibility it provides?

To top