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(a)mattdm.org>
Senior Systems Architect -- Instructional & Research Computing Services
Harvard School of Engineering & Applied Sciences