Your SlideShare is downloading. ×
An Open Source LMS for a Mission Critical Enterprise-Level ...
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

An Open Source LMS for a Mission Critical Enterprise-Level ...

1,036
views

Published on

Published in: Technology

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,036
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
8
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • Talking to the audience before the presentation to get a ‘ pulse ’ for what they are looking for, why they come to this session, and so on. Moving towards and away from the audience as you make a specific point.
  • In general it works well but we had some issues with MySQL running on Xserve (OSX) – mainly DISK IO issues http://moodle.org/mod/forum/discuss.php?d=84559 All the versions of OSX I've played with have very bad disk IO
  • http://www.sun.com/servers/entry/x4100/specs.xml The Zend Optimizer is a free runtime application that enables PHP to run the files encoded by the Zend Guard . This can be freely used by anyone looking to run encoded applications. Please download and follow the installation instructions included in the distributions. The simplest way to get a PHP runtime that includes Zend Optimizer is to download Zend Core - the leading production quality PHP 5 stack.  Zend Optimizer is bundled within Zend Core along with a certified copy of PHP containing the latests bug fixes, Zend's FastCGI technology, a copy of MySQL or DB2 Express-C, and an Apache web server for a easy to install stack.; Zend Core Support Subscription, gives you access to an automated downloads of security and critical fixes and other support features that real PHP applications require. For enterprise-class performance enhancements with an up to x25 increase in server throughput, try Zend Platform . Zend Platform's Performance Enhancement Technology was specifically created to help optimize the responsiveness and processing efficiency of robust, high traffic PHP-based sites. At the same time, Zend Platform's PHP Intelligence Module provides insight into performance bottlenecks and run-time errors. What is ganglia? Ganglia is a scalable distributed monitoring system for high-performance computing systems such as clusters and Grids. It is based on a hierarchical design targeted at federations of clusters. It leverages widely used technologies such as XML for data representation, XDR for compact, portable data transport, and RRDtool for data storage and visualization. It uses carefully engineered data structures and algorithms to achieve very low per-node overheads and high concurrency. The implementation is robust, has been ported to an extensive set of operating systems and processor architectures, and is currently in use on thousands of clusters around the world. It has been used to link clusters across university campuses and around the world and can scale to handle clusters with 2000 nodes. MRTG: (http://oss.oetiker.ch/mrtg/) The Multi Router Traffic Grapher (MRTG) is a tool to monitor the traffic load on network links . MRTG generates HTML pages containing PNG images which provide a LIVE visual representation of this traffic. Check http://www.stat.ee.ethz.ch/mrtg/ to see what it does. MRTG for dummies: http://www.netmon.org/dummies.htm
  • MySQL wants to be IKEA of the database market
  • NAS: Network Attached Storage (vs. NFS: Network File System)
  • Possibly mention VMotion!
  • * Consider a demo!
  • Transcript

    • 1. An Open Source LMS for a Mission Critical Enterprise-Level Application: Are we there yet? Kevin Kelly, Wen Hao Chuang Academic Technology, San Francisco State University Copyright © [Wen Hao Chuang and Kevin Kelly] [2008]. This work is the intellectual property of the authors. Permission is granted for this material to be shared for non-commercial, educational purposes, provided that this copyright statement appears on the reproduced materials and notice is given that the copying is by permission of the authors. To disseminate otherwise or to republish requires written permission from the authors.
    • 2. Session topics (outline)
      • Background: Learning Management System (LMS) landscape at SF State
      • Lessons learned about making an open source LMS enterprise-ready
        • Development / Systems Perspective
        • Teaching and Learning Perspective
        • Organizational Administration Perspective
    • 3. Introduction: Review of LMS at SF State F 05 S 05 F 04 S 04 F 03 S 03 F 02 S 02
      • Reasonably steady state with Bb
        • 1997 to 2002
      • Period of problems with Bb
        • Jan 2003 to present
      • Faculty focus groups to determine need to investigate alt. LMS
        • Dec 2003
      • Investigation of LMS alternatives
        • Spring 2004
      • iLearn alpha test (5 instructors, 400 students)
        • Fall 2004
      • iLearn beta test (25 instructors, 1500 students)
        • Spring 2005
      • iLearn large scale deployment test (150+ instructors, 9,000+ students)
        • Fall 2005 to Spring 2006
      S 06
    • 4. Usage statistics
    • 5. Usage statistics
    • 6. Looking at the LMS from 3 perspectives
    • 7. Looking at the LMS from 3 perspectives
    • 8. Technology Management (outline)
      • System Architecture
      • Development & QA
      • Lessons learned and Recommendations
    • 9. System architecture (before)
    • 10. System architecture (now)
    • 11. System setup (now)
      • 5 Sun Fire X4100 Servers
        • 2 dual-core 64-bit AMD processors (for each server)
        • 1 Load Balancer (running squid)
        • 2 Application Servers
        • 1 Database Server (running MySQL)
        • 1 Admin and Backup Server
      • LAMP (Linux, Apache, MySQL, PHP) Stack
        • Red Hat Enterprise Linux 4
        • Apache 2.2.x
        • MySQL 5.0.22
        • PHP 5
        • Others
          • Zend Optimizer (PHP accelerator) -> eAccelerator
          • Squid, clamav, MRTG, awstats, Nagios, Splunk(x), Ganglia, etc.
    • 12. Data and storage solutions
      • Backup solutions
        • For a large database like ours, the moodle default site-wide backup codes do not work.
        • MySQL dump and nightly rsync to disk storage, then to tape.
      • Database storage engines
        • MyISAM (default)
        • InnoDB
      • Moodle’s “course-centered” design
        • Solution: Diva? (diva.sfsu.edu)
    • 13. Problems with current architecture
      • During mid-term and final exam periods, the two application servers get really loaded
        • Also related to how teachers are using it
      • Database
        • MySQL vs. Postgres vs. Oracle
        • MyISAM vs. InnoDB (storage engines)
      • Other possible optimization solutions
        • Squid vs. varnish
        • Apache vs. lighttpd
        • LAMP tuning and optimization
    • 14. Problems with Data and Storage
      • You probably need a DBA! (for larger sites)
        • Some tuning tips: http://day32.com/MySQL/
      • Backup issues
        • MyISAM vs. InnoDB
      • Database issues:
        • Current database size (MySQL dump) over 11G!
        • Avg 200 queries per second
        • In 30 days avg 151,675,735 queries
        • Peak connections between 400-500 concurrent connections
        • Table index
        • Optimization and table maintenance
    • 15. Future hardware plans (1)
      • Pillar NAS and SAN storage unit
        • Switch from xRaid to dedicated terabyte NAS system.
        • Higher efficiency for storing data.
        • Allows for snapshotting of data.
      • Introduce BAD (Bad Ass Database)
        • High-end 64 gigabyte database server
        • Repurpose current database system as another application server (3 APP servers behind squid).
    • 16. Future hardware plans (2)
      • Virtualization
        • Moving to VMWare ESX (possibly this summer)
        • Dynamic allocation of server resources
        • Enhance the flexibility and scalability of enterprise level application
        • Reduce possible downtime (VMotion)
    • 17. Programming & Development
      • Small development team: 2 full-time developers (including project management)
      • Version control system
        • SVN: (internal)
        • CVS: (external with Moodle core team)
      • Bug tracking system: Trac (open source)
        • For bug reports
        • For project management purposes
        • Build-in Wiki (for internal documentation)
    • 18. Typical Build Process
      • Developers’ codes got committed into their personal branch (SVN commit)
      • “ Buildmaster” merges all the codes before code freeze date
      • Deploy a testing build on ilearntest (DEMO)
      • If tested without any problem, code releases are “ svn switched ” to a “ deployed ” branch by system admin team (avoid conflict of interest).
    • 19.  
    • 20. Development tools
      • PHP
        • NuSphere PhpED (great debugger/IDE)
        • Eclipse (with PHPeclipse plugin) (free)
        • PSPad (Windows) and vi/vim (Linux) (free)
      • Other tools
        • JMeter (simulating traffic)
        • Perl (script for performance profiling)
        • XML Editors (BB to moodle conversion tool)
    • 21. QA Testing
      • Small QA testing team
        • 3 part-time student assistants
        • Supervised by DEV staff members
      • Tools that we are using
        • Selenium IDE / RC
        • TestNG / JUnit
        • JMeter (stress testing)
      • Tools that we are evaluating
        • QA Wizard Pro (Seapine software inc.)
        • Quick Test Pro (HP)
        • Silktest (Borland)
    • 22. Problems with QA
      • Training student assistants
      • Time, resource, and testing scope
        • After all, it’s open-source!
      • Budget, select the right tool, and manual testing
      • To automate or not to automate?
    • 23. Lessons learned and recommendations
      • Make a good projection about your LMS traffic and usage, plan your server architecture accordingly.
      • Plan your workflow / processes in advance.
      • Start with a fresh DB every year
      • Schedule regular down time to repair/maintain tables
      • QA testing!
      • Knowledge: * [Promote] HSU “Introduction to Moodle Programming” course
    • 24. Looking at the LMS from 3 perspectives
    • 25. Teaching and Learning: Engaging the Community
      • Outreach
        • Training and support team visits faculty department meetings
        • Conduct needs assessment and formative evaluation focus groups
        • Advertise training and support options
      • Input
        • Advisory groups help inform decisions
        • Exemplary instructors share best practices
    • 26. Teaching and Learning: Engaging the Community - Best Practices
    • 27. Work Flow: Support for Faculty, Staff, & Students
    • 28. Work Flow: Support for Faculty, Staff, & Students
    • 29. Teaching and Learning: Training and support
      • Constant evolution of training options
        • Held frequent workshops throughout Fall and Spring semesters with extra offerings and open labs at the beginning
        • Added week-long summer and winter workshops (with lunch)
        • Modularized week-long workshops
      • Big change for support
        • Standardized format for "QuickGuides"
        • Switch to database-driven QuickGuides
          • Dynamic approach will update multiple QuickGuides at once
    • 30. Looking at the LMS from 3 perspectives
    • 31. Organizational Administration: Policy issues
      • Academic policies (Academic Senate)
          •  Intellectual property
          •  Faculty workload
          •  Recognition for Retention/Tenure/Promotion purposes
          •  Copyright/TEACH Act
          •  Accessibility
          •  Articulation
          •  Privacy
          •  Contact hours for students
          •  Assessment and Teacher Evaluations
          •  Quality of online courses
          •  Minimum requirements for online/hybrid courses
          •  Communication with students (virtual office hours)
          • Student code of conduct
          • Academic integrity
    • 32. Organizational Administration: Policy issues
      • Operational policies ( Service Level Agreement )
      • Technology Management
        • Storage limits
        • Archive practices
      • Organizational Administration
        • Incentives for training
      • Also see article:
      • Waterhouse, S. & Rogers, R.O. (2004). The importance of policies in e-learning instruction. Educause Quarterly 3, 28-39 .
    • 33. Closing
      • Q & A
      • Contact information
      • Wen Hao Chuang
        • [email_address]
        • 415.405.3543
      • Kevin Kelly
        • [email_address]
        • 415.338.6455