?

Log in

No account? Create an account
Semiformalishmaybe

Sysadmin as a job description

If I were to explain to my younger self what it's like to be a sysadmin, this is probably what I'd say (note that this is narrower than most jobs I've worked, where there was a sysadmin component and generally a programming component and often other components):

Systems Administrators are responsible for a variety of related tasks:

  • Purchasing, installing, configuring, and maintaining systems so they may provide services to users
  • Training users on those services
  • Tracing problems with those services down to user error, software issues, or hardware issues, and fixing the problems (if possible)
  • Configuration of other hardware needed to support the systems providing the services
  • Managing security
There are three primary levels that systems administrators will need to work with in their tasks:
  • Hardware (and possibly hypervisor)
  • System Image
  • Application
The sysadmin will usually need to manage all three to some extent, even if the relationships between the layers can take many forms (e.g. server virtualisation or cloud computing), and should seek general expertise on the first two and reasonable knowledge on the common types of applications used for their chosen platforms.

Sysadmins will normally choose one type of system image for specialisation (traditional Unix, Windows, VMS, z/OS, or similar) and achieve limited fluency with some others; usually places sysadmins work will have a preferred platform and may have some systems of another operating system that need lower-key support. Sysadmins may be expected to support desktops/laptops, server rooms, or both.

There are many potential ways to manage systems; each sysadmin will have their preferred sets of software, general tendencies (risk-aversion vs usability vs simplicity, etc), and specialties. A sysadmin imposes their notion of order on the systems they manage. Breaking in a new sysadmin takes considerable time (and is usually best done by the departing sysadmin), as they need to learn every aspect of the managed systems and make a transition from the existing order to one from their own intuitions. Any unfamiliar software will either have to be learned or replaced, and for a time there will be two competing intuitions as to how systems should be configured/managed; sometimes intuitions/practices from prior sysadmins survive into a new sysadminship.

Automation is critical for a sysadmin; without automation and established practices, generally it is very difficult for a sysadmin to manage all the systems allocated to them (meaning the first few months of a job as a sysadmin tend to be intensely busy), but once things are configured and automated, things ideally are slow for a good sysadmin.

Sysadmin jobs tend to be salaried rather than hourly, in order not to discourage the automation that happens over the course of taming the systems and in order to continue to discourage the need for hours of overtime when something goes wrong; overworked sysadmins are generally a bad thing (as emergencies can't be handled in a timely fashion and the incentives are wrong). The profession is this one of the few where if/when it's a cushy job, it's only so to the extent that the sysadmin is skilled enough at automation and topical enough to keep abreast of current best practices.

In order to help with configuration management and debugging problems, typically a sysadmin can program at least a bit; data massage skills and SQL-monkeying are both very common. Sysadmins who can program usually are systems programmers, knowing C and often Perl or Python. As they usually need to be able to debug most parts of the system, they also tend to be fairly generalist, and sysadmins are also often network administrators at some level (or can pick up those skills without a lot of additional effort).

The traits most important for a sysadmin are:

  • Investigational skills
  • Organisational skills
  • Automation
  • Security analysis
  • Training users
  • Documentation
  • Systems knowledge (How operating systems work in theory, how particular operating systems work, how computer networking works, platform APIs)
  • Hardware knowledge
  • Systems programming

Comments