Atabas
Joined 15 November 2012
What developers may want in an operation overview
MediaWiki was developed specifically to be Wikipedia's software, and is used as a corporate CMS or data repository. The general architecture for MediaWiki is:
- User layer: web browser
- Network layer:
- Squid: Squid and varnish cache for anonymous users while Apache coupled with Mediawiki does the rendering
- Apache webserver: Primary and API clusters are directly hit by logged in users; MediaWiki does the heavy lifting.
- Logic layer:
- Mediawiki's PHP scripts
- PHP
- Data layer:
- File system
- mySQL database: 7 distinct groups, each with 1 master and 2 dedicated replication hosts; each project/language has its own database. The old revision data is kept in external storage.
- caching system: caching uses reverse HTTP proxy; there are 3 groups, two of which, text and upload, are handled by Squid, and the other, bits, is handled by Varnish. Practically everything in MediaWiki can be cached, usually staying in Memcached.
Wrappers around HTML output and database queries to handle escaping and using WebRequest class, etc are some of the security features implemented in MediaWiki.
Some of the many recent developments in MediaWiki include:
- VisualEditor: In October most of the reengineering code design for VisualEditor has been finished.
- Parsold: this enables testing the Javascript prototype parser against corpus of 100,000 randomly selected articles from the English wikipedia. Current work on it included fixing issues that result from parsing articles to HTML DOM and back again to wikitext.
- Article feedback: better abuse filters, new ways for moderators to filter feedback, etc
- Page curation: showing notice when a page is a few minutes old, showing no. of list items for selected filters, detailed metrics dashboards, etc
- MicroDesign: several bugfixes, work on new 'Agora' extension
- Redesign of mobile site, launch of Wikipedia app for Windows RT and Windows 8 tablets
Future: The MediaWiki project has grown from a PHP developer's one-man-army to a dedicated team. All operations are handled via open source. In future, there will be a need for ongoing improvements and new features requiring major changes to MediaWiki's architecture (e.g. VisualEditor Project).