Friday, April 8, 2011

The exceptional Matrix Sysadmin

What skills and knowledge should you have to be an exceptional Matrix Sysadmin?

I'm often asked this question, so I thought it would be good to put it all in one place...

As a good start, you should have solid understanding of the software stack used to run Matrix:

* Apache - tuning, configuration, and mod_rewrite
* PHP - basic configuration of php.ini
* PostgreSQL - optimisation, configuration and troubleshooting
* Squid - configuration
* Memcache - installation/configuration

Specialist skills in PostgreSQL optimisation or PHP coding would be the sort of thing that would set one Matrix sysadmin above another.

Familiarity with SQL and PHP are important, they are often called upon.

Solid BASH scripting skills will make your life much simpler. If you have basic competency you will generally suffice, but you won't be exceptional.

Strong familiarity with a Matrix distribution and its standard services (mail/ftp/ssh etc - I like Postfix/Pure-ftpd for mail/ftp myself) is important.  In particular, either the Red Hat family (RHEL/CentOS/Fedora) or Debian (Debian/Ubuntu).

For high performance distributed systems, familiarity with rsync/lsyncd and slony-I are necessary.

If you're using an LDAP or AD backend for user authentication, it's a good idea to have a solid understanding of LDAP, and a good knowledge of OpenLDAP.

A familiarity with Oracle is mandatory if your Matrix system is using Oracle as the DB backend, although if this is the case you'll generally have a DBA handy (or you're learning Oracle yourself).

Finally, a good understanding of Linux kernel, filesystem and tcp/ip tuning and the use of standard monitoring tools such as netstat, top, sar, etc, and debugging tools such as strace will often come in handy.

If you're looking to brush up on your Matrix skills, work through the items in this list where you think your skills could do with some sharpening.  You'll be exceptional in no time!