9月5日、「"SRE" doesn't seem to mean anything useful any more」と題したあるブログ記事が話題になっている。この記事では、SRE(サイト信頼性エンジニア)という役割が変容し、現在では単なる「オペレーション担当」へと貶められてしまった現状について詳しく紹介されている。以下に、その内容を紹介する。
SREの本来の役割とは何か
SREとは、本来システム管理者とプログラマー、両者の役割を兼ね備えた技術者を指す。SREは、単なる「オペレーション担当」としての役割にとどまらず、システムの深部に精通し、Unixボックスを管理し、プログラムを書いてシステムを効率化することが求められる。しかし、最近ではSREという役割が単に「オペレーション担当」に矮小化されてしまっている。
オペレーション担当の現実
本記事の著者は、自身の経験を元に、SREが「オペレーション担当」にすぎないと見なされる現状に対する不満を述べている。著者が述べるには、SREが単なる「ops monkey」(オペレーションの雑用係)と化し、プログラムを管理するだけの役割に追いやられているという。このような状況では、プログラマーが作成したコードを実行させることがSREの主要な業務となり、システムの最適化や自動化といった本来の役割は軽視されている。
SREの本質的なスキル
記事では、SREが持つべきスキルとして、以下の2つを強調している。
- システム管理者としての能力
Unixシステムの深部まで理解し、問題が発生した際にはその原因を特定し、迅速に対応することが求められる。 - プログラミングスキル
システム管理の作業を効率化するために、自動化ツールやプログラムを作成できる能力が必要である。
実際の開発事例
著者は、自身が開発したC++のビルドツールの例を挙げ、SREが単なるオペレーション担当以上の役割を果たすべきであることを強調している。このツールは、#includeディレクティブを解析し、依存関係を自動的に処理する機能を持つ。さらに、最近では並列処理機能を追加し、処理速度が77秒から21秒にまで短縮された。これは、単なるオペレーション担当では実現できないスキルセットを必要とする作業だ。
変わりゆくSREの現状
記事の終盤では、SREという役割が変質し、もはや本来の技術的な能力が求められなくなっている現状に対する批判が述べられている。著者は、ある企業に自身のスキルを提案したが、SREであることを理由に拒否された経験を語っている。このように、SREは「DevOps担当」としてのみ認識され、技術的な多様性や深い専門知識が軽視されがちであるという。
詳細は[""SRE"" doesn't seem to mean anything useful any more」を参照していただきたい。