CyberCourse runs on Drupal, a popular open source content management system. Why?
- Drupal is developer friendly. An extensive hook system lets programmers change just one page element, leaving Drupal to do most of the work. This speeds up development significantly, compared to writing from scratch, or using a framework like Rails or CakePHP. Low-cost flexibility is important for this project.
- Drupal is open source, and runs on cheap cheapity cheap cheap Web hosting accounts, the $10 per month kind. Authors can run Cycourses for the cost of one pizza per month.
- Drupal is scalable.
- Drupal is secure.
- Drupal has a large and responsive developer community. There are always helpful humans in the forums, and on IRC.
Here are notes on specific issues.
Drupal needs PHP 5, and a relational DBMS. MySQL is the most common, though Drupal also runs with SQLite, PostgreSQL, Oracle, and SQL Server. Most Drupal installations run under Apache on Unix/Linux. Drupal will run on Windows servers, too. Microsoft offers a Windows distribution of Drupal. You're better off with Unix/Linux, though. Trust me, I'm a doctor.
Drupal is scalable, from small sites on shared hosting accounts, to Enormous Gigantic Humongous Colossal Mammoth Hulking Monster Sites (EGHCMHMS - it's an acronym now).
Some scaling is generic: faster processors, more memory, code caching, page caching, server farms, etc. However, Drupal also has custom features for scaling. Two examples:
- Drupal has an extensive caching system of its own, independent of the OS and its friends. Drupal not only caches whole pages, but also pieces of pages, like a news feed block that is only updated once per day.
- A Drupal site can use multiple storage mechanisms. They're switchable, right down to the level of individual fields (crazy, huh?). Suppose you have a newspaper archive site. You can have article metadata, user data, and so on in PostgreSQL. The articles themselves could be stored by super-fast MongoDB. The videos (let's assume there are videos in the newspaper archives [just go with it]) might be on an Amazon CDN. All in one site. All transparent to site users, content editors, and administrators.
Drupal has a security team that's constantly monitoring the software. When an issue surfaces, the team patches Drupal, and announces the update. A command line tool called Drush applies security updates to Drupal with a single command.
One way to judge security is by who uses the software. Here's one: the Whitehouse. Yes, that Whitehouse. It's a Drupal site. Would anyone try to hack it? Nah...
Mobile, i18n, HTML 5, version control...
Yes, yes, yes, GIT...