Toolserver/Special projects

From Meta, a Wikimedia project coordination wiki

This is a proposal for a new toolserver project.

Most of the software hosted on the toolserver is simple CGI or PHP scripts, possibly with database access. We handle this with a simple shared hosting environment, with all users on the same system. This is fine for trivial programs, but sometimes people want to run larger applications which are harder to host this way (e.g. Java, mod_python, standalone daemons, etc.).

For these things, I propose a new server, separate from the current userland server (hemlock). This server would run several virtual machines, inside which users could have more control over their hosting (for example, root access).

Advantages:

  • Allow users to host larger applications (e.g. asterisk...) with more control
  • Problems on one server don't affect others
  • Better separation between users for security

Disadvantages:

  • Allowing users root access presents certain issues e.g. with network traffic (but the toolserver will get its own subnet, reducing that problem)
  • More effort to maintain
  • More resources required

Possible implementation methods:

  • Solaris zones (can run Solaris, Debian, Red Hat/CentOS)
  • FreeBSD jails (FreeBSD only)
  • Linux OpenVZ (Linux only)
  • Xen (any Xen-supporting OS - e.g. Linux)
  • VMware, kqemu (any OS, slowish)

Discussion[edit]

  • Sounds very good and suitable (sustain) on the long run (many people joining etc.).. Leaves the problem of implementing it :P.--The Joke النكتة‎ 11:35, 7 October 2007 (UTC)[reply]
  • Sounds good to me. The idea of using Solaris Zones seems attractive, I've used them in the past. I don't know enough about the other implementation alternatives to comment, but trust those implementing this to make the right decision. Is HW for this already lined up or would a new donation need soliciting? Or would WMF be asked to fund it? ++Lar: t/c 14:29, 7 October 2007 (UTC)[reply]
  • Taking inputs from various sources into account, the full virtualization way seems to me the most comfortable one to go. I see fit for two (three) general types of projects:
    1. long lasting ones - such as providing voice chat channels as mentioned on the mailing list,
    2. ones ending after a foreseeable time - e.g. evaluations or tests of software, processes, or procedures, and the like,
    3. one-time or short lived tasks - for example converting a wiki data base to a newer format which would not have to be repeated. This is technically equal to 2 but has a quite different administrative frame of context, and likely, type of person(s) responsible.
The latter two could imho be using many arbitrary software including specialized operating systems, etc., depending on the task, and would not need much public documentation, except when a test ends with the decision to now make a new, lasting project based on its results. Virtual servers can generally easily be deleted once their tasks/projects are finished or done. --Purodha Blissenbach 01:37, 8 October 2007 (UTC)[reply]