ここ数年、国内外問わずSREという職種が注目されてきており、実際にSREチームを作ってサービスを開発している企業も増えてきました。しかし、実情を見ると、従来のインフラエンジニアチームと大きな違いはなく、SREとしての力が十分に発揮されていないことが多いように感じます。
そこで今回はSREとインフラエンジニアの違いについて解説していきます。SREとインフラエンジニアの作業領域や、根本となる考え方の違いについても触れていきます。
関連記事:「SREとDevOpsの違いは何か」
SREとインフラエンジニアの3つの違い
SREとインフラエンジニアの違いは大きく3点あります。
1.業務範囲
1つめは、インフラエンジニアは「インフラのみ」が業務範囲であるのに対して、SREは「信頼性を高める活動全て」が業務範囲である点です。
インフラエンジニアは、アプリケーション開発チームが開発したサービスが、「高いパフォーマンスで安定的に稼働する」ための環境を構築し運用することが役割です。よって、インフラの構築・運用・改善は行いますが、アプリケーション側には責任は持ちません。
これに対してSREは、「サービスの信頼性を高めるための全ての活動」を行います。具体的には、インフラだけでなくアプリケーション側も業務範囲となるため、アプリケーションのプログラムの修正までSREチームにより行われる場合もあります。また、開発や運用のみならず、組織や文化の醸成といった部分まで責任を持って取り組まれる例が多いのも特徴です。
2.スキルセット
2つめは、業務範囲の違いからくる、求められるスキルの違いです。インフラエンジニアは「ITインフラに関する知識や技術力」が求められますが、SREはインフラエンジニアが持つ知見に加えて「アプリケーション開発を行う技術力」や「当該アプリケーションに関する深い知見」が求めれます。
求められるスキルの違いは、SREチームの構成にも反映されています。SREを提唱したグーグルは、「SREチームの約半分はグーグルの正規のエンジニアで構成される」としています。つまり、SREチームの半数はアプリケーションエンジニア(または経験者)により構成されるべきとしています。そして残りの半数は「グーグルの正規エンジニア『予備軍』だが、他のメンバーが持っていないスキルがある」ことを条件としています。ここで指す他のメンバーが持っていない具体的なスキルとしては、「UNIXシステムの内部構造」と「ネットワーク(レイヤー1からレイヤー3)」の専門知識であることが圧倒的に多いです。
言い換えると、SREチームメンバーの半数は、SREからアプリケーション開発チームに異動しても、そのまま業務を行えるレベルで開発力があるメンバー(または直前までアプリケーションチームに所属していたメンバー)で構築されるべきだということです。
一般的なインフラエンジニアの多くは、アプリケーション開発チームに異動したとしても、スキルがマッチしないため、その業務遂行が難しいことを考えると、SREチームは技術力の「深さ」だけでなく「広さ」も求められるといえます。
3.方法論
3つめは、方法論の有無です。
「インフラエンジニアとは、なにをどのようにして行うべきか」という方法論は、企業により大きく異なります。ある企業では「これがインフラエンジニアの仕事の進め方です」と言われる進め方が、別な企業では大きく異なる場合もあります。また、用いられる用語も企業によって異なります。
これに対して、SREは明確な方法論があります。具体的には、グーグルが自社のSRE紹介サイト(https://sre.google/)において、『Site Reliability Engineering』という「SREの原典」ともいうべき本を無償で公開しています。
全世界のSREは、この「SREの原典」を理解した上で、記載されている方法論に従ってSREの業務を行っています。もちろん、企業ごとに「どこまで原典を文字通りに取り入れてSREを行うか」の違いはありますが、大まかな方法論や用語、考え方は全ての企業で共通しています。
インフラエンジニアのキャリアパスとしてのSRE
「インフラエンジニアと比べて、SREのほうが技能の広さが要求される」ことは間違いありません。このため、「インフラエンジニアで経験を積んで、SREになる」というキャリアパスを描いておくのも、良いのではないでしょうか。
インフラエンジニアの多くは、アプリケーションを安定稼働させるITインフラの構築や運用を軸に、そのスキルを習得しています。これに加えて、アプリケーション開発やアプリケーション運用のスキルを習得し、SREに関する方法論を理解することで、SREとなることも可能です。
ちなみに、「インフラエンジニアよりSREが優れている」という理解は正しくありません。「インフラエンジニアを極める」というキャリアパスもあれば、「インフラエンジニアの経験を生かして、別なスキルを併せ持ってSREになる」というキャリアパスもあります。どちらであっても、組織が求める目標を高いレベルでクリアすることが重要ですので、比較して「どちらが優れている、劣っている」という議論には意味はありません。
ただ、「インフラエンジニアとしての技術と、アプリケーション開発運用の技術の両方を高いレベルで満たす」という人材は希少であるため、特に多くのIT企業においてSREという職種に高い期待が集まっていることもまた事実です。
希少なSRE人材が提供する高品質なSREサービス = Sreake
自社のインフラエンジニアに対して、「今日からあなたはSREです。SREチームとして活動を行ってください」といっても、機能しません。SREがどのような順番で何をスべきかといった理解が不足していることに加え、インフラエンジニアとSREでは求められるスキルセットが異なることがその理由です。
もし貴社が、社内のインフラエンジニアリソースを活用して、SREチームの立ち上げを検討しているのであれば、当社がご支援いたします。
当社のSREサービス「Sreake」は、SREをサービスとして提供することで、お客様企業が構築・運営するサービスの信頼性強化をご支援しています。例えば、「今後、自社のエンジニアを核としてSREチームを立ち上げたいが、スキルセットや経験面で不足している」といった場合に、Sreakeメンバーが「SREチームが機能するための基盤づくり」を行うことで、工数やコストの削減を実現するお手伝いをいたします。
ぜひお問い合わせを頂き、今後貴社が成し遂げたい目標について共有ください。目標達成のために何を行うべきかについてご提案差し上げます。
東京在住のソフトウェア開発者、Motouchi Shuyaです。
システムの開発・運用・最適化が好きです。