Five basic principles for Fedora, from a server perspective.

Matthew Miller mattdm at mattdm.org
Tue Aug 31 19:44:33 UTC 2010


I've made a list of a handful of what I think are important foundational
concepts for Fedora from a server perspective. They'd be essential for a
separate Fedora spin or even complete branch, but ideally, the core Fedora
project will keep them in mind when adapting new features and considering
overall direction. I believe that a general recognition of the value of
these points will be good for everyone, not just our particular special
interest.

In each case, I've tried to consider a developer tasked with targeting the
general productivity / web desktop user. These ideas shouldn't block that
developer from focusing on the intended case while still not causing harm to
wider uses.

Your comments and discussion are of course appreciated — this is a starting
point, not my idea of graven stone tablets.


1. More with Less

   Simplicity. A modern server doesn't do everything; it provides the
   minimal services it needs, with no overhead. We should work to pare down
   the minimal set of packages installed, and avoid bringing in complicated
   systems as dependencies in that base. Whenever something new would add to
   what's running by default, we should look for another way.

   This makes systems run more efficiently and with require less management
   overhead, and reduces risk from to package errors or intentional attacks.


2. Avoid Churn at the Core

   It may be that in order to best provide for the typical Fedora user,
   frequent updates are a necessity. But Fedora should place extra emphasis
   on keeping the base of the operating system from changing within a stable
   release.

   This makes system changes more auditable, and keeps security and
   important bugfix updates from being lost in the noise. It reduces risk
   from accidental new bugs or from incompatible version changes.


3. Fedora is Unix-like

   The operating environment in Fedora builds on over 40 years of
   experience. Some of that is quirky and strange, but it's a strangeness
   that has become familiar. Changes from that legacy should only be made
   with the recognition that simply making things different has a cost, and
   that cost must be justified.

   This means knowledge transfers to and from Fedora. It means certain
   basic tools are always there.


4. The Command Line is Power, and Key=Value is a Key Value

   The command line user interface appears intimidating, but its flexibility
   is incredibly hard to match in a GUI. Fedora can't require new software
   to be developed with command-line access in mind, but if that software
   replaces older software, it should not cause regressions in this area.

   Configuration files for services should be text files, easily fixable in
   a pinch. Formats like XML are to be avoided — they're good for computer
   processing, but terrible for human brains.

   This means systems can be scripted, controlled remotely, managed in bulk,
   tracked with version control, and, when necessary, fixed from a minimal
   rescue environment.


5. Write Good Man Pages

   Any documentation is welcome, but man pages have a unique place. They're
   concise technical documentation with a standardized and expected format.

   This means it's easy to find out how to do something even when a more
   full-featured environment isn't available.


-- 
Matthew Miller <mattdm at mattdm.org>
Senior Systems Architect -- Instructional & Research Computing Services
Harvard School of Engineering & Applied Sciences


More information about the server mailing list