I am (mainly) a DBA, tho’ I also dabble in other bits of back-end infrastructure (operating systems, storage and so on), and one of my key metrics is the ratio of DBAs:DBs in an organization. To that end I am very interested in automation of common (and not so common) tasks, and self-diagnosing and self-healing systems.
Dissatisfied with the approaches to “scripting” in use at my company (rudimentary shell scripts and horrible tangles of Perl) I introduced Python roughly 3 years ago. This allowed me not only to get more done, more quickly, but also to tackle projects previously considered well out of scope for DBAs; any tool or report we needed, I’d just make it. For example, when an alert fires in the middle of the night, by the time I’ve logged in an expert system (cc’d on the email alert) has already gathered the relevant logs, run some queries and had a go at fixing it – done what I would have done – and it’s all in my inbox. Or alerts that check what was happening this time yesterday or a week ago, or if there is a deviation from a fitted curve, and then decide whether to fire, rather than the dumb thresholds we were using before.
Recently, tho’, I have been looking for more. For example, Python requires runtime support deployed to all machines; Red Hat are still on Python 2.4 and the sysadmins are reluctant to support other versions in parallel. I’d like a language as high-level and productive as Python that compiles to native code, and allows me to make a similar evolutionary leap as from shell script to Python; faster, more reliable, more maintanable, more expressive.
Hence my newfound interest in Haskell and OCaml, which is what this blog will be about.